mcpField
S
Span

Span

本地服务
rolfstreefkerk.com记忆与知识01 天前更新

关于 Span

Span 是面向编码 Agent 的本地 MCP 服务,将代码库解读与支持证据一同保存。它跟踪内容是否仍有效,并在证据变化时仅将受影响的理解标为过期,以便限定范围复查。

主要功能

  1. 01将结论与支持证据一同保存
  2. 02跟踪理解的当前或过期状态
  3. 03识别变更文件及受影响范围
  4. 04仅复查受影响区域
  5. 05保留先前结论作为历史记录

适用场景

  1. 01跨会话复用经过核验的代码库理解
  2. 02代码变更后找出需要复查的记录
  3. 03无需重复大范围调查即可重新评估受影响区域

MCP 相关

通过本地 stdio 运行,向 MCP 主机提供 11 个操作。它可连接 Claude Code、Codex 和 OpenCode 等编码 Agent。

配置

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

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

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

安装包
pypispan-mcp0.8.3

工具

还没有获取到工具列表

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

详细介绍

Span

为编码 Agent 提供持久的代码库理解。

Span 是一个本地 MCP 服务,它会将 Agent 对代码库的了解与相关代码关联起来,并在支撑依据发生变化时标记为过时。

MCP 服务 CI Apache-2.0 Python 3.12+ 已在 Linux 上验证 Beta GitHub 星标数

快速开始 · 工作原理 · 文档

问题

编码 Agent 要么依赖可能已与代码库不符的文档和记忆,要么每次会话都重新阅读同一份源代码、测试、契约和配置,并重建相同的理解。

笔记变得有误时,通常不会发生任何明显的问题。文件看起来仍然有效,Agent 也会继续读取它,而下一次会话仍从同样的不确定性开始。

Span 为 Agent 提供了第三种选择:将已有的理解与其支撑依据一起保存,并明确说明这些依据是否仍然有效。

看看效果

这是当前构建版本针对一个双文件测试样例进行的真实交互。客户端是一个脚本化的 MCP 客户端,而非模型;它展示的是通信内容和新鲜度行为,而非模型判断。原始记录见当前 MCP 验收证据。

> explain src/alpha.py
Pending cont-1  CQ-01
  "VALUE = 1"

> submit_interpretation cont-1
PURPOSE  alpha computes the value
  CURRENT

> explain src/alpha.py
PURPOSE  alpha computes the value
  CURRENT

# edit src/alpha.py

> status src/alpha.py
PURPOSE  alpha computes the value
  STALE
  evidence changed
  scope: src/alpha.py

> refresh src/alpha.py
Pending cont-6  CQ-01
  "VALUE = 1 # touched"

> submit_interpretation cont-6
PURPOSE  alpha computes the value
  CURRENT
predecessor  STALE

首次调用会挂起并返回一个有界任务。提交内容明确了用途,随后 explain 会读取该内容,并将其报告为当前有效。文件更改后,status 会将该用途报告为过时,并指出已更改的文件以及需要重新检查的范围。刷新操作会重新检查这一个范围;新的结果变为当前有效,同时保留前一条记录并标记为过时。

过时意味着支撑依据发生了变化,并不意味着 Span 已证明旧结论是错误的。

这次编辑没有使整个代码库失效,也没有让旧结论继续看起来有效。Span 不会删除第一次调查;它会确保这项工作不会在会话结束时被丢弃。

工作原理

测试为代码提供反馈循环,而 Span 为代码库理解提供反馈循环。

  1. 建立。 Agent 调查一个范围明确的区域。Span 会将结论与所用证据及其权威依据一并保存。
  2. 复用。 后续 Agent 可以获取已建立的理解,同时其依据仍然有效。
  3. 精确失效。 当支持证据发生变化时,只有依赖该证据的理解会变为 STALE。
  4. 重新检查。 Agent 调查受影响的范围并提交新结果。未受影响的理解仍保持有效;前一版本会保留为历史记录。
状态含义
CURRENT记录的理解仍得到其所依赖的证据和前提支持。
STALE相关支持依据在建立该理解后发生了变化。将其视为当前理解之前,请重新检查。
UNVERIFIABLE存在结论,但无法获取确认该结论所需的支持依据:记录的来源不在清单中、缺少权威种子、无法获取清单指纹,或有界前提遍历未能完成。它既非当前,也不能确定为已过时。提供方或存储故障不属于此状态——此时操作会失败。

快速开始

Span 目前需要 Linux(已验证的安装路径)、Python 3.12 或更高版本,以及带有 npm 的 Node.js。

pipx install span-mcp        # or: pip install span-mcp
span-install --repo /path/to/your/repo

span-install 会创建 Span 的运行时环境、配置受管理的结构化索引器、部署 Agent Skills,并注册受支持的主机。安装后,请重启或重新加载编码 Agent。

验证安装:

span-install --verify-only

如需从源代码检出版本开始操作——例如参与贡献或固定到某个提交——请克隆代码库并从其根目录运行安装程序:

git clone https://github.com/pontivus-com/span.git
cd span
python3 scripts/install-span.py --repo /path/to/your/repo

安装只会建立运行就绪状态,不会建立对代码库的理解。手动 Codex 命令和 OpenCode 入口请参阅安装与连接。

兼容对象

主机设置
Claude Code检测到 Claude Code CLI 时,由安装程序管理:用户范围的 MCP 注册、位于 ~/.claude/skills 的技能,以及位于 ~/.claude/settings.json 的仅报告生命周期钩子。手动注册方法请参阅安装与连接。
Codex检测到 Codex CLI 时,由安装程序管理。手动注册方法请参阅安装与连接。
OpenCode存在 opencode.json 时由安装程序管理。受支持的手动配置项请参阅安装与连接。
其他 MCP 主机使用 span-mcp --data-dir <DATA_DIR> --repo <TARGET_REPO> 通过 stdio 连接。

Span 在本地通过 stdio 运行。它不会调用大模型、选择模型或存储提供方凭据。其状态存储在分析对象代码库之外的数据目录中。

它的不同之处

文档记录答案。Agent 记忆会记住。搜索会查找证据。 Span 在它们之间维护解释层:结论、证据、权威性、依赖关系和时效性。

方法持久保存解读后的理解跟踪其是否仍有依据显示变化及其范围支持限定范围的语义重新检查
传统文档或生成式文档是本身不具备否否
通用 Agent 记忆是本身不具备否本身不具备
经引用验证的 Agent 记忆是是,逐条事实跟踪否——不予提供未验证内容否
代码搜索 / 结构图目的不同仅跟踪来源或结构仅限结构层面不进行语义重新评估
Span是是,逐项、逐前提和逐发现范围跟踪是,并说明原因是

详细比较以及验证与限定范围的疑问之间的区别,请参阅范围与边界。

它不是什么

  • 不是文档生成器。
  • 不是通用 Agent 记忆,无论是否经过验证。
  • 不是代码搜索或结构图。
  • 不是大模型服务:它绝不会调用模型或存储服务提供商凭据。
  • 不是自主运行的:它不会编辑代码、运行测试,也不会自行更新过时的理解。

完整列表请参阅范围与边界。

状态

Span 目前处于 beta 阶段。Linux 是目前已验证的安装方式;macOS 和 Windows 的安装方式已预留,但尚未验证。公开操作接口包含 11 个 MCP 操作;请参阅 MCP 参考。已记录的验收运行结果见验收证据。

如果 Span 对你有用,点个星标有助于其他开发者发现它。欢迎提供反馈和报告问题。

文档

参与贡献

请参阅贡献指南。更改应保留核心约定:只有在所需的支持证据仍然有效时,既有理解才可复用。安全问题通过 SECURITY.md 处理。支持说明见 SUPPORT.md。

注册表

官方 MCP 注册表条目:io.github.pontivus-com/span

mcp-name: io.github.pontivus-com/span

许可证

Span 根据 Apache License 2.0(Apache-2.0)授权。请参阅 LICENSE。

一句话概括

Span 为编码 Agent 提供不会悄然过时的代码库理解:复用仍然有效的内容,只重新检查发生变化的部分。

评论

支持 Markdown

第一次接触 MCP?

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

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