CodeSchema:Go 单二进制索引服务,12 个 MCP 工具里 impact / tests 默认是断的
CodeSchema 是给 AI 编码助手「喂」代码上下文的索引服务,发布日期 2026-09-03。它扫描仓库、抽取结构、存进三层存储,再通过 MCP / HTTP 按需返回裁剪好的代码片段,避免把整个仓库塞进 Cursor / Claude Code / Cline 的上下文窗口。
- 主仓(建议从这里 clone):https://gitee.com/idcu/code-schema.git
- GitHub 为镜像仓,CI 跑在 GitHub Actions 上
- Go 1.25,单二进制、免 CGO,可 Docker,Apache-2.0
数据流大致是:文件(JSON) → 三层存储(符号/标签)→ MCP Server(SSE / stdio)→ VS Code / Cursor / Claude Code / JetBrains;另有一套 REST 接口(OpenAPI)。
构建与启动
# 主仓库在 Gitee;idcu-go 也需 clone 到同级目录,详见 README「开发前必读」
git clone https://gitee.com/idcu/code-schema.git && cd code-schema
make build
# 或:go build -o codeschema ./cmd/codeschema
./codeschema scan ./your-repo # 扫描仓库并入库
./codeschema mcp --addr :8080 # 启动 MCP Server(SSE,端点 /sse)
接入客户端
- 启动 MCP:
./codeschema mcp --addr :8080 - 打印配置:
./codeschema mcp --print-config,直接输出 VS Code / JetBrains / Claude Code / Cursor / npx 五类接入片段 - 在客户端粘贴,即可调用 12 个 MCP 工具:
search_symbols/context/impact/tests/affected/get_call_graph/search_config/find_dependencies/get_tags/search_by_tag/get_all_tags/list_projects
目前能力
- 22 个 HTTP 路由:
/context/impact/tests/search/tags*/projects/metrics/openapi.json/docs/viz(向量索引可视化仪表盘)等 - 双路检索:符号图精确检索 + 向量语义检索(FTS + 向量融合重排);低置信度结果默认过滤
- 增量监听:fsnotify 原生监听 + 轮询,300ms 防抖合并,改完即更新
- 多租户:一个进程服务多个隔离仓库,按 project /
X-Tenant路由 - 可观测与安全:结构化日志、Prometheus 指标、Bearer 认证、限流、优雅关闭
- 单二进制 / Docker / 多平台交叉编译
已知限制(作者自述)
影响面 / 关联测试 / 调用图默认返回空。 根因是默认正则解析器只填了「被调用方」,没有回填「调用方」(CallerFQN),调用图抽取不完善,导致
impact/tests/get_call_graph在默认路径下基本是断的。LSP / SCIP 适配器已就绪,可作为补强路径。语义检索精度有门槛。 默认构建免 CGO,语义检索走本地 TF-IDF 降级,R@1≈0.42;要拿到向量级精度(bge-small-zh-v1.5,R@1=1.00),需要
go build -tags onnx+ onnxruntime 动态库 + 模型文件。另外提供了内置 ONNX 的codeschema:onnx镜像。多语言解析以启发式为主。 默认 30 种语言走正则轻量解析,调用关系抽取对 Go / Python 较准,其余语言偏弱;要更准的调用图,建议开 LSP 适配器(gopls / jdtls / clangd)。
项目仍在快速演进。 P0–P18 里程碑已交付,单测关联策略、AI 标签增强、更多语言的真语法树还在打磨。