2025-03-14: IntelliJエージェントはよ、MCPブーム、Clineで遊ぶ、PythonからRustへ翻訳
IntelliJでコーディングエージェントを駆使したい
私はもうJetBrains IDEをメインにしていないのですが、PHPにかんしてはやはりVSCodeよりPHPStormに一日の長があり、IntelliJに返り咲けるチャンスを伺っているわけです。
今まではGooseのJetBrains MCP拡張を入れて試していたのですが、こいつはCline以上の暴れ馬ですべてを焼き尽くしてしまうので、人には勧めづらかった。
そこでClaude Codeがリリースされました。これは順当に良さそうで、MCPに対応していたので、Gooseのように連携できるなと睨みました。
検証結果をZennに投稿。この環境でしばらく過ごしてないのでまだなんとも言えないのですが、同士は試してみてほしい。

その翌日、なんとなくHackerNewsを徘徊していて発見したのがFirebender。これはブログの記事にしました。Androidアプリを作って操作させてみたところ、最低限の期待は上回るできだったので、今後も引き続き使ってゆきたい。

世間は空前のMCPブーム
いつの間にか日米タイムラインでみんなMCPサーバー活用の話を熱心にしていた。何がきっかけなのか未だに不明だけど、1月に私がMCPの話をしていた時の周りの引きの弱さからすると感慨深い。なんか推し技術が巣立っていった感傷がある。
私自身はMCP活用はアーリーアダプタたちのようにはうまくできてなくて、前述のGooseやDiveで遊んだり、自作コーディングエージェントの裏側にしていたり、Claude Codeなどの対応ツールのコードを読んだりする程度です。

Clineで遊ぶ
私にとってClineは実コーディングというより中身を読んで遊ぶおもちゃという感じなんですけど、今週も色々試しました。
まずClineのWebサービスがはじまっていたのでサインアップして課金しました。これはOpenRouterのようなLLMのAPIを代理販売するサービスです。
次にClineが本当に内部Tree-Sitterツールを呼び出しているのか検証。定義してあるけど発動したことないToolナンバーワンなので気になっていました。結果、巨大なファイルをわざと読み込むように誘導したら使っていました。
それでこれを試した! 実際に150kのファイルがあったらtree-sitterでパースしてくれた。つまり巨大なファイルがあるリポジトリはこのツールが有効なことがわかった https://t.co/ERb10InvYR pic.twitter.com/BHH64K7sQK
— laiso ✉️ (@laiso) March 9, 2025
ソースコードの文書解説では、Claude 3.7 Thinkingにしたら思いのほかそれっぽい文章を吐いてきたので、読みたい記事はもうこれで自給自足すればいいじゃんという気になりました。
技術ブログもうおまえが全部書けばいいじゃん pic.twitter.com/PEcOYHudea
— laiso ✉️ (@laiso) March 9, 2025
外部にポストするなら周辺情報をもっと読みこんで書き直すことになるから、それは置き換えられないんですけど。
一旦Pythonを書いてからRustに清書する話
敬愛するMitsuhiko氏のブログを読んでた時に見かけた話です。出てきた話題を投稿したら広くシェアされました。エージェントがRustやTSの静的解析を延々と直し続けるループに思い当たることがみんなあるのか、共感している人が多かったです。私としてはRustもPythonもどっちもトップクラスに書ける人が言ってることに注目していました。

Now it's not great at all languages. I find it performs exceptionally well at Python, somewhat okay at JavaScript and horrible at Rust. However, particularly if I wanna solve an algorithmic problem, I can often iterate in Python until I have what I want, then ask it to translate it to Rust. That's from my experience at least a decent way to get going quickly on some harder problems.
今、それはすべての言語で素晴らしいわけではありません。私はそれがPythonでは非常に優れており、JavaScriptではまあまあ、Rustではひどいと感じています。しかし、特にアルゴリズムの問題を解きたい場合、Pythonで繰り返し試して望むものを見つけた後、それをRustに翻訳するよう頼むことがよくあります。少なくとも私の経験からすると、それは難しい問題に素早く取り組むためのまずまずの方法です。