jCodeMunch
jCodeMunch MCP
tree-sitter AST パースによる正確なソースコード取得のための、最もトークン効率の高い MCP サーバー。 コード探索における AI トークンコストを 86〜99% 削減し(平均 96%、grep-and-read エージェントと比較して 27.9 倍少ないトークンとベンチマーク)、コンテキストウィンドウをファイル全体の読み取りで消費するのをやめましょう。
本番環境からの実際の結果 838B+ トークン節約 · 136,000+ レポートインストール · $4.2M+ の AI 支出回避 · 100,000+ kg CO₂ 削減 カウンター数値は 2026-08-17 時点で、$5/MTok の Claude Opus 入力レートで評価。4 つすべて増え続けるので、下限として読んでください。ライブ: jcodemunch.com。
Claude Code、Cursor、VS Code、Codex CLI、Windsurf、Continue、および MCP 互換クライアント で動作します。
今すぐインストール · クイックスタート · 証拠を見る · 価格
個人利用は無料です。 お金を稼ぐために使うなら、Uncle J. にも一口くれますか? 商用ライセンスは下記 保証: jCodeMunch が費用に見合わなければ、jCodeMunch にお金を払う必要はありません。
なぜ jCodeMunch なのか?
ほとんどの AI エージェントは、リポジトリを高コストな方法で探索します。ファイル全体を開き、何千行もの無関係な行をざっと読み、それを繰り返す。これは「少し非効率」ではありません。トークン焼却炉です。
jCodeMunch はコードベースを一度インデックス化し、エージェントが必要な正確なコードだけを取得できるようにします: 関数、クラス、メソッド、定数、アウトライン、そして厳密にスコープされたコンテキストバンドルを、バイトレベルの精度で。tree-sitter でソースを解析し、構造化されたシンボルメタデータ(シグネチャ、種類、修飾名、要約、バイトオフセット)をローカルインデックス内の生のファイルコンテンツとともに保存し、ファイルを何度も読み直す代わりに、オンデマンドで正確な実装を取得します。
タスク | 従来のアプローチ | jCodeMunch を使う場合 |
関数を見つける | 大きなファイルを開いてスキャン | シンボルを検索し、正確な実装を取得 |
モジュールを理解する | 広いファイル領域を読む | 関連するシンボルとインポートのみを取得 |
リポジトリ構造を探索する | ファイルを次々とたどる | アウトライン、ツリー、対象を絞ったバンドルをクエリ |
「X を変更したら何が壊れる?」 | 不可能 |
|
一度インデックス化。安価にクエリ。前進し続ける。精密なコンテキストは力任せのコンテキストに勝る。
Related MCP server: Symbol Delta Ledger
証拠
再現可能なトークン効率ベンチマーク
tiktoken cl100k_base を使用して、上流コミットに固定された 3 つの公開リポジトリで測定。2026-08-03 に v1.108.233 で実行。ワークフロー: search_symbols(上位 5 件)+ get_symbol_source × 3 をクエリごとに実行。2 つのベースライン、同じ実行、同じコーパス、同じファイルリーダー:
Grep-top-3:
rg -lでクエリ用語を検索し、マッチ数でファイルをランク付けし、上位 3 件を丸ごと開く。これはツールなしの有能なエージェントが実際に行うことであり、引用すべき数字です。Read-all: インデックス化されたすべてのソースファイルを連結したもの。誰も支払わない上限。以前に公開された数値との連続性のために保持。
Repository | Files | Symbols | Grep-top-3 baseline | jCodeMunch | vs grep | vs read-all |
expressjs/express | 182 | 200 | 15,724 avg | 1,007 avg | 15.6x | 153.2x |
fastapi/fastapi | 1,182 | 6,841 | 85,296 avg | 2,209 avg | 38.6x | 372.9x |
gin-gonic/gin | 98 | 1,179 | 31,975 avg | 1,545 avg | 20.7x | 98.3x |
合計(15 タスク実行) | 664,975 | 23,805 | 27.9x | 237.3x |
grep-and-read エージェントと比較: 96.4% 削減、27.9 倍少ないトークン。 クエリごとの結果は 7.3 倍から 84.3 倍(中央値 25.5 倍)の範囲で、単一の倍数ですべてのクエリを説明できるわけではありません。read-all と比較すると 99.6% ですが、その上限を支払う人はいません。コンパクトな MUNCH ワイヤーエンコーディングにより、応答からさらに中央値 45.5% のバイトを削減します。
完全な方法論、固定コミット、ハーネス、既知の注意点: benchmarks/METHODOLOGY.md · 自分で再現する · TOKEN_SAVINGS.md
本番コードベースでの独立 A/B テスト
実際の Vue 3 + Firebase 本番コードベースでの 50 回反復 A/B テスト。jCodeMunch とネイティブツール(Grep/Glob/Read)を比較、Claude Sonnet 4.6、各反復で新しいセッション: 成功率 80% 対 72%、タイムアウト率 32% 対 40%、平均キャッシュ作成時間 10.5% 短縮。固定オーバーヘッドから分離したツール層の節約: 15〜25%。jCodeMunch バリアントにのみ現れた発見カテゴリが 1 つ: find_importers による孤立ファイル検出。これはネイティブツールではスクリプトなしでは答えられない構造クエリです。完全なレポート: benchmarks/ab-test-naming-audit-2026-03-18.md
言及された
Artur Skowroński (VirtusLab): 「およそ 80% 少ないトークン、つまり 5 倍効率的 — 一度インデックス化すれば、永遠に安価にクエリできる」 · GitHub All-Stars #15
Traci Lim (AWS · ASEAN AI Lead): 「ネイティブツールでは答えられない構造クエリ: find_importers、get_blast_radius、get_class_hierarchy、find_dead_code」 · 5 Repos That Save Token Usage in Claude Code
Julian Horsey (Geeky Gadgets): 「3,850 トークンがわずか 700 に削減 — 5.5 倍の改善」 · JCodeMunch AI Token Saver
Eric Grill: 「コンテキストは希少なリソースです。それを 90% 削減すれば、スタック全体がより安価で信頼性の高いものになります」 · jCodemunch: Context Engine for AI Agents
インストール
ワンクリックインストール
推奨: 1 コマンド
uv tool install jcodemunch-mcp
jcodemunch-mcp init管理する virtualenv は不要、システム Python に何も書き込まず、素の pip install が拒否される PEP 668 ディストリビューション(Ubuntu 24.04+、Debian 12+)でもそのまま動作します。uv をまだお持ちでないですか?
init は MCP クライアント(Claude Code、Claude Desktop、Cursor、Windsurf、Continue)を自動検出し、それらの設定エントリを書き込み、エージェントが実際に jCodeMunch を使用するように CLAUDE.md プロンプトポリシーをインストールし、オプションで強制フックをインストールし、オプションでプロジェクトをインデックス化し、エージェント設定ファイルのトークン無駄を監査します。
コマンド | 使用する場合 |
| ゼロインストール。 一時的な環境から実行され、ディスクに永続的に何も残りません。 |
| すでに pipx を標準化している場合 |
| 自分で管理する virtualenv 内 |
検証:
jcodemunch-mcp --version手動 Claude Code セットアップ
claude mcp add -s user jcodemunch -- uvx jcodemunch-mcpインストール手順は不要 — uvx がオンデマンドでサーバーを取得して実行します。PATH に置きたい場合(および強制フックに必要)は、uv tool install jcodemunch-mcp を実行し、次に claude mcp add -s user jcodemunch jcodemunch-mcp を実行します。
次に、エージェントにツールを優先するように指示します。これは人々が考える以上に重要です。インストールによってツールが利用可能になりますが、エージェントの力任せの読み取り習慣は変わりません。CLAUDE.md に 1 行追加するだけで実現します:
Call the jcodemunch_guide tool and strictly follow its instructions.Cursor、Windsurf、Codex CLI、Antigravity、Gemini CLI、Qwen Code、Kiro、Cline、Zed、Goose、Hermes、Odysseus、Paperclip を使用していますか? テスト済みのすべてのクライアント設定は CLIENTS.md にあります。オプションの追加機能(ローカルセマンティック検索、プロバイダーごとの AI 要約)は QUICKSTART.md にあります。各追加機能が取り込むシステムサーフェスは SECURITY.md に文書化されています。
クイックスタート
完全なウォークスルー: QUICKSTART.md。2 分バージョン、init 後にエージェント内で:
尋ねる: 「このリポジトリを jcodemunch でインデックス化して。」
尋ねる: 「jcodemunch を使って、認証を処理する関数を見つけて、そのソースを表示して。」
エージェントは search_symbols と get_symbol_source で応答し、ファイル全体ではなく数十行を返します。get_session_stats で確認できます。セッションのトークン供給量と削減量が報告されます。メーターの数値はここから来ています。
人気フレームワークの初期インデックス作成をスキップしたいですか? 事前構築済みのスターターパック: jcodemunch-mcp install-pack --list(無料パックはライセンス不要)。
できること
ファイルを読み込む代わりに1つのシンボルを取得。
get_symbol_sourceは、700行のファイル内の1つの関数に触れる編集の大半について、正確な関数本体をバイト単位で返します(その読み取りで約95%削減)。1回の呼び出しでタスク全体のコンテキストを組み立て。
assemble_task_contextはタスクの意図を分類し、アンカーシンボルを抽出し、1つのトークン予算内で正しいツールシーケンスを実行します。plan_turnは最初の読み取りの前にターンをルーティングします。grepでは答えられない構造的な質問をする。
find_importers、get_blast_radius、get_call_hierarchy、find_dead_code、get_changed_symbols、get_hotspots、search_astアンチパターンスイープなど。リスクのある変更を事前チェックし、いつ止めるべきかを知る。
check_edit_safe、check_delete_safe、get_pr_risk_profile、および編集可能な{old_text, new_text}ブロックによるplan_refactoring。2つの安全性チェックはstop_rule.terminalを返します。true は、それ以上の jcodemunch 呼び出しが判定を変えないことを意味するため、念のためfind_importersやcheck_referencesを再実行するのは無駄な作業です。これは「最終」を意味し、「安全」ではありません。false は、回答を変える具体的なものを示します。回答を信頼する。 校正された信頼スコア、鮮度フラグ、欠落主張に対するカバレッジ契約、SCIP インポートによるコンパイラ検証済み参照、そして LLM に届く前の自動シークレット編集。
インデックスを自動的に最新に保つ。 ウォッチモード、エージェントフック、VS Code 拡張機能が陳腐化のギャップを埋めます。
以上がハイライトです。90以上のツールの完全なツアー、MUNCH コンパクトワイヤーフォーマット、証拠レシート、オフロード可能な作業の注釈、セッション経済の計測については CAPABILITIES.md を、内部構造については UNDER_THE_HOOD.md を参照してください。
新着情報
v1.108.293 (2026-08-23) — 209件のテストを隠していた10個のスキップされたモジュール
v1.108.292 (2026-08-23) — ツール延期を生き延びる唯一の文字列
v1.108.291 (2026-08-22) — ソースの各バイトを一度だけ数える
いつ役立つか(そして役立たないか)?
シナリオ | ネイティブツール | jCodeMunch | 削減量 |
1つの関数を編集(700行のファイル) |
|
| 約95% |
ファイルの構造を理解する |
|
| 約80% |
編集するファイルを見つける |
|
| 同等 |
編集にファイル全体のコンテキストが必要 |
|
| 約0% |
「Xを変更すると何が壊れる?」 | 不可能 |
| 独自機能 |
対象を絞った編集(1つの関数、1つのメソッド、1つのクラス)で最も効果を発揮します。これは実際の編集作業の大半を占めます。ファイル全体を本当に必要とする編集(ファイルレベルの状態の再構築、数百行に及ぶロジックの並べ替え)では利点はありません。最適な用途: 大規模リポジトリ、馴染みのないコードベース、エージェント駆動の探索、リファクタリングと影響分析、そしてエージェントを賢くしすぎずに AI トークンコストを削減したいチーム。
言語: tree-sitter 経由で70以上。Python、JavaScript/TypeScript、Go、Rust、Java、C/C++、C#、PHP、Ruby、Swift、Kotlin を含みます。完全なマトリックス: LANGUAGE_SUPPORT.md。モノレポ: 対応。増分インデックス作成、ワークスペースメンバー検出、サブパススコープ。
セキュリティ、プライバシー、バックグラウンド動作
ローカルファースト設計: インデックスは ~/.code-index/ に置かれ、ベースパッケージのデフォルトのネットワーク動作は匿名の削減カウンターのみです(ランダムIDと集計トークン数のみ。コード、パス、個人情報は含まれません。share_savings: false でオプトアウト可能)。サーバーがツール呼び出しへの応答以外で行うすべてのこと(ファイル監視、オプトインのログインサービス、ライセンス検証、モデルダウンロード、組織レポート)はオプトインまたはオプトアウト可能で、可視化され、元に戻せ、各項目はパストラバーサル、シンボリックリンク、シークレット編集の制御とともに SECURITY.md に列挙されています。
ドキュメント
ドキュメント | 内容 |
3ステップでゼロからインデックス作成まで | |
すべての MCP クライアント向けのテスト済み設定 | |
完全なツールリファレンス、ワークフロー、ベストプラクティス | |
ハイライトを超えた完全な機能リファレンス | |
設定ファイルリファレンス、トークン制御レバー、ツール階層、カウンター | |
技術マニュアル: 判定、ランキング内部、来歴契約 | |
内部設計、ストレージモデル、拡張ポイント | |
Groq Remote MCP、gcm CLI、speedreview GitHub Action | |
| |
エージェントフックとプロンプトポリシー | |
サポート言語と解析の詳細 | |
セキュリティ制御、データ移動、バックグラウンド動作 | |
一般的な問題と修正 | |
リリース履歴と今後の予定 |
ライセンスと商用利用
jCodeMunch-MCP は jCodeMunch-MCP デュアルユースライセンス(全文)の下でリリースされています。非商用利用は無料です。商用利用には有料ライセンスが必要です。一回限りで、jMunch LLC が Stripe 経由で販売します:
jCodeMunch のみ: Builder、$79(開発者1名) · Studio、$349(最大5名) · Platform、$1,999(組織全体の内部展開)
完全な jMunch スイート(コード+ドキュメント+データ): Trio Builder、$99 · Trio Studio、$449 · Trio Platform、$2,499
価値があるか分からない? ROI 計算機でご自身の数字を計算するか、承認者に財務チーム向けバージョンを転送してください。保証は有効です: jCodeMunch が元を取れなければ、jCodeMunch に支払う必要はありません。
すべての利用条件: 著作権表示を保持し、変更を明確にマークし、原作者の名前をそのまま残し(彼はかなり自己陶酔的です)、ソースの再配布には目立つ変更通知を含めること。ソフトウェアは改名、リブランド、公開パッケージレジストリへの公開はできず、保証なしで「現状のまま」提供されます。LICENSE が優先します。
FAQ
Claude / Opus のトークンをどれくらい節約できますか? 取得中心のワークフローでは、コード読み取りトークンは通常86〜99%削減され、15タスク・3リポジトリにわたる grep アンドリードエージェントとのベンチマークで平均96.4%(27.9倍)を記録しています。クエリごとの結果は7.3倍から84.3倍の範囲です。方法論: TOKEN_SAVINGS.md と benchmarks/。
RAG や grep ベースのツールとどう違うのですか? jCodeMunch は、ファジーなチャンク(RAG)や、エージェントがまだ読んで推論する必要がある生の行マッチ(grep)ではなく、シンボルレベルでバイトレベルの精度(関数、クラス、インポーター、ブラスト半径、階層)で取得します。
個人利用は無料ですか? はい。商用利用にはライセンスが必要です。上記を参照してください。
X の詳細はどこにありますか? 機能: CAPABILITIES.md。設定: CONFIGURATION.md。クライアント: CLIENTS.md。内部構造: UNDER_THE_HOOD.md。または本流: jcodemunch.com。
その他: OSS コードヘルス観測所(Express、FastAPI、Gin、Django などの毎週の6軸スナップショット) · Token Cost Radar(毎日の AI トークンコスト情報) · jMunch Console(ワンクリックアップグレード用の無料 MIT GUI)
Available Tools
6 toolsannounce_modelA
Agent self-reports its active model identifier. Server resolves to a tier via model_tier_map (fuzzy: normalize → exact → glob → substring → '*' → 'full') and narrows the exposed tool list accordingly. Idempotent: a second call with the same model is a cheap no-op. Prefer calling plan_turn(model=...) for routine per-task use; use announce_model as a fallback when plan_turn is not appropriate for the current task.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Your active model identifier, e.g. 'claude-haiku-4-5'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses multiple behavioral traits beyond the annotations: idempotency ('a second call with the same model is a cheap no-op'), the fuzzy tier resolution order, and the side effect of narrowing the tool list. These details help the agent anticipate what will happen when it calls the tool, well beyond the sparse annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and purpose, then detailed resolution logic, and ends with usage guidance. Every clause carries value, and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers purpose, effect, idempotency, and when to use it. Nothing an agent needs to decide whether to call it or to understand the outcome is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a clear description of the model parameter with an example ('claude-haiku-4-5'), so schema coverage is 100%. The description adds little beyond restating that the agent reports its model identifier, which is already implied by the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('self-reports') and resource ('active model identifier'), and clearly explains the consequence: the server resolves to a tier and narrows the exposed tool list. It also distinguishes itself from plan_turn by name, so an agent can tell them apart without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is given: 'Prefer calling plan_turn(model=...) for routine per-task use; use announce_model as a fallback when plan_turn is not appropriate.' This tells the agent exactly when to use this tool and when to use the alternative, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jcodemunch_guideARead-only
Return the version-current CLAUDE.md / AGENT.md policy snippet for jcodemunch-mcp — the same text produced by jcodemunch-mcp claude-md --generate. Lets an agent keep a one-line CLAUDE.md (e.g. "Call jcodemunch_guide and strictly follow its instructions.") instead of pasting a static snippet that drifts from the installed version. Idempotent, no repo context required. Matches the active tool surface, tier and disabled_tools — list 'jcodemunch_guide' in disabled_tools to hide it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description consistently describes a read operation with no contradiction. It adds valuable context beyond the annotations: idempotency, that no repo context is required, and that output dynamically matches the current tool surface, tier, and disabled_tools configuration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and each subsequent sentence earns its place: the drift-prevention use case, idempotency/no-repo-context, and the config-matching behavior. It is slightly dense — four ideas in one block — but efficient with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with no output schema, the description is thorough: it covers return content, the rationale, safety (idempotent, read-only), and the config-sensitive output behavior. The only minor omission is a concrete sketch of the returned snippet's shape, but given tool simplicity this is not a material gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is an empty object (100% coverage trivially), so the schema leaves nothing to explain. Per rubric, a zero-parameter tool gets a baseline of 4, and the description adds the useful note that no repo context is required, reinforcing the no-input contract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Return') plus a precise resource: the version-current CLAUDE.md/AGENT.md policy snippet generated by `jcodemunch-mcp claude-md --generate`. This is clearly distinct from its siblings (set_tool_tier, announce_model, menu, order, route), which are all operational actions, so an agent can disambiguate without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains why and when to call it: to keep a one-line CLAUDE.md instead of a static snippet that drifts from the installed version, and notes 'no repo context required' so it can be invoked standalone. It does not explicitly name alternatives or state when not to use it, but the clean use-case motivation covers the main guidance need.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orderA
Dispatch any jcodemunch action by name: order(action, args). The single-verb front door to the full tool catalog. Read-only by default — actions that change index/session state require allow_state_change=true, and execution/file-write verbs are refused. For exploration questions ('how does X work'), order('get_ranked_context', {repo, query, token_budget}) answers in ONE call — prefer it over chained search/outline/source hops; add compress=true to fit more symbols in the same budget. Call 'menu' to discover actions, or 'route' to pick one from a task.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments for that action, exactly as you'd pass them directly. | |
| action | Yes | Name of the catalog action to run (e.g. 'search_symbols'). | |
| allow_state_change | No | Opt in to dispatching an index/session state-changing action (e.g. index_repo). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite openWorldHint=true and readOnlyHint=false in annotations, the description adds valuable behavioral detail: it is read-only by default, requires allow_state_change=true for state-changing actions, and refuses execution/file-write verbs. This goes beyond the annotation flags and helps an agent predict side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient. Each sentence adds functional value: the call pattern, read-only default, state-change opt-in, exploration recommendation, and menu/route routing. It could be slightly trimmed, but the structure is logical and front-loaded with the primary usage pattern.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic dispatcher with no output schema and dynamic behavior, the description is impressively complete. It covers invocation, safety constraints, suggested use cases, and fallback tools for discovery. It does not describe return values, but given the open-world nature of dispatched actions, that is an acceptable omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics by showing the call pattern order(action, args), explaining that args are passed 'exactly as you'd pass them directly,' and clarifying allow_state_change with a concrete example (index_repo). The compress=true hint further enriches parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource pair ('dispatch any jcodemunch action by name') and positions itself as 'the single-verb front door to the full tool catalog.' It distinguishes itself somewhat from siblings by noting that 'menu' discovers actions and 'route' picks one, though it could more sharply contrast with 'route' as a dispatcher vs. a router.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Excellent guidance: it explicitly recommends order('get_ranked_context', ...) for exploration questions over chained search/outline/source hops, suggests adding compress=true, and directs users to 'menu' for discovery or 'route' for task-based selection. It also states that execution/file-write verbs are refused, giving a clear boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
routeA
Map a natural-language task to the best catalog action(s): route(task, repo?, execute?). Returns ranked recommendations with ready-to-run argument templates. With execute=true, dispatches the top recommendation and returns its result in the same call, collapsing discover-then-call into one round-trip. Recommends assemble_task_context / plan_turn for context-gathering intents.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Repository identifier (required to execute repo-scoped actions). | |
| task | Yes | What you're trying to do, in plain language. | |
| model | No | Optional active model id; piggybacks tier-switch like plan_turn(model=...). | |
| execute | No | If true, dispatch the top recommended action and return its result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide readOnlyHint=false and openWorldHint=true, so the tool is not read-only. The description builds on this by disclosing that execute=true dispatches the top recommendation and returns the result, collapsing the discover-then-call flow into one round-trip. It also clarifies that without execute it returns recommendations only, giving the agent a clear behavioral model without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, then explains the execution option and a usage hint for context-gathering intents. Every sentence earns its place; no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a router that can optionally execute, the description covers the main behavior (recommendations vs. execution), the return type (ranked recommendations with argument templates), and even suggests related tools for specific intents. It does not detail error handling or authentication, but these are not essential given the tool's simplicity and the presence of a schema with parameter semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains full descriptions for all 4 parameters (100% coverage), including task, repo, model, and execute. The description does not add new parameter-specific semantics; it reiterates the execute behavior already documented. Given the schema covers meaning, the description adds no v、alue here, aligning with the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Map a natural-language task to the best catalog action(s)' – a specific verb + resource that clearly distinguishes it from sibling tools like set_tool_tier or menu, which are direct actions. It also describes its primary output (ranked recommendations) and the optional execution path, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies when to use the tool by indicating it is for natural-language task routing and explicitly recommends assemble_task_context / plan_turn for context-gathering intents. However, it does not explicitly state exclusions (e.g., 'use when you know the exact action'), though this is strongly implied by the router nature. It provides actionable context without being prescriptive about alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_tool_tierA
Explicit tier override for the current session. Narrows or widens the exposed tool list to 'core' / 'standard' / 'full'. Prefer plan_turn(model=...) for routine per-task use; use set_tool_tier only when you need an explicit override (e.g. escalate mid-task to 'full' after a capability-gated failure).
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and openWorldHint=false, so agents know this is a mutating, closed-world operation. The description adds that it narrows/widens the exposed tool list and applies to the current session, which is useful context beyond the annotations. It doesn't disclose every side effect (e.g., persistence), but it's adequate given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, then usage guidance. Every word earns its place with no filler or redundancy. Efficiently structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, no-output-schema tool, the description fully covers what it does, when to use it, and the allowed parameter values. There is nothing critical missing for a correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has zero description coverage for the parameter, but the description lists the enum values ('core', 'standard', 'full') and explains their effect (narrow/widen tool list). This fully compensates for the schema gap, making the parameter's meaning clear without needing to open the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states a specific action (override tier for current session) and the resource (exposed tool list), and explicitly names the three allowed values. It also distinguishes itself from plan_turn, the routine alternative, so an agent can immediately tell what this tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing: prefer plan_turn(model=...) for routine per-task use, use set_tool_tier only for explicit overrides, and provides a concrete example (escalate mid-task to 'full' after a capability-gated failure). This leaves no ambiguity about when to pick this tool over the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.108.293- First observed
announce_model - First observed
jcodemunch_guide - First observed
menu - First observed
order - First observed
route - First observed
set_tool_tier
TDQS
Scored across 6 tools
Tools are mostly distinct: tier management (set_tool_tier vs announce_model), discovery (menu vs route), dispatch (order), and policy (jcodemunch_guide) each have clear purposes. However, menu and route both aid in discovering actions, and set_tool_tier/announce_model both influence tier, so a small overlap exists but descriptions clarify boundaries.
Naming is inconsistent: set_tool_tier and announce_model follow a verb_noun pattern, but menu, order, and route are single words, and jcodemunch_guide is a noun phrase. There is no uniform convention across the set, which makes the API slightly harder to predict.
Six tools is well within the ideal range for a server focused on agent self-management and action dispatch. Each tool has a clear role, and the count feels neither thin nor bloated.
The surface covers the core lifecycle: tier control (set_tool_tier, announce_model), discovery (menu, route), dispatch (order), and policy guidance (jcodemunch_guide). Potential gaps like a direct 'get current tier' tool are minor and workaroundable via announce_model, so the set is largely complete for its stated purpose.
Maintenance
Related MCP Connectors
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Codebase intelligence for AI agents — dead code, blast radius, ownership.
Code intelligence platform for AI agents. 20 tools for architecture, security & impact analysis.
Search indexed code, trace dependencies, assess change impact, and recall repository memory.
Related MCP Servers
- AlicenseBqualityBmaintenanceEnables LLMs to efficiently read, write, and refactor code using precise AST-based operations, reducing token usage and context window waste.2534 npm3MIT
- FlicenseNot gradedqualityAmaintenanceEnables AI coding agents to efficiently query code context via a symbol graph, reducing token usage by up to 20x.122 npm496-

Code Scalpelofficial
AlicenseNot gradedqualityCmaintenanceEnables AI assistants to surgically extract and analyze code, reducing token usage and costs by up to 200x compared to reading entire files.18MIT- AlicenseNot gradedqualityBmaintenanceIndexes codebases and lets AI agents retrieve precise code snippets (functions, classes, routes) instead of reading entire files, reducing token usage and improving accuracy.242 npm7MIT