mcpField
C
codemunch-pro

codemunch-pro

本地服务
github.com/BigJai开发工具334 周前更新

关于 codemunch-pro

CodeMunch Pro 是面向编码 Agent 的代码索引 MCP 服务,可检索本地目录及远程仓库。它结合 AST、混合搜索和调用图,并按字节偏移直接读取符号源码。

主要功能

  1. 01索引本地目录与远程仓库
  2. 02支持 10 种编程语言
  3. 03FTS5 与向量混合搜索
  4. 04按偏移读取符号源码
  5. 05分析函数调用关系

适用场景

  1. 01为编码 Agent 提供代码上下文
  2. 02审查函数签名变更影响
  3. 03语义搜索代码实现位置
  4. 04重构前追踪调用关系

MCP 相关

通过 stdio 或 HTTP 向 MCP 客户端提供 15 种代码索引与检索工具,包括符号搜索、源码读取和调用图查询。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bigjai-codemunch-pro": {
"command": "uvx",
"args": [
"codemunch-pro"
]
}
}
}
启动命令uvx codemunch-pro

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypicodemunch-pro1.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

CodeMunch Pro

智能代码索引 MCP 服务。15 个工具、10 种语言、tree-sitter AST 提取、混合搜索(FTS5 + 向量)、调用图、远程仓库索引、增量索引。

节省 99% 的 token — 通过字节偏移定位获取精确的函数源码,无需读取整个文件。

安装

pip install codemunch-pro

快速开始

Claude Desktop / Cline

在 MCP 客户端配置中添加:

{
  "mcpServers": {
    "codemunch-pro": {
      "command": "codemunch-pro"
    }
  }
}
HTTP 服务
codemunch-pro --transport streamable-http --port 5002

15 个 MCP 工具

工具描述
index_folder索引本地目录(增量式,基于 SHA-256)
index_repo索引 GitHub/GitLab 仓库(下载 tarball,无需 git)
list_repos列出所有已索引的仓库及其统计信息
invalidate_cache强制重新索引仓库
file_tree获取目录树及文件数量
file_outline列出单个文件中的符号
repo_outline列出仓库中的所有符号(摘要)
get_symbol获取一个符号的完整源码(O(1) 字节定位)
get_symbols批量获取多个符号
search_symbols混合搜索(FTS5 + 向量 RRF)
search_text在文件内容中进行全文搜索
get_callees此函数调用了什么?
get_callers谁调用了此函数?
diff_symbols自上次索引后有哪些变化?(PR 审查)
dependency_map此文件依赖什么?又有哪些内容依赖它?

10 种语言

Python、JavaScript、TypeScript、Go、Rust、Java、C、C++、C#、Ruby

全部通过 tree-sitter-language-pack 实现 — 无需编译,提供预构建二进制文件。

主要功能

O(1) 符号获取

每个符号都存储其字节偏移和长度。get_symbol 直接定位到函数源码 — 无需读取整个文件。一个来自 40KB 文件的 200 字节函数 = 节省 99.5% 的 token。

增量索引

文件使用 SHA-256 哈希。仅重新解析发生变化的文件。修改一个文件后,重新索引包含 10K 个文件的仓库只需几毫秒。

混合搜索(FTS5 + 向量)

使用 Reciprocal Rank Fusion,将 BM25 关键词匹配与语义向量相似度结合起来。搜索“authentication middleware”,即可找到 auth_middleware、verify_token 和 login_handler。

调用图

通过 AST 跟踪函数调用。get_callees("main") 会显示 main 调用了什么。get_callers("authenticate") 会显示谁调用了 authenticate。支持深度遍历。

远程仓库索引(v1.1)

通过 URL 索引任意公开的 GitHub 或 GitLab 仓库 — 无需 git 二进制文件。通过 API 下载 tarball,解压并建立索引。缓存在本地,并通过 SHA 检查数据是否仍然新鲜。支持使用身份验证令牌访问私有仓库,并支持稀疏路径。

###全文内容搜索 搜索原始文件内容 — 字符串字面量、TODO 注释、配置值、错误消息。不仅限于符号名称。

工作原理

  1. 解析 — tree-sitter 为每个源文件构建 AST
  2. 提取 — 遍历 AST,查找函数、类、方法、类型、接口
  3. 存储 — 每个仓库使用一个带有 FTS5 虚拟表的 SQLite 数据库
  4. 嵌入 — FastEmbed(ONNX,仅使用 CPU)为语义搜索生成 384 维向量
  5. 构图 — 从函数体中提取调用表达式,存储并解析边
  6. 提供服务 — FastMCP 通过 stdio 或 HTTP 暴露 13 个工具

架构

~/.codemunch-pro/
├── myproject_a1b2c3d4e5f6.db    # Per-repo SQLite database
├── otherproject_7890abcdef.db
└── ...

Each DB contains:
├── files          # Indexed files with SHA-256 hashes
├── symbols        # Functions, classes, methods, types
├── symbols_fts    # FTS5 full-text search index
├── symbols_vec    # sqlite-vec 384-dim vector index
├── call_edges     # Call graph (caller → callee)
└── file_content_fts  # Raw file content search

使用场景

  • AI 编码 Agent:让 Agent 精准访问代码库,而不耗尽上下文
  • 代码审查:更改函数签名前,找出所有调用者
  • 入职:通过语义搜索符号 — 搜索“错误处理在哪里?”,即可找到相关代码
  • 重构:在模块间移动函数前绘制调用图
  • 文档:提取所有包含签名和文档字符串的公开 API

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。