jCodeMunch
jCodeMunch MCP
通过 tree-sitter AST 解析实现精确源代码检索的最高 token 效率 MCP 服务器。 将代码探索的 AI token 成本降低 86-99%(平均 96%,基准测试显示比 grep-and-read 智能体少 27.9 倍的 token),不再浪费上下文窗口去读取整个文件。
真实数据,来自生产环境 已节省 838B+ token · 136,000+ 个报告安装 · 避免 $4.2M+ AI 支出 · 减少 100,000+ kg CO₂ 排放 计数器数据截至 2026-08-17,按 $5/MTok Claude Opus 输入费率估值。四项数据只会持续增长,请将其视为下限。实时数据见 jcodemunch.com。
兼容 Claude Code、Cursor、VS Code、Codex CLI、Windsurf、Continue 以及任何 MCP 兼容客户端。
个人使用免费。 用它赚钱的话,J 叔叔要分一杯羹。公平吧?商业许可见下文。 我们的承诺:如果 jCodeMunch 不能为你省回成本,你就不用为 jCodeMunch 付费。
为什么选择 jCodeMunch?
大多数 AI 智能体以昂贵的方式探索代码库:打开整个文件,浏览数千行无关代码,然后重复。这不是"有点低效",而是token 焚烧炉。
jCodeMunch 只索引一次代码库,让智能体只检索所需的精确代码:函数、类、方法、常量、大纲和紧密限定的上下文包,精度达到字节级。它使用 tree-sitter 解析源码,将结构化符号元数据(签名、种类、限定名、摘要、字节偏移)与原始文件内容一起存储在本地索引中,并按需获取精确实现,而不是反复重读文件。
任务 | 传统方式 | 使用 jCodeMunch |
查找函数 | 打开并扫描大文件 | 搜索符号,获取精确实现 |
理解模块 | 读取大范围文件区域 | 只提取相关符号和导入 |
探索仓库结构 | 逐个文件遍历 | 查询大纲、树和定向包 |
"如果我改 X 会破坏什么?" | 不可能 |
|
索引一次。廉价查询。持续前进。精准上下文胜过暴力上下文。
Related MCP server: Symbol Delta Ledger
证据
可复现的 token 效率基准测试
使用 tiktoken cl100k_base 在三个固定到上游提交的公共仓库上测量,于 2026-08-03 在 v1.108.233 上运行。工作流:search_symbols(前 5 个)+ 每次查询 get_symbol_source × 3。两个基线,同一运行,同一语料库,同一文件读取器:
Grep-top-3:用
rg -l搜索查询词,按匹配数对文件排序,打开前 3 个完整文件。这是没有该工具的合格智能体实际会做的事情,也是值得引用的数字。Read-all:所有已索引源文件拼接。这是没人会付的上限;保留以与先前发布的数据保持连续性。
仓库 | 文件数 | 符号数 | Grep-top-3 基线 | jCodeMunch | 对比 grep | 对比 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 倍的 token。 单次查询结果从 7.3x 到 84.3x 不等(中位数 25.5x);没有单一倍数能描述所有查询。对比 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 变体中:通过 find_importers 检测孤立文件,这是原生工具无法在不编写脚本的情况下回答的结构性查询。完整报告:benchmarks/ab-test-naming-audit-2026-03-18.md
被提及
Artur Skowroński(VirtusLab):"大约减少 80% 的 token,或者说效率提升 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 个 token 减少到仅 700 个——提升 5.5 倍" · JCodeMunch AI Token Saver
Eric Grill:"上下文是稀缺资源。削减 90%,整个技术栈就会变得更便宜、更可靠" · jCodemunch: Context Engine for AI Agents
安装
一键安装
推荐:一条命令
uv tool install jcodemunch-mcp
jcodemunch-mcp init无需管理虚拟环境,不会写入系统 Python,并且在拒绝裸 pip install 的 PEP 668 发行版(Ubuntu 24.04+、Debian 12+)上开箱即用。还没有 uv?
init 会自动检测你的 MCP 客户端(Claude Code、Claude Desktop、Cursor、Windsurf、Continue),写入它们的配置条目,安装 CLAUDE.md 提示策略让你的智能体真正使用 jCodeMunch,可选安装强制执行钩子,可选索引你的项目,并审计你的智能体配置文件是否存在 token 浪费。
命令 | 使用场景 |
| 零安装。 从临时环境运行——不会永久写入磁盘。 |
| 你已经统一使用 pipx |
| 在你自行管理的虚拟环境内 |
验证:
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 中加一行即可:
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。两分钟版本,在 init 之后在你的智能体内:
询问:"用 jcodemunch 索引这个仓库。"
询问:"使用 jcodemunch,找到处理认证的函数并显示其源码。"
代理应通过 search_symbols 和 get_symbol_source 作答,返回几十行而非整个文件。用 get_session_stats 确认:它会报告会话中服务的 token 数和节省量。仪表盘上的数字就来自这里。
想跳过热门框架的初始索引?预构建的入门包:jcodemunch-mcp install-pack --list(免费包无需许可证)。
你能做什么
检索单个符号,而非加载整个文件。 对于 700 行文件中只改动一个函数的大多数编辑,
get_symbol_source返回精确到字节的函数体(该次读取节省约 95%)。一次调用组装整个任务的上下文。
assemble_task_context对任务意图进行分类,提取锚点符号,并在一个 token 预算内运行正确的工具序列。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。两个安全检查返回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 个测试
v1.108.292 (2026-08-23) — 在工具延迟中幸存的那一个字符串
v1.108.291 (2026-08-22) — 每个源字节只计数一次
何时有用(何时无用)?
场景 | 原生工具 | jCodeMunch | 节省 |
编辑一个函数(700 行文件) |
|
| ~95% |
理解文件结构 |
|
| ~80% |
找到要编辑的文件 |
|
| 相当 |
编辑需要整个文件的上下文 |
|
| ~0% |
“如果我更改 X 会破坏什么?” | 不可能 |
| 独特能力 |
它在针对性编辑(一个函数、一个方法、一个类)上帮助最大,而这正是大多数实际编辑工作。真正需要整个文件的编辑(重构文件级状态、重排跨越数百行的逻辑)则没有优势。最适合:大型仓库、不熟悉的代码库、代理驱动的探索、重构和影响分析,以及在不降低代理智能的前提下削减 AI token 成本的团队。
语言: 通过 tree-sitter 支持 70+ 种,包括 Python、JavaScript/TypeScript、Go、Rust、Java、C/C++、C#、PHP、Ruby、Swift 和 Kotlin。完整矩阵:LANGUAGE_SUPPORT.md。Monorepos: 支持;增量索引、工作区成员检测、子路径作用域。
安全、隐私和后台行为
设计上以本地优先:索引位于 ~/.code-index/,基础包唯一的默认网络行为是匿名节省计数器(随机 ID 加聚合 token 计数,不含代码、路径或 PII;可通过 share_savings: false 退出)。服务器在回答工具调用之外所做的一切(文件监视、可选登录服务、许可证验证、模型下载、组织报告)都是可选加入或可选退出的、可见的、可逆的,每一项都在 SECURITY.md 中与路径遍历、符号链接和机密信息脱敏控制一起列出。
文档
文档 | 涵盖内容 |
三步从零到完成索引 | |
每个 MCP 客户端的经过测试的配置 | |
完整工具参考、工作流和最佳实践 | |
精彩集锦之外的完整能力参考 | |
配置文件参考、token 控制杠杆、工具分级、计数器 | |
技术手册:结论、排序内部机制、来源契约 | |
内部设计、存储模型和扩展点 | |
Groq Remote MCP、gcm CLI、speedreview GitHub Action | |
将 jCodeMunch 与 | |
代理钩子和提示策略 | |
支持的语言和解析细节 | |
安全控制、数据移动、后台行为 | |
常见问题和修复 | |
发布历史和下一步计划 |
许可和商业使用
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 具有最终效力。
常见问题
我能在 Claude / Opus token 上节省多少? 在检索密集型工作流中,代码读取 token 通常下降 86-99%,在 15 个任务和 3 个仓库中与 grep-and-read 代理对比,基准测试平均为 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 等的每周六轴快照)· Token 成本雷达(每日 AI token 成本情报)· 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