ClaudeCode界隈で話題のツールをJunieで使ったらどうなるのか試してみた

ClaudeCodeにはSuperClaudeという、MCPサーバ設定+コンフィグ集+カスタムコマンド集オールインワンセットのようなツールセットがありまして、かなりの人気みたいです。近いことがJunieでできないかな?という実験です。

SuperClaudeって?

Claude Code専用のMPCサーバ設定・プロンプトテンプレートなどのカスタムコマンド集です。それぞれ単体のOSSの詰め合わせなんですけど、1つずつ導入すると結構めんどくさい。

それをPythonスクリプト1つで対話形式でインストール出来るということで一気に広まっているみたいですね。

使用トークン量を40%削減できるMCPサーバとか、セキュリティ専門家とか設計専門家として振る舞って分析してくれるプロファイリング機能のカスタムコマンドとか。それぞれ専門職やエンタープライズ向けのIDEや専門ツールで提供されていたような機能がClaudeの料金で使えるということでかなり盛り上がっております。

SuperClaudeの記事じゃないのでアッサリ終わらせます。

Junieの理想形がこれなのでは感

多分、Junieってこういうのを目指してたんじゃないかなと思うんです。JetbrainsはIDEの会社であって、AIの最前線の会社ではないので今はまだ無理でも、Junieが今後こういう風に育ってくれたらうれしいんですけどね。

SuperClaudeで使われているMCPサーバ

MCPサーバというのはざっくり言うと「アプリの操作をAIからできますよ」というAIとアプリの橋渡し機能みたいなものです。

”サーバ”とついていますが必ずしもApacheみたいなサーバではなく、「アプリ側がAI/LLMと直接やり取りできるorプラグインで追加できる」、という機能を総称してMCPサーバといいます。(実際の通信はHTTPサーバ機能を使うことがほとんどなのでサーバって付くんだと思います)

ClaudeやGeminiなどのLLMが直接操作して、Canvaでグラフィック作成したり、AbletonLiveでAI作曲したり、Blenderでバイブモデリングとかできるみたいですね。

閑話休題、SuperClaudeはコーディング用のツールセットなので、プログラミング関連の人気のMCPサーバの設定集が含まれています。

JetbrainsのAIプラグインやJunieにはカスタムコマンドはないのでSuperClaudeの便利コマンドみたいなことはできないんですけれど、MCPサーバは使用できます。

ちょっと見た感じ使えそうなMCPはこの2つ。

Serena

生の状態のLLMによるAIコーディングでは、既存のプロジェクトの読み込みや解析にもトークンを消費しています。

  1. プロンプト解析
  2. ファイル読み込み
  3. ファイルの構文解析
  4. クラス名でファイル検索
  5. ファイル読み込み
  6. ファイルの構文解析
  7. クラスの構造を記録
  8. 次のクラスを検索・読み込み
  9. ….
  10. プロンプトと組み合わせて推論
  11. 編集するファイルを検索
  12. ファイルを読み込み
  13. 編集箇所を特定
  14. 編集

14回以上トークン消費されるわけですが、その中でもトークン消費量が大きいのは「ファイル解析」です。何回か「ソースファイルは小分けに」ってこのブログで書いたような気がしますが、ファイルを読み込んで構文解析 がめちゃめちゃ多いからです。

でもこの構文解析って、AI登場以前でもIDEでできてましたよね。

実際のところ一般的なプログラミング言語はすでにアルゴリズムで十分に構文解析できるんですよ。なので構文解析にはLLMを使わず、ローカルPC内のツールで代替して負担軽減しよう!というのがこのSerenaというMCPサーバです。

Serenaの内部動作

Serena自体に解析エンジンが積んであるわけではなくて、コンパイラやインタプリタ自体の機能を使って解析するようです。PHPはインタプリタに構文解析機能がないので導入がめんどくさいみたい。

あとものすごいC++の黒魔術メタプログラミングはダメみたいです。

Serenaをプロジェクト内で起動すると、プロジェクトの内容を一通り構文解析してデータベース化してくれます。

さて上のプロンプトの例で、Serenaを通した場合は

  1. プロンプト解析
  2. Serenaから返ってきたクラス定義テキストを解析
  3. Serenaから返ってきた情報を解析
  4. Serenaから返ってきたテキストをメモリ内で修正

青い文字の部分はトークンが消費されません。


Junieも内部的にはこういう処理をしてるんだと思いますが(願望)、OSSでこういうのが出ちゃうとJunieかたなしですね。。

context7

前にも書きましたが「AIは最新情報に疎い」という弱点。ライブラリの更新が激しいJS、PHP、Rustでは去年のベストプラクティスが今はDeprecated祭りとか稀によくあります。ね、Reactくん。

そんなAIの弱点を克服してくれるのがこちら、context7。

使用しているライブラリのドキュメントを参照して、使用しているバージョンにあわせてライブラリの使い方が正しいかをチェックしてくれます。

仕事でコーディングしてるとバージョン混在とかザラにあるので助かる。

playwright

Web系のCI/CD環境でよく使うplaywrightもMCPサーバに対応してます。ようするにAIがブラウザを操作できるようになる、というシロモノです。本家のplaywrightはWebサイトの情報をさらってcsvにするようなスクレイピング処理にもつかえるんですけど、MCPサーバではその機能は削られてるっぽい?

ブラウザのコンソールメッセージをAIが直接取得できるようになるので、TS/JSのデバッグはかなり効率UPします。

Sequential-Thinking

公式サイトの説明だと”段階的な思考を通じて複雑な課題を分析できるツール”と抽象的・哲学的な説明で「ふーん…」で終わっちゃいそうですが、これ実はデバッグにかなり使えるMCPです。

何回指摘し直しても「ちげーよそうじゃねーんだよ」って時ありますよね。3回目くらいでAIが諦めて全部コメントアウトして終了、とか。

ぱっと見でわからないバグの原因の解析のときなどに「sequential-think」と一言添えると、

仮説 → 調査 → 検証 → 仮説の修正 → 調査 → …

という風にかなーり深く考えてくれます。「過去の思考を顧みて、修正して、再考する」という、本来AIが苦手とする思考をできるようにするのがこのMCPサーバです。デバッガを使ったステップトレースみたいな解像度でコードを調べてくれますので、探していたバグと違うバグを見つけてくれることもあります。泥臭デバッグあるあるですな。

トークン山盛り使うので、ここぞというときだけ使う感じです。1プロンプトで15分くらい長考するときもあります。

Junieに入れてみる

他にもSuperClaudeにはGithub連携のMCPとかいろいろあるんですけど、とりあえず手軽で効果が大きそうなこの4つを入れてみます。(入れてますがRustのサーバサイドなのでplaywrightは今回つかってません)

設定 > ツール > Junie > MCP Settingsの「+」マークをクリックするとJSONで入力できます。もう少しこう……手心と言うか……GUIというか……。

{
  "mcpServers": {
    "serena": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/oraios/serena",
        "serena-mcp-server",
        "--context",
        "ide-assistant",
        "--project",
        "<YOUR_PROJECT_PATH>"
      ]
    },
    "context7": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@upstash/context7-mcp@latest"],
      "disabled": false,
      "autoApprove": []
    },
    "playwright": {
      "command": "cmd",
      "args": [
        "/c", "npx", "-y","@playwright/mcp@latest"
      ]
    },
    "sequential-thinking": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@modelcontextprotocol/server-sequential-thinking"
      ]
    }
  }
}

こちらはWindowsの場合です。公式レポジトリのREADMEは”command”にnpxで書いてることが多いんですが、Windowsだとエラーになるのでcmdで実行するように書き換えています。
<YOUR_PROJECT_PATH>にはプロジェクトパスを入れてね!

「uvがないよ」っていうエラーが出る場合は、PowerShellで

 winget install astral-sh.uv

これでインストールできます。(権限昇格を求められるかもです)IDEを開き直せば使えるはず。

使ってみる

先程のMCP Serverの設定画面で✔がついていれば、ほぼ自動でMCPのツールを使ってくれます。

Serena

Serenaの設定が済んでいる状態でJunieを開くと、ブラウザが勝手に開きます。Serenaのログが表示されますのでうまく行かないときは赤文字を探してみてください。プロジェクトパスが読めない・uvが見つからないとかだと思うので、適宜コンフィグ修正してください。

うまく動作しているときはこんな感じで黄色で使われたMCPツールを強調してくれます。

「このシンボル探してね!」
「このシンボルの後ろにこのコードぶち込んどいてね!」

その他にもプロジェクト内一括検索置換とか、IDEには当たり前に搭載されている機能がAIに提供されるMCPサーバです。

こんな感じで、LLMが実際に作業する量を軽減してトークンを削減してくれてるはずです。

試しに5プロンプトでプロジェクト調査1回、6ファイル修正300行、1ファイル追加200行の作業をさせてみて、2.98クレジット消費しました。普段だと4クレジットくらい行くかなーくらいの作業でしたので、体感20%くらいはトークン消費を抑えられそうな感じです。でもね。

そもそもJunie、
これお前がやるべき機能だろ。

年払いしちゃってるので成長に期待するしかないです。

context7

Rustではリテラル文の書き方が割とゆるいんですが、

format!("{} dollars", dollar_val); // 一応OK
format!("{dollar_val} dollars"}; // ベター

どっちでも機能的にはOKなんですけど、Rust2021以降は厳し目の構文チェックをかけると上の例は「リテラルは中に入れたほうがいいんやで」とやんわりお叱りを受けます。

あと乱数のrngライブラリなんですが、書籍の例などで使われているちょっと前のバージョンの関数はdeprecatedになってます。生Claudeは古い方で生成しちゃうので、「それdeprecatedです」って直させると、その次のプロンプトで

「重大なエラーを発見!ライブラリに存在しない関数を使用していました。バグの原因はこれに間違いありません!」

とかね。カチーンときちゃいます。

context7は生成する前に使用バージョンの適切な使い方をしらべてから生成してくれます。100%防げるわけではないですけど、8~9割位は減ってる印象。トークン消費も気にならないレベルでイライラが激減しますのでオススメです。

Sequential Thinking

AIクレジットの消費多いかなぁと恐る恐る使ってみたんですが、Junieの場合はCodeモードだとノンストップですので、Askモードで使うことが多くなるのかなと思います。Askでsequential指定で使用した感じではめちゃ長いときで0.5クレジット消費でした。案外ありかも?

ClaudeCodeでsequential thinkingを使っているときはCoTで考えてることを逐一喋ってくれて途中でプロンプトを挟む事もできるんですよね。方向性がズレてきたときに助け舟を出す感じで、ブレインストーミングみたいな使い方もできるツールです。その場合はJunieよりもAIチャットプラグインのほうが使いやすいかもです。

結論

Junieもうちょっと頑張れ。

後発なんだからSuperClaudeみたいなのどんどん取り込んでいってほしいというのがいちユーザの希望です。(あともうちょいクレジット消費節約してもらえませんかね・・・)

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です