关于 Jcodemunch Mcp
jCodeMunch MCP 是面向编码 Agent 的 MCP 服务,使用 tree-sitter AST 为代码库建立索引并按符号检索代码。它返回指定实现和结构化上下文,避免 Agent 必须读取整个文件。
主要功能
- 01tree-sitter AST 索引
- 02按符号获取源码
- 03代码库大纲与树结构
- 04包含导入项的上下文包
- 05代码结构查询
适用场景
- 01查找函数实现
- 02获取相关符号以理解模块
- 03浏览代码库结构
- 04评估代码更改的影响
MCP 相关
它向 MCP 客户端提供代码库索引、符号搜索与源码获取、大纲、上下文包和结构化查询。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| tier | enum | 是 | core | standard | full |
详细介绍
jCodeMunch MCP
一个 MCP 服务,使用 tree-sitter AST 解析,按符号而非文件检索源代码。 在我们固定的基准测试中,单次查找所需的 token 比 grep-and-read Agent 少 96.2%(少 26.5 倍;15 次查找的降幅为 86.9% 至 98.7%),让你的 Agent 不再把上下文窗口浪费在整个文件上。
基准测试:在固定提交版本的 express、fastapi 和 gin 上各执行 5 次查询,使用 tiktoken cl100k_base 统计 token;jcodemunch-mcp 使用提交 15afcf75,其版本字符串为 1.108.391,但也包含在 1.108.392 中发布的设置文件排序变更,以及随后发布的字段/常量变更。一次查找包含一次 search_symbols,以及对其排名前 3 的结果调用 get_symbol_source;对比方式为 grep-and-read(按匹配数对文件排序,并读取排名前 3 个文件的全部内容)。数据按单次查找计算,而非按会话计算。请参阅 benchmarks/REPRODUCING.md 重现测试。
真实结果,来自生产环境实时数据 已节省超过 838B 个 token · 超过 136,000 次报告安装 · 避免超过 $4.2M 的 AI 开支 · 避免排放超过 100,000 kg 的 CO₂ 计数数据截至 2026-08-17,按 Claude Opus 输入 token 每百万 $5 的费率计算。这四项数据都只会增长,因此请将其视为最低值。实时数据见 jcodemunch.com。
兼容 Claude Code、Cursor、VS Code、Codex CLI、Windsurf、Continue,以及任何兼容 MCP 的客户端。
个人使用免费。 用它赚钱,J 叔也要分一杯羹。公平吧?下方提供商业许可证。 我们的保证:如果 jCodeMunch 无法收回成本,你无需为 jCodeMunch 付费。
为什么选择 jCodeMunch?
大多数 AI Agent 都用成本高昂的方式探索代码仓库:打开整个文件,浏览成千上万行无关内容,然后重复操作。这可不是「有点低效」,而是token 焚烧炉。
jCodeMunch 只需为代码库建立一次索引,就能让 Agent 仅检索所需的确切代码:函数、类、方法、常量、大纲和范围严格限定的上下文包,精确到字节级别。它使用 tree-sitter 解析源代码,在本地索引中存储结构化符号元数据(签名、类型、限定名称、摘要、字节偏移)以及原始文件内容,并按需获取确切实现,而不必反复读取文件。
| 任务 | 传统方式 | 使用 jCodeMunch |
|---|---|---|
| 查找函数 | 打开并扫描大型文件 | 搜索符号,获取确切实现 |
| 理解模块 | 阅读大段文件内容 | 仅提取相关符号和导入项 |
| 探索代码仓库结构 | 逐个遍历文件 | 查询大纲、树形结构和定向上下文包 |
| 「如果我更改 X,会造成什么影响?」 | 无法实现 | get_blast_radius |
建立一次索引,低成本查询,持续推进。精准上下文胜过蛮力上下文。
证据
可复现的 Token 效率基准测试
使用 tiktoken cl100k_base 测量,覆盖 3 个固定在上游提交版本的公开代码库;于 2026-10-22 在 v1.108.391 上运行(提交为 15afcf75,其版本字符串为 1.108.391,但也包含在 1.108.392 发布的设置文件排名变更,以及之后发布的字段/常量变更)。工作流:每次查询执行 search_symbols(前 5 个结果)+ get_symbol_source × 3。两个基线在同一次运行、同一语料库和同一文件读取器下测得:
- Grep-top-3:使用
rg -l搜索查询词,按匹配数排列文件,并完整打开排名前 3 的文件。这是没有该工具的称职 Agent 实际会采用的方式,也是值得引用的数值。 - Read-all:拼接所有已索引的源文件。这是没人会付出的上限;保留此项是为了与之前公布的数据保持连续性。
| 代码库 | 文件数 | 符号数 | Grep-top-3 基线 | jCodeMunch | 相比 grep | 相比 read-all |
|---|---|---|---|---|---|---|
| expressjs/express | 186 | 989 | 平均 15,724 | 平均 990 | 15.9 倍 | 156.1 倍 |
| fastapi/fastapi | 1,186 | 13,699 | 平均 85,296 | 平均 2,556 | 33.4 倍 | 322.9 倍 |
| gin-gonic/gin | 98 | 1,822 | 平均 31,975 | 平均 1,481 | 21.6 倍 | 102.5 倍 |
| 总计(15 次任务运行) | 664,975 | 25,132 | 26.5 倍 | 225.2 倍 |
与 grep-and-read Agent 相比:减少 96.2%,Token 数减少 26.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 组:通过 find_importers 检测孤立文件;原生工具无法回答这类结构化查询,除非编写脚本。完整报告:benchmarks/ab-test-naming-audit-2026-03-18.md
媒体提及
- Artur Skowroński(VirtusLab):"Token 数大约减少 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 个 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 写入任何内容,并且在 PEP 668 发行版(Ubuntu 24.04+、Debian 12+)上也能直接使用,这些发行版会拒绝裸用 pip install。还没有 uv?
init 会自动检测你的 MCP 客户端(Claude Code、Claude Desktop、Cursor、Windsurf、Continue),写入相应的配置项,安装用于保持索引最新的钩子,且不会向模型上下文添加任何内容(编辑后重新索引、压缩前检查点、向你发送任务完成说明),还可选择为项目建立索引,并审查 Agent 配置文件中的令牌浪费情况。有两项额外功能需要选择启用,因为模型会在每个适用回合中读取它们:--policy 会将代码探索策略写入 CLAUDE.md、AGENTS.md 以及 Cursor 和 Windsurf 规则文件;--guidance 会添加用于指导模型使用 Read/Grep/Glob/Bash、简要指引子 Agent 并在压缩后恢复上下文的钩子。已安装这些功能时,安装程序会保留它们;jcodemunch-mcp init --remove-guidance 可将其移除,并创建备份。
按名称提出请求。 告诉 Agent 使用 jcodemunch(“使用 jcodemunch 查找 X 是在哪里处理的”)。在我们测量的会话中,用户按名称提出请求时,Agent 会使用它。
其他安装方式
| 命令 | 适用情况 |
|---|---|
uvx jcodemunch-mcp | 零安装。 在临时环境中运行,不会将任何内容永久写入磁盘。init 写入的客户端配置项已经以这种方式调用服务,因此大多数配置只会运行此命令。⚠ 强制执行钩子是个例外:它们由最小 PATH 的子 shell 启动,并按名称查找可执行文件,因此需要使用 uv tool install(或 pipx/pip)才能运行。 |
pipx install jcodemunch-mcp | 你已将 pipx 作为标准工具 |
pip install jcodemunch-mcp | 在由你自行管理的虚拟环境中 |
验证:
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。
接着告诉 Agent 优先使用这些工具。这一点比很多人想象的更重要;安装会让工具可用,但不会改变 Agent 习惯性地大量读取文件的做法。在 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 后,在你的 Agent 中两分钟即可完成:
- 提问:“使用 jcodemunch 为这个代码仓库建立索引。”
- 提问:“使用 jcodemunch,查找处理身份验证的函数,并向我展示它的源代码。”
Agent 应通过 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_references会回答某个名称在哪里被使用(导入位置,以及内容中提及该名称的所有文件);find_references只会在导入图中回答有哪些文件导入了它,因此看不到调用位置。get_call_hierarchy会指出哪些调用者是直接调用者:较深层级的行会标明从哪个调用者到达该位置。 - 预先检查高风险更改,并知道何时该停止。
check_edit_safe、check_delete_safe、get_pr_risk_profile和plan_refactoring会提供可直接用于编辑的{old_text, new_text}代码块。两个安全检查会返回stop_rule.terminal:true 表示再调用 jcodemunch 也不会改变结论,因此为了确认而重新运行find_importers或check_references是徒劳的。它的意思是结论已定,而不是安全。corpus_inadequate(索引无法支持关于不存在的断言)和dynamic_import_boundary(动态导入,或对于 .NET 控件或构建项,索引未收录的路径,可能会加载该文件)永远不会是终结状态,每个工具的说明都会列出它返回的所有判定。check_rename_safe在导入图无法到达该符号所在文件时会返回safe: null而不是true,因为使用该符号的文件尚未经过检查;get_pr_risk_profile在无法测量影响范围轴时会返回带有unmeasurable_axes的risk_score: null;CI 门禁应对 null 判定为失败。将类型检查器自身的输出提供给服务(jcodemunch-mcp import-trace --diagnostics <file>:mypy --output json、pyright --outputjson、tsc --pretty false、ruff --output-format json),check_edit_safe、get_changed_symbols、get_pr_risk_profile和get_symbol_provenance就会指出类型检查器已标记哪些符号,以及对应的是哪个提交。它们不会替你运行检查器。False 会指出具体哪一项会改变答案。 - 信任答案。 提供经过校准的置信度分数、时效性标记、针对缺失项断言的覆盖范围约定、通过 SCIP 导入实现的编译器验证引用,以及在任何内容发送给大模型之前自动进行的机密信息脱敏。
- 自动保持索引最新。 监视模式、Agent 钩子和 VS Code 扩展可缩小索引过时造成的差距。
以上只是亮点。90 多种工具、MUNCH 紧凑线格式、证据凭据、可卸载工作注释,以及会话成本效益监测的完整介绍,请参阅 CAPABILITIES.md;内部实现详见 UNDER_THE_HOOD.md。
最新动态
- v1.108.399(2026-10-26)— 四个核心工具的描述以各自要回答的问题开头
- v1.108.398(2026-10-25)— 语义功能及所有额外功能在每个 Python 版本上都安装固定版本的 filelock
- v1.108.397(2026-10-24)— 搜索结果被截断时会列出未显示的文件,且 file_pattern 支持花括号
- v1.108.396(2026-10-23)— 首次搜索大型代码仓库时,每个导入项只解析一次
什么时候有帮助(什么时候没有)?
| 场景 | 原生工具 | jCodeMunch | 节省 |
|---|---|---|---|
| 编辑一个函数(700 行文件) | Read → 700 行 | get_symbol_source → 30 行 | ~95% |
| 了解文件结构 | Read → 完整内容 | get_file_outline → 名称 + 签名 | ~80% |
| 查找要编辑的文件 | Grep 搜索多个文件 | search_symbols → 精确匹配 | 相近 |
| 编辑需要完整文件上下文 | Read → 完整内容 | get_file_content → 完整内容 | ~0% |
| “更改 X 会造成什么影响?” | 不可能 | get_blast_radius | 独特能力 |
它最适用于有针对性的编辑(一个函数、一个方法或一个类),这类任务占实际编辑工作的大多数。确实需要整个文件的编辑(重构文件级状态、调整跨数百行的逻辑顺序)则没有优势。最适合的场景:大型代码仓库、不熟悉的代码库、由 Agent 驱动的探索、重构和影响分析,以及希望降低 AI 令牌成本但不让 Agent 变笨的团队。
**语言:**通过 tree-sitter 支持 70 多种语言,包括 Python、JavaScript/TypeScript、Go、Rust、Java、C/C++、C#、PHP、Ruby、Swift 和 Kotlin。完整列表:LANGUAGE_SUPPORT.md。**Monorepo:**支持;增量索引、工作区成员检测、子路径范围限定。
延后加载工具架构(Anthropic 工具搜索)
如果你通过 MCP 连接器在支持工具搜索的模型上使用 jCodeMunch,就可以完全不将我们的架构放入上下文前缀,而是让 Claude 仅加载某个请求所需的两三个工具。你无需为每个工具设置 defer_loading——只需为整个服务设置一次:
{
"mcp_servers": [
{ "type": "url", "url": "https://your-host/mcp", "name": "jcodemunch" }
],
"tools": [
{ "type": "tool_search_tool_bm25_20251119", "name": "tool_search_tool_bm25" },
{
"type": "mcp_toolset",
"mcp_server_name": "jcodemunch",
"default_config": { "defer_loading": true },
"configs": {
"resolve_repo": { "defer_loading": false },
"search_symbols": { "defer_loading": false },
"get_ranked_context": { "defer_loading": false }
}
}
]
}
发送时附上测试版标头 mcp-client-2025-11-20。两部分都必不可少——单独使用 mcp_servers 会导致验证错误;mcp_toolset 未搭配相应的 mcp_server_name 也会导致验证错误。
⚠ MCP 连接器接收的是 URL,因此这适用于通过 sse 或 streamable-http 提供服务的 jCodeMunch(jcodemunch-mcp serve --transport streamable-http),不适用于默认的本地 stdio 配置。在 stdio 上,是否延后加载架构由你的客户端决定;你可以通过下面的 tool_surface: "counter" 来控制。
上面的 configs 块遵循 Anthropic 自己的建议——让使用频率最高的 3–5 个工具常驻,以便常见请求跳过搜索往返;每个工具的 configs 会覆盖 default_config。
延后加载的工具通过搜索其名称和描述来查找,因此核心工具的描述会以每个工具所回答的问题开头,并采用 Agent 常用的措辞:search_symbols“查找函数、类或方法的定义位置”,get_symbol_source“读取或显示源代码”,get_call_hierarchy“谁调用了这个函数或方法”,check_references“函数、类或其他标识符在哪里被使用”。
延后加载的定义会从系统提示词前缀中排除,并在 Claude 发现它们时以内联的 tool_reference 块追加,因此能够保留提示词缓存——这不是会使缓存失效的动态工具列表。请求中至少要有一个工具保持非延后加载状态,否则 API 会返回 400。
⚠ 这与我们自己的 tool_surface: "counter" 是不同的机制,你不需要同时使用两者。工具搜索由宿主端实现,可用于你连接的所有 MCP 服务;Counter 由服务端实现,可用于任何宿主,包括不支持工具搜索的宿主,也是 init 在首次安装时配置的机制。选择宿主支持的方式——Counter 参见 CONFIGURATION.md,查看你的安装实际公布了哪些工具,请运行 jcodemunch-mcp surface。
安全、隐私和后台行为
以本地优先为设计理念:索引存放在 ~/.code-index/ 中,基础软件包唯一默认的联网行为是匿名用量节省统计(随机 ID 加汇总的 token 数量,不含代码、路径或个人身份信息;设置 share_savings: false 即可选择退出)。除响应工具调用外,服务执行的所有操作(文件监视、可选登录服务、许可证验证、模型下载、组织报告)均为可选加入或可选择退出、可见且可撤销,并且每一项都列在 SECURITY.md 中,此外还列出了路径遍历、符号链接和机密信息脱敏控制措施。默认的 init 不会写入策略文件,也不会安装任何模型会读取其输出的钩子;这些操作分别由 init --policy 和 init --guidance 完成,而 init --remove-guidance 可将它们从旧安装中移除。
语法包覆盖(#608)。 依赖项 tree-sitter-language-pack 固定为 <1.0.0,因为 0.x 版本的 wheel 内置了所有语法,解析过程始终在本地进行。F# 是唯一的例外:它由固定版本的 tree-sitter-fsharp wheel 解析,该 wheel 也内置了其语法,因此无论使用哪种语法包,F# 解析都在本地进行(#848)。安装后,你可以通过 pip install -U tree-sitter-language-pack 覆盖它;代码中没有任何内容会阻止这一操作。根据 2026-09-11 对照 1.17.0 的测量结果,你需要接受以下情况:1.x 语法包不附带任何语法,并会在首次解析某种语言时通过网络将其下载到缓存目录(在 Windows 上测得为 %LOCALAPPDATA%\tree-sitter-language-pack\v<version>\libs;jcodemunch-mcp install-status 会在任何平台上打印此路径),因此,断网安装无法解析任何内容;此外,上游修改了 nim 语法,因此 nim 文件不会产生任何符号(清单中也缺少 autohotkey、ejs 和 verse,但这在此处没有影响:这三种语言由 jCodeMunch 自带的提取器解析,而非 tree-sitter)。使用 1.x 语法包安装时会明确提示:每个 index_folder 结果都包含一个 grammar_pack 区块和一条警告,其中列出版本、缓存目录以及每种语法加载失败的语言;jcodemunch-mcp install-status 也会打印相同信息。取消版本固定是另一项决策,须先解决离线使用问题。
按项目配置
大多数设置位于全局配置文件 ~/.code-index/config.jsonc 中,但也可以在单个代码仓库的根目录下放置 .jcodemunch.jsonc,以覆盖其中任意设置。这是一个叠加配置:文件中声明的键优先,未声明的键依次采用全局设置和内置默认值,因此只需包含与默认值不同的设置。
// <your-repo>/.jcodemunch.jsonc
{
"max_file_size": 1048576,
"languages": ["python", "typescript", "racket"]
}
声明 Racket 定义形式
Racket 项目经常使用 define-syntax 定义自己的定义形式,而静态解析器无法知道这些形式会绑定什么——(defstep (check-admin) ...) 与函数调用无法区分。声明这些形式后,其绑定名称便可搜索:
{
"racket_definition_forms": {
"defstep": "function",
"defstudy": "constant",
"defvar": "constant",
"define-schema": "class"
}
}
每个条目都将一种形式名称映射到它所绑定的类型:function、constant、class 或 type。名称所在的位置会从源代码中读取,而非通过声明指定——(defstep (check-admin) ...) 会读取参数列表的首项,(defstudy consent ...) 会读取裸符号——因此,一种形式无论以哪种结构出现,都能正常工作。
⚠ 这是一项断言,jCodeMunch 无法验证其正确性。错误的声明会将一个实际上并未由 Racket 绑定的名称写入索引。此外,声明只会在所有内置形式之后进行匹配,因此声明 define 或 struct 不会产生效果——内置处理逻辑优先。
声明 Racket #lang 的语法
#lang 行用于指定 reader,而 jCodeMunch 的 Racket 解析器会读取 S 表达式。发行版内置了各种语言(racket/*、typed/racket*、s-exp、info、at-exp …,以及文档语言 scribble/*、pollen、punct、markdown …),但它无法识别项目自有的语言,会将其视作文档——没有符号,但仍可进行文本搜索——除非你声明它的语法:
{
"racket_langs": {
"conscript": "at-exp",
"mylang": "sexp"
}
}
sexp 表示普通的 S 表达式;at-exp 表示以 Racket 为基础的 at-exp 文本正文(读取时使用 @ 作为命令字符,与 #lang at-exp 的读取方式完全一致,因此包含 ;、"、# 或 | 的散文仍会被视为散文);text 表示永远不会被遍历的文档语言。键也会涵盖其子语言(conscript 会匹配 conscript/with-require),项目也可以将某种语言降级,而不只是升级。对于使用其他命令字符的 at-exp 语言,可使用对象形式声明 reader,例如 "mylang": {"tier": "at-exp", "command_char": "◊"},其方式与 Racket 的 make-at-readtable 使用 #:command-char 相同。
这两个键都会改变解析器对未更改文件的输出,因此任一键发生变化都会在索引中留下标记,并在下次索引时触发一次完整的重新解析(rebuild_reason: "racket_config_changed");你无需修改文件或清除索引。在此标记机制出现之前构建、且包含 Racket 文件的索引,也会以相同方式重新解析一次(rebuild_reason: "racket_index_predates_gate")。
文档
| 文档 | 内容 |
|---|---|
| QUICKSTART.md | 三步完成从零到建立索引 |
| CLIENTS.md | 每种 MCP 客户端的经过测试的配置 |
| USER_GUIDE.md | 完整的工具参考、工作流和最佳实践 |
| CAPABILITIES.md | 超越精选概览的完整功能参考 |
| CONFIGURATION.md | 配置文件参考、令牌控制选项、工具分级、Counter |
| UNDER_THE_HOOD.md | 技术手册:判定、排序内部机制、来源信息约定 |
| ARCHITECTURE.md | 内部设计、存储模型和扩展点 |
| GROQ.md | Groq Remote MCP、gcm CLI、speedreview GitHub Action |
| HEADLESS.md | 使用 claude -p 配合 jCodeMunch |
| AGENT_HOOKS.md | Agent hooks 和提示词策略 |
| LANGUAGE_SUPPORT.md | 支持的语言和解析详情 |
| SECURITY.md | 安全控制、数据流转和后台行为 |
| TROUBLESHOOTING.md | 常见问题及解决方法 |
| CHANGELOG.md · ROADMAP.md | 发布历史和后续计划 |
许可与商业使用
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
不确定是否值得?通过 投资回报率计算器自行核算,或将财务团队版本转发给负责审批的人。保证不变:如果 jCodeMunch 无法收回成本,你就不用为 jCodeMunch 付费。
所有用途均须遵守以下条件:保留版权声明,明确标注修改内容并保留原作者姓名(他有点自恋),并在源代码再分发时醒目地注明修改情况。本软件不得更名、重新品牌化或发布到任何公共软件包注册表,并按“原样”提供,不附带任何保证。以 LICENSE 为准。
常见问题
使用 Claude / Opus 能节省多少 token? 在检索密集型工作流中,代码阅读所需的 token 通常可减少 86-99%;在 15 项任务和 3 个代码库中,与基于 grep 和阅读的 Agent 相比,基准测试的平均降幅为 96.2%(26.5 倍)。单次查询的结果范围为 7.6 倍至 77.2 倍。方法说明:TOKEN_SAVINGS.md 和 benchmarks/。
这与 RAG 或基于 grep 的工具有何不同? jCodeMunch 以符号级别和字节级精度进行检索(函数、类、导入者、影响范围、层级结构),而非模糊片段(RAG)或原始行匹配(grep);后两者仍需要 Agent 阅读并推理。
个人使用免费吗? 是的。商业使用需要许可证;请参阅上文。
X 上的深入介绍在哪里? 功能:CAPABILITIES.md。配置:CONFIGURATION.md。客户端:CLIENTS.md。内部机制:UNDER_THE_HOOD.md。也可以查看所有内容:jcodemunch.com。
其他内容:开源代码健康度观测站(每周对 Express、FastAPI、Gin、Django 等进行六维快照) · Token 成本雷达(每日 AI token 成本情报) · jMunch Console(免费的 MIT 许可 GUI,支持一键升级)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。