Symbol Delta Ledger

用符号图和按需源码窗口压缩编码代理的代码上下文。

Star 数
★ 497
最近更新
23 天前
License
NOASSERTION
主语言
TypeScript

30 秒速览

运行形态
命令行工具MCP 服务器自托管服务
可在哪里用
通用 · 跨平台
费用
免费,无需付费服务
上手难度
中 · 需要几步配置
开始前需要
Node.js 24 或更高版本Shell / 命令行网络访问本地文件系统MCP Server
典型场景
维护大型代码库的开发者希望先定位相关符号和依赖关系,再决定是否读取完整源码。
不适合
  • 仍在使用 Node.js 22 或更早版本、无法升级运行时的团队
  • 希望开箱即用、不愿先初始化并索引仓库的用户
  • 需要标准开源许可证或计划将产品商业化转售的团队

这个 Agent 能做什么,适合哪些场景?

Symbol Delta Ledger(SDL-MCP)是一个在本地运行的代码上下文预算层,通过 Model Context Protocol 向编码代理提供仓库信息。它使用 tree-sitter 建立符号、关系和精简元数据索引,并可通过 provider-first 索引接收 SCIP 与语言提供程序事实。代理可以先检索符号卡片、任务化上下文或图切片,再按策略逐级获取骨架、热点路径和有界源码窗口。系统还提供版本差异包、影响范围追踪、拉取请求风险分析、实时草稿覆盖层以及可选的开发记忆。它以 Node.js 24 或更高版本运行,支持 stdio 与 HTTP;HTTP 部署还包含图查看器和可观测性仪表板。

SDL-MCP 读取本地代码仓库,以 tree-sitter 解析结构,并将符号、签名、摘要、关系及检索元数据写入符号图;覆盖文件时还可接收 SCIP、LSP 或其他语言提供程序提供的事实。代理通过符号搜索、sdl.context、sdl.retrieve、图切片或相应的 flat/gateway 工具获取预算受控的上下文,并在需要时请求由策略控制的源码窗口。保存前的草稿缓冲区可进入 live overlay;保存后,系统排队执行定向协调,只发布最新的已保存代次。它能够比较已索引版本、生成 delta packs、追踪 blast radius,并由 sdl.pr.risk.analyze汇总变更证据和测试建议。服务可以通过 stdio 或 HTTP 暴露 MCP;工具界面可选择 38 工具的 Flat 模式、6 工具的 Gateway 模式、42 工具的 Gateway with legacy 模式,或包含 7 个任务型工具的 Code Mode exclusive。

  1. 维护大型代码库的开发者希望先定位相关符号和依赖关系,再决定是否读取完整源码。
  2. 进行缺陷排查的编码代理需要围绕起始符号构建有预算限制的子图,并按需扩展遗漏关系。
  3. 审查拉取请求的团队希望比较索引版本、追踪受影响符号,并获得基于变更证据的测试建议。
  4. 使用支持 MCP 的本地开发工作流,希望通过 stdio 接入仓库上下文而不部署远程服务。
  5. 运行 HTTP 部署的团队需要在提供代码检索服务的同时使用图查看器和可观测性仪表板。
  6. 需要在文件保存前处理编辑器草稿的工作流,可利用 live overlay 检索尚未落盘的缓冲区更新。

如何安装或部署这个 Agent?

前置条件:安装 Node.js 24 或更高版本,并在要索引的仓库中运行命令。交互式首次安装:

npx create-sdl-mcp

标准全局安装与 stdio 启动:

npm install -g sdl-mcp
cd <repository>
sdl-mcp init
sdl-mcp doctor
sdl-mcp serve --stdio

非交互初始化并自动建立索引可使用:

sdl-mcp init -y --auto-index

来源未说明需要 API 密钥或其他凭据。

如何使用这个 Agent?

进入目标仓库后,先运行 sdl-mcp init 创建配置,再用 sdl-mcp doctor 检查环境,最后以 sdl-mcp serve --stdio 启动 MCP 服务并让支持 MCP 的客户端连接。检索时应先使用符号搜索、任务化上下文或图切片,再根据任务需要升级到 cards、skeletons、hot paths 和策略控制的源码窗口。需要更紧凑的工具注册界面时可选 Gateway 模式;偏好直接工具名时可用 Flat 模式;Code Mode exclusive 提供 sdl.action.search、sdl.context、sdl.file、sdl.info、sdl.manual、sdl.retrieve 和 sdl.workflow。来源确认支持 HTTP 传输,但未给出可复制的 HTTP 启动命令或具体客户端配置。

这个 Agent 有哪些优点和局限?

优点
  • 以符号卡片和逐级检索代替默认读取完整文件,可明确控制交给编码代理的源码范围。
  • 图切片沿仓库关系而非目录边界构建任务相关子图,并支持通过 spillover 刷新或扩展。
  • 可结合 tree-sitter、SCIP、LSP 和语言提供程序事实,在覆盖存在时使用更精确的交叉引用,并对未覆盖文件回退到常规路径。
  • 同时提供 stdio 与 HTTP,并可在 Flat、Gateway 和 Code Mode 等不同工具表面之间选择。
  • 版本差异、影响范围追踪和 sdl.pr.risk.analyze 将变更证据与测试建议纳入代码审查流程。
局限
  • 要求 Node.js 24 或更高版本,采用较旧 Node.js 运行时的环境必须升级或隔离部署。
  • 使用前必须初始化并索引每个仓库;SCIP、LSP 或解析器准备也会带来额外配置和后台处理成本。
  • 原始源码窗口受策略控制,配置过严可能限制检索,而配置、执行目录、环境变量、并发和超时规则都需要维护。
  • 开发记忆默认不是强制功能,启用后还需理解其存储规则和仓库链接行为。
  • 仓库标记为 source-available;内部使用、运行和修改由 Community License 允许,但将其出售、捆绑、嵌入或分发到商业化产品前需要商业许可。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Symbol Delta Ledger 当前 66 · 存在缺口 命令行工具免费 ★ 497 23 天前 TypeScript —
Graphify – 将任何代码库转换为可查询的知识图谱 64 · 存在缺口 命令行工具免费 ★ 143k 今天 Python Codex · Claude Code
Graft 代码上下文层 73 · 存在缺口 命令行工具免费 + 模型费 ★ 11k 2 天前 TypeScript Codex · Claude Code · OpenAI API · Claude API
Empryo 50 · 缺口较多 命令行工具免费 + 模型费 ★ 1.6k 21 天前 TypeScript OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
66/ 100 五分制 3.3 / 5
信任安全 16/29
可靠稳定 8/14
适用触发 14/18
规范维护 15/18
有效结果 7/13
证据核验 6/8
查看各维度的扣分理由
信任安全16 / 29 · 2.8/5

证据显示产品默认在本地运行,原始源码窗口受策略约束,运行执行面可限制可执行文件、工作目录、环境、并发和超时;更新工作流也使用了明确的 contents:read 与 issues:write 权限。记忆功能声明为可选,HTTP、stdio、索引和工作流写入等外部效果有基本说明。扣分原因是未提供相关策略、记忆协议、运行时实现或确认流程正文,无法确认所有有副作用操作均需用户批准;回滚仅有版本、增量和备份字样,没有清晰的恢复步骤。依赖方面有固定版本、overrides、npm audit、补丁跟踪和安全事故记录,但安装包含多个 postinstall/native 包,且更新检查中的 npm audit 允许失败后继续。敏感数据规则证据薄弱,测试夹具还会把 paymentToken 拼入审计字符串。来源可追溯到仓库、具名许可人和联系邮箱,但 package author 为空,发布者身份仍未知。

可靠稳定8 / 14 · 2.9/5

项目提供大量单元、集成、属性、原生、压力、变异和契约测试入口,也记录了具体故障消息、根因、修复与复现命令;可选依赖和回退路径表明对部分环境缺失有所考虑。扣分主要来自证据内部不一致:package 和 README 要求 Node 24,而工作流说明仍称 CI 使用 Node 20;多项修复明确标为尚待托管验证,并记录过原生崩溃、竞态、重复主键和固定临时路径问题。未给出核心实现和实际执行结果,因此不能确认普通运行下的一致性。故障诊断材料较好,但不能证明所有用户可见失败都具有同等质量。

适用触发14 / 18 · 3.9/5

README 清楚覆盖调试、评审、实现、仓库探索、PR 风险、实时索引和多种客户端场景,并区分 flat、gateway、legacy 与 Code Mode,受众和使用情境充分。能力边界通过策略门控源码窗口、可选记忆、provider-first 回退和不同传输方式得到一定说明。扣分是工具请求响应、触发条件、语言覆盖和配置细节主要只由未提供正文的链接指向,无法完整检查触发精度。环境适配包含 stdio、HTTP、Windows/Linux 线索和可选原生组件,但 Node 版本冲突以及已记录的 Windows/native 脆弱性降低了环境适配可信度。

规范维护15 / 18 · 4.2/5

README 的导航、任务导向文档表和生成工具清单形成了很强的信息架构;全局安装、初始化、doctor、stdio 启动和非交互安装均有直接示例。产品名、CLI 名、工具命名空间和 package 名稳定一致。许可文件完整说明内部商业使用、非商业分发、商业许可、贡献、专利、终止、担保和责任条款,因此许可获满分,尽管元数据标为 SEE LICENSE 且外部元数据为 NOASSERTION。扣分在于 FAQ、完整故障排除和配置示例正文未包含;已知限制主要散落在内部 CI 记录中;有包版本和大量日期化维护记录,但没有正式变更日志。维护入口有 issues、具名许可人和邮箱,但 package author 为空,且发布者未获企业注册验证。

有效结果7 / 13 · 2.7/5

卡片、符号搜索、图切片、任务上下文和有界源码窗口构成可直接供编码代理消费的输出设计;相较整文件读取,符号图和渐进式披露具有明确的潜在增量价值。扣分是所给文件没有展示实际 MCP 响应样例、质量评测结果或基准数据,只能看到测试和 benchmark 脚本名称。节省 token、加速工作流和改善输出属于合理但未量化的主张;Node 24、索引数据库、原生依赖和后台准备成本也没有与收益进行实证比较。

证据核验6 / 8 · 3.8/5

主张可部分追踪到生成工具清单、参考文档链接、测试脚本、基准脚本以及包含运行号、作业号、提交、错误文本和验证命令的维护记录。README、package 和故障记录对本地 MCP、索引、依赖与测试面形成一定交叉印证。扣分是多数链接目标和核心源码未提供,徽章和脚本名称本身不能证明测试通过或性能主张成立;Node 20/24 的冲突也削弱交叉一致性。事实与推断的分离表现突出:记录明确使用 confirmed、hypothesis、high confidence 和 hosted validation pending,并保留失败证据及尚未验证的状态。

风险与缓解建议
  • 这是仅基于所给文件的静态审查;未执行安装、测试、审计、基准或 MCP 调用。
  • 在部署前核对 Node 版本:README/package 要求 Node 24,但工作流说明仍记载 Node 20,可能是过期文档或实际 CI 偏差。
  • 检查 postinstall 脚本、原生和可选依赖的下载、构建及网络行为,并在隔离环境中验证供应链来源。
  • 不要把仓库中的 npm audit、CI 徽章或测试脚本名称视为当前修订已通过验证;多项记录仍明确等待托管验证。
  • 在处理真实仓库前确认索引、HTTP、遥测、记忆、缓存和日志的存储位置、保留期及敏感信息过滤规则。
  • 测试夹具将 paymentToken 写入审计字符串;即使只是夹具,也应确认生产输出不会记录令牌或其他秘密。
  • 许可不是标准开源许可;商业分发、嵌入或向第三方提供付费服务前需要单独商业许可。
证据充分度:低 评估于 2026年9月17日 审查版本 d1b9b7630276 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.13.7 SDL-MCP v0.13.7
    发布说明摘录
    [0.13.7] - 2026-09-06 Changed - Repository-isolated vectors and required rebuild: Symbol vectors now use repository-specific tables and indexes, with exact-query fallback and bounded concurrent access. This keeps retrieval scoped to the requested repository. Schema version 27 requires stopping SDL-MCP and using the documented safe-rebuild workflow when replacing a populated historical shared Symbol-vector table; startup does not migrate it automatically. …
    在 GitHub 查看 ↗
  2. v0.13.6 SDL-MCP v0.13.6
    发布说明摘录
    [0.13.6] - 2026-08-30 Changed - CPU embedding auto-tuning: Omitted local CPU settings now use physical-core and startup free-memory bounds for embedding concurrency, symbol batch 8, and the physical-core width for automatic ONNX intra-op threads. Auto-detected and pinned performance tiers share these presets, while explicit settings remain authoritative; remove explicit embeddingConcurrency, embeddingBatchSize, or positive onnx.intraOpNumThreads fields to adopt the automatic values. …
    在 GitHub 查看 ↗
  3. v0.13.5
    发布说明摘录
    Added - Direct stored-response continuation: Added sdl.retrieve responseGet so agents can page stored responses through the compact Code Mode surface instead of switching to a separate workflow wrapper. Changed - Continuation registration and recovery: Registered direct response retrieval as non-graph retrieval, kept canonical continuation arguments executable across inline, auto, and handle modes, and synchronized production tool registration. …
    在 GitHub 查看 ↗

常见问题

它会把整个代码文件都放进代理上下文吗?
不会默认这样做。其检索流程从符号搜索、卡片或图切片开始,只有任务需要更多细节时才升级到由策略控制的有界源码窗口。
必须使用云服务或特定模型提供商吗?
来源说明 SDL-MCP 在本地运行,并通过通用的 MCP stdio 或 HTTP 传输提供服务;没有指定必须使用某个模型提供商。
SCIP 或语言服务器是硬性依赖吗?
不是已声明的硬性要求。基础仓库结构由 tree-sitter 处理;provider-first 索引可在提供程序覆盖文件时加入 SCIP 或语言提供程序事实,对其他文件回退到常规路径。
商业产品可以直接捆绑 SDL-MCP 吗?
不可以仅凭 Community License 这样做。来源说明,出售、许可、再许可、捆绑、嵌入或把 SDL-MCP 作为商业化产品的一部分分发前,需要商业许可。
索引更新期间还能检索代码吗?
可以。保存后的定向协调在后台准备时,检索继续使用已提交的图,并在存在 live overlay 时同时使用覆盖层;系统只发布最新的已保存代次。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents