基于 MCP 协议的符号级代码上下文服务器,通过卡片化抽象与图切片为 AI 编码代理提供高信噪比上下文,实现 4–20 倍 token 节省。
项目概述#
SDL-MCP(Symbol Delta Ledger MCP Server)专为 AI 编码代理设计,解决传统代理读取整文件导致的 token 浪费与信噪比低下问题。项目基于 MCP 协议构建,充当代理的代码感知层,不直接生成代码,而是供给结构化上下文。
核心能力#
- Iris Gate Ladder(光圈阶梯):四级渐进式上下文控制,从约 100 token 的符号卡片到完整源码读取,代理需逐步证明"需要更多"才能升级。
- Symbol Cards(符号卡片):将函数、类、接口、类型、变量解析为紧凑元数据(约 100 token),含带置信度评分的调用解析、社区检测与调用链追踪。
- Graph Slicing(图切片):沿依赖图按加权边(call: 1.0, config: 0.8, import: 0.6)遍历评分,在 token 预算内返回最相关的 N 个符号。
- Delta Packs & Blast Radius:超越
git diff的行级对比,提供语义化差异、影响范围排名、PR 风险评分及"放大器"符号趋势分析。 - Live Indexing(实时索引):编辑器缓冲区实时推送至内存叠加存储,后台 AST 解析后与持久化数据库合并,即时反映未保存更改。
- Agent Context(任务形检索):按任务类型(debug/review/implement/explain)+ 描述 + token 预算自动选择合适的 Iris Gate 路径,含反馈循环持续改进切片质量。
- Sandboxed Runtime Execution:支持 16 种运行时(Node.js/Python/Go/Java/Rust/Shell 等),含可执行文件白名单、CWD 限制、环境变量清洗、超时控制与智能输出摘要。
- Development Memories(跨会话记忆,Opt-In):基于图数据库的记忆系统,将决策/修复链接到具体符号和文件;变更符号自动标记过期记忆;双存储(图 DB + markdown 文件)。
- SCIP Integration:集成 Source Code Intelligence Protocol,将启发式依赖边升级为编译器验证的精确边,支持 scip-typescript、scip-go、rust-analyzer 等。
- Tool Gateway:将 30 个 MCP 操作投影为 4 个命名空间工具(
sdl.query、sdl.code、sdl.repo、sdl.agent),降低工具注册开销。 - CLI Tool Access:无需 MCP 服务器即可通过
sdl-mcp tool命令行直接调用 30 个操作别名。
适用场景#
大型多语言代码库的 AI 辅助理解、跨文件依赖调试、PR 语义变更评估与风险打分、CI/CD 管道中的代码上下文提取、团队级跨会话代码决策记忆沉淀。
实现架构#
- 传输协议基于
@modelcontextprotocol/sdk ^1.27.1 - 语法解析使用 Tree-sitter(fork:
@keqingmoe/tree-sitter),含 11 种语言独立语法包 - 图存储集成 Kuzu(
@ladybugdb/core 0.15.2,optional) - 高性能计算通过 napi-rs 引入 Rust 原生扩展(
sdl-mcp-native,optional) - 数据校验使用 Zod ^4.3.6,可观测性集成 OpenTelemetry
- 可选推理层支持
onnxruntime-node与tokenizers
上手方式#
要求 Node.js ≥ 24.0.0 环境:
npm install -g sdl-mcp --legacy-peer-deps
sdl-mcp init -y --auto-index
sdl-mcp serve --stdio
npx 用户可将 sdl-mcp 替换为 npx --yes sdl-mcp@latest。
配置要点#
- MCP 客户端指向
sdl-mcp serve --stdio,默认启用 Code Mode(codeMode.exclusive: true) - CLI 直接调用:
sdl-mcp tool <action> --<params>,支持 JSON/stdin 管道及 4 种输出格式 - 记忆系统需 Opt-In 开启:
"memory": { "enabled": true } - 运行时治理支持自定义白名单、CWD 限制、超时与环境变量清洗
- 通过
sdl.index.refresh可自动摄取 SCIP 交叉引用数据
补充说明#
当前版本 0.10.8,作者 Gary Mullins。采用 SDL-MCP Community License v1.0,免费供个人/内部使用,商业分发需付费许可证。仓库含 VS Code 扩展目录(sdl-mcp-vscode/)及基准测试目录,但市场发布链接与第三方基准验证均待确认。