CodeMunch Pro
智能代码索引MCP服务器。15个工具、10种语言、树型AST提取、混合搜索(FTS5+向量)、调用图、远程仓库索引、增量索引。
保存99%的代币 --通过字节偏移量查找而不是读取整个文件来获取精确的函数源。
安装
pip install codemunch-pro快速开始
克劳德桌面/克莱恩
添加到MCP客户端配置中:
{
"mcpServers": {
"codemunch-pro": {
"command": "codemunch-pro"
}
}
}HTTP服务器
codemunch-pro --transport streamable-http --port 500215个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 | 自上次指数以来发生了什么变化?(公关审查) |
dependency_map | 这个文件依赖于什么?这取决于什么? |
10种语言
Python、JavaScript、TypeScript、Go、Rust、Java、C、C++、C#、Ruby
全部通过 树保姆语言包 --零编译,预构建二进制文件。
主要特点
O(1)符号检索
每个符号都存储其字节偏移量和长度。 get_symbol 直接查找函数源——不读取整个文件。40KB文件中的200字节函数= 99.5%的代币节省.
增量索引
文件被散列(SHA-256)。只有更改的文件才会被重新解析。更改一个文件后重新索引10K文件仓库需要几毫秒的时间。
混合搜索(FTS5+矢量)
使用互易秩融合将BM25关键字匹配与语义向量相似性相结合。搜索“身份验证中间件”并查找 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注释、配置值、错误消息。不仅仅是符号名称。
运作原理
- 解析 --tree sitter为每个源文件构建一个AST
- 提取 --遍历AST以查找函数、类、方法、类型、接口
- 商店 --每个仓库的SQLite数据库,带有FTS5虚拟表
- 嵌入 --FastEmbed(ONNX,仅CPU)生成384个用于语义搜索的dim向量
- 图 --从函数体中提取调用表达式,存储并解析边
- 服务 --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编码代理:让你的特工在不烧毁上下文的情况下,对代码库进行外科手术式访问
- 代码审查:在更改函数签名之前查找函数的所有调用者
- 入职:语义搜索符号——“错误处理在哪里?”找到相关代码
- 重构:在模块之间移动函数之前映射调用图
- 文档:提取所有带有签名和文档字符串的公共API
许可证
麻省理工学院
