Span

io.github.pontivus-com由 GitHub 账号 pontivus-com 发布v0.10.0更新于 Nov 7, 2026

Codebase understanding with exact evidence, qualified on every read and re-aligned on change.

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

本地 MCP 服务器,让编码助手把代码库解释连同源码证据记录下来,并在代码变化后重新核对。

可以做什么
  • 针对某个代码面向提出工程问题,获得当前答案、缺口或可查看的源码证据
  • 每次记录一条有支撑的结论,绑定到文件、服务或领域面向,返回提交回执并保留版本历史
  • 在新会话中按同一面向和问题取回既有解释,并查看其实时支撑状态、缺口与质疑
  • 变更后重新评估:列出受影响的面向,并确认、更正、替换或撤回解释,旧版本仍可查看
适用场景
适合编码助手反复调查代码库中相同部分、希望这些解释能跨会话保留的场景,也适合在底层文件变化后需要判断既有解释是否仍然成立的场景。
运行要求
以 PyPI 包 span-mcp 通过 stdio 在本地运行。已验证的安装路径为 Linux,需 Python 3.12+、Node.js 和 npm;用 span-install 指向你的仓库安装,会配置索引器、运行时、技能和宿主集成。macOS 与 Windows 安装尚未验证。未声明任何凭据或环境变量。
安装前请注意
记录会在目标仓库之外写入状态,安装程序还会在你的全局 OpenCode 配置中注册插件和 MCP 服务器。解释是助手的解读:CURRENT 只表示所声明的支撑仍通过检查,并不代表结论正确,字节一致也不能解决争议。宿主投递仍属测试阶段,Claude Code 的模型投递与调用方身份尚未验证。记录有 token 与时间成本,单次使用的任务目前比直接阅读更贵。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Span,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[Span]

Carry useful investigations into the next coding session.

Span keeps the explanations your coding agent worked out, the evidence behind them, and what needs another look when that evidence changes.

[MCP server] [CI] [Apache-2.0] [Python 3.12+] [Linux verified] [Beta] [GitHub stars]

Quick start · How it works · Docs

Keep the understanding your agent worked for

A coding agent traces a request across services, checks the tests, finds the contract, and explains why the boundary exists. The next session should be able to find that explanation and see whether its support still holds.

Span makes that investigation reusable. It is a local MCP server where agents record coherent explanations with exact source support, explicit gaps, and version history. Later agents can discover the explanation through an ordinary engineering question, then inspect what is current, disputed, or changed.

The coding agent does the thinking. Span keeps the record and checks its support.

Three tools — ask, record, reconsider — carry one lifecycle: find current understanding, retain a supported conclusion, and re-align after change.

How it works

  1. Investigate a real question. Ask about the surface you are looking at. Span returns current answers with surface status, or a gap with inspectable source evidence.
  2. Record the useful result. Save one conclusion at a time with the file it rests on, or declare a service/domain surface for a cross-file explanation. Work that started outside Span can be recorded directly; the flat create derives support from the locator you already read.
  3. Reuse in a fresh session. Ask the same question about the same surface, and retrieve the result with live support and challenges.
  4. Reassess after change. Check affected dependencies, investigate what changed, then confirm, correct, replace, or withdraw the explanation. Earlier versions remain inspectable.

One explanation can span code, tests, CSS, configuration, and contracts. The agent decides what is worth recording; a file inventory does not become a mandatory documentation campaign.

See the lifecycle

Illustrative tool sequence, not literal request JSON. The installed schemas and MCP reference own the wire grammar.

text
ask: "How does checkout decide whether to charge?"  → Gap: exact evidence, a context, and an explicit question
agent investigates; record admits the source it just read
record(kind="understanding", conclusion, locator|observation_id|support)  → committed receipt, understanding version 1, support qualification
fresh session asks the same question about the same surface  → Answer with current conclusions, evidence, and surface statusask(selector=UnderstandingSnapshotSelector)  → recorded explanation, live support, gaps, and challenges
supporting source changesreconsider(changed_paths)  → every affected surface, with containment, direct, and indirect reasons,    and per-conclusion support state
agent investigates and records a correction against the expected version  → version 2; version 1 remains history

A query names the surface; saved understanding is matched by that surface and the recorded question. Wording is not treated as semantic equivalence, and a returned conclusion is a starting point for judgment.

Know what can be reused

QualificationWhat the agent can conclude
CURRENTThe declared support still passes its checks. Applicability and semantic correctness still need judgment.
REASSESSMENT_REQUIREDSource, authority, premise, or recorded membership support changed. Revisit the affected explanation.
UNVERIFIABLERequired support cannot be established. The limitation stays explicit.

Gaps and challenges remain visible independently of support currency. Matching bytes do not settle a dispute, and test existence does not establish a pass. Independent verification records the observations or evidence actually tested and preserves failures as failures.

Recording is atomic and returns a receipt. The caller preserves identity before sending; retrying the same identity and content recovers the retained receipt after a lost response or process restart. A committed receipt and a present support qualification answer different questions.

Quick start

The verified installation path is Linux with Python 3.12+, Node.js, and npm. From a checkout containing the current candidate:

bash
python3 scripts/install-span.py --repo /path/to/your/repo

For a published package release, install span-mcp with your Python package manager and run span-install --repo /path/to/your/repo. See install and connect for registration, verification, and the offline store transition.

The installer provisions the managed structural indexer, runtime, skills, and host integration. With the default global OpenCode scope, it registers the Span lifecycle plugin and MCP server in the same global OpenCode configuration. Repeat installs use the receipt's absolute MCP path unless --opencode-config explicitly relocates it. Reconnect your coding agent after upgrade so it receives the new tools and instructions. Verify operational setup with:

bash
span-install --verify-only

Setup creates no understanding. Begin with a question from your actual task; see using Span.

Beta host status

HostCurrent scope
CodexSupported; three-tool delivery captured with hooks disabled. The flat-create re-capture is pending (account quota).
OpenCodeSupported; three-tool and flat-create delivery captured. The installer plugin puts the first ask before the first source read in 5/5 measured runs.
Claude CodeSupported managed host; registration/health and installer behavior are covered. Authenticated model-delivery grammar and caller identity remain UNVERIFIED.
Other MCP hostsManual stdio connection is available; model-delivery behavior needs host-specific verification.

Registration, hook configuration, and model-delivered behavior are distinct. Optional hooks provide notices; retrieval and recording still check support when hooks are absent. See host integration.

Fits around your agent

Span runs locally over stdio and keeps state outside target repositories. Your agent uses its own model, tools, edits, and test runner. Span does not invoke a model or store provider credentials. Structural search helps investigation; recorded conclusions retain the agent's interpretation and declared support.

The intended benefit is continuity between sessions and a focused review of changed support. Recording and host delivery have costs. Measured cost is class-specific: repeated reuse of a covered surface breaks even at two uses on the tested tasks, while single-use implementation is currently more expensive than reading. This beta makes no universal time/token-saving claim or completed comparative product-fitness ACCEPT claim. See acceptance.

Status and documentation

This checkout describes 0.10.0: three lifecycle tools (ask, record, reconsider), schema-11 storage, surface-scoped answers, explicit store transition, and live support qualification. 0.10.0 makes the compact record grammar the only recording grammar: create takes exactly one evidence mode, updates are compact semantic deltas, new conclusion lineage identities are derived by Span, and expected_version remains compare-and-set. reconsider returns the expected version and context needed for the next record, and the legacy parallel create/challenge/verification wire path is removed. Host delivery is captured for the valid compact lifecycle on OpenCode; Codex has a current-candidate smoke create capture, and its full compact update journey is not re-observed. Claude registration/health and installer behavior are covered, while its authenticated model-delivery grammar and caller identity remain UNVERIFIED. OpenCode removes an unknown old-form field before delivery, so strict unknown-field rejection is not established through that host. Comparative fitness remains class-scoped (FD-53, FG-7). macOS and Windows installation paths remain unverified. Publication and product acceptance are separate from the implementation version.

Older acceptance evidence retains its historical protocol and does not certify the rebuilt API or comparative value.

Contributing

See contributing. Preserve the central contract: useful understanding stays attached to its support, noncurrent or uncertain state stays explicit, and corrections preserve history. Security reports go through SECURITY.md; support expectations are in SUPPORT.md.

Registry

Official MCP Registry entry: io.github.pontivus-com/span

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

License

Span is licensed under Apache License 2.0 (Apache-2.0). See LICENSE.

来源:README.md,提交 05b739a

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

10
  1. v0.10.0最新Nov 7, 2026
  2. v0.9.4Nov 4, 2026
  3. v0.9.2Nov 4, 2026
  4. v0.9.1Nov 3, 2026
  5. v0.9.0Oct 31, 2026
  6. v0.8.3Oct 29, 2026
  7. v0.8.1Oct 26, 2026
  8. v0.7.1Oct 26, 2026
  9. v0.7.0Oct 25, 2026
  10. v0.6.2Oct 24, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分