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 分