SurStor Memory

io.github.SurStor由 GitHub 帳號 SurStor 發布v0.2.0-alpha.3-mcp.1更新於 Nov 7, 2026

Local memory for AI models: store, retrieve and verify records on your own hardware.

發布方自己的服務:Memory.fit

概覽

AI 產生的概覽

本機自架的記憶節點,讓 AI 助理在自己的硬體上儲存、檢索並驗證過去的工作紀錄。

可以做什麼
  • 儲存文字記憶與工作產物,附帶工作階段、代理與模型版本等中繼資料
  • 以本機語意索引依含意搜尋紀錄,或依 ID 列出與取回
  • 驗證完整性:內容雜湊、工作階段鏈與簽章,並可比較兩份文字產物的差異
  • 依工作階段或全部本機工作階段彙總 token 與費用,檢視或安裝價格表
  • 將工作階段匯出為可離線驗證的封裝,並重建搜尋索引
適用情境
適合透過支援 MCP 的聊天或代理應用執行本機模型,並希望決策、偏好與交接說明能跨對話保留、又不送到雲端服務的情境。也適合為 AI 工作產物保留可檢查、可防竄改的紀錄。
執行需求
以本機程序執行;已發布方式為 Docker 映像(Linux amd64),在回環位址的 8484 埠提供 MCP。從原始碼建置需要 Java 21+、Maven 3.7+ 以及本機安裝的相容 Covia 快照。未宣告任何 API 金鑰或環境變數;節點首次執行會自行產生身分金鑰對。
安裝前請注意
節點僅綁定回環位址,但對匿名本機呼叫者授予不受限的存取權限,其他本機程序仍可存取;請維持本機綁定並只使用可信任的用戶端。這是 alpha 開發者預覽版,介面可能變動。預設設定為未加密儲存;可選的加密設定需要外部金鑰,並會關閉語意搜尋。費用數字來自某日價格快照的估算,並非供應商帳單,工作階段預算也不是支出上限。提示擷取的過濾可能漏掉敏感資料,且本版本沒有面向使用者的刪除流程。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 SurStor Memory,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

SurStor Memory — memory for models you run yourself

Website: www.surstor.net

v0.2.0-alpha.3-mcp.1 · Developer Preview

Current install version: 0.2.0-alpha.3-mcp.1, matching the Official MCP Registry listing. This is the MCP packaging revision of the alpha.3 application; the bundled JARs still report 0.2.0-alpha.3. It adds registry ownership metadata without changing application behavior. See release notes.

Early software for testing and feedback. Features and interfaces may change; review the limitations below before storing important information.

Licensed under the Apache License 2.0. Third-party dependencies and bundled assets remain subject to their respective licenses.

Keep project decisions, useful answers and work history on your own hardware, then let your local AI retrieve them across conversations. SurStor Node (v0.2.0-alpha.3) provides persistent, inspectable external memory through MCP. Your model stays in your chosen inference application; SurStor stores and retrieves its memories.

Start here: install alongside a local model and connect MCP — includes an LM Studio setup, a save-and-recall example, and Ollama integration requirements. For container packaging, see Run with Docker. Keep using your tools as always.

text
Local model <-> MCP-capable chat or agent application                         |                  SurStor MCP (localhost:8484)                         |              Local records + optional search index
  • Save approved facts, preferences, decisions and handoff notes as text memories.
  • Find relevant past work through local semantic search, or retrieve by record ID.
  • Inspect provenance, verify record integrity and export sessions for reuse.
  • Reuse the same node with another local model through a compatible MCP host.

SurStor is a single-user node built on Covia venues, Convex lattice and CAD3 content addressing, without running Convex consensus. It binds to 127.0.0.1:8484. It does not train your model, automatically capture every conversation, or automatically resolve conflicting memories. The host must call its tools. Retrieving a few relevant records can avoid repeating entire histories; token savings and answer quality need measurement for your workload.

For a fresh encrypted venue, use the encrypted-storage guide and config/surstor-encrypted.toml. This opt-in profile encrypts Etch records and its index, requires an external key, and disables the separate plaintext semantic search index. Existing configurations do not automatically become encrypted.

Optional multi-node memory sync

This checkout includes opt-in bidirectional sync of selected signed memories between trusted nodes, including relaying through a server. Each node retains its own identity and encryption key. See setup, security and limits. Available in alpha.3, with an optional Docker sync overlay. Whole-venue replication and deletion propagation are not enabled.

What it does

Memory has an evidence trail: you can retrieve the original saved content and check its integrity. A valid signature does not establish that a saved claim is true. Save concise, useful context rather than treating all generated text as fact.

Every AI work artifact (draft, tool result, patch, model output) is stored as a two-cell CAD3 record:

  • Cell 1 — the content, content-addressed (SHA3-256 of canonical encoding)
  • Cell 2 — provenance metadata: branch-ref (Cell 1 hash, the Merkle binding), session ID, agent ID, model version, timestamp, token usage, versioned billing breakdown + estimated cost + cited price schedule, prev-event (session hash chain), and the node's Ed25519 signature over the unsigned cell hash

Sessions form append-only hash chains (prev-event links), so a rewritten or dropped event is detectable. Costs are computed at capture time against a versioned price schedule and frozen into the record — historical artifacts are never repriced. Verification replays the original calculation and schedule.

Cost warning: SurStor estimates API costs from a dated snapshot of public provider prices and caller-supplied usage. These are not provider invoices. Unreported charges, taxes, credits, subscriptions and negotiated discounts are excluded. Unpriced records are excluded from totals and counted separately; legacy sessions may have unknown coverage. Verification proves integrity and arithmetic, not billing accuracy. The session budget is not a provider spending cap.

The September 10, 2026 snapshot covers 31 major OpenAI, Anthropic, Kimi, Gemini, DeepSeek and Grok model entries. New billing supports cache writes, cache storage, tool charges, service tiers, context thresholds and time-dependent rates. See Billing and pricing documentation for official sources, rates, caller examples, exclusions, migration and verification behavior.

Run with Docker

A public Linux amd64 image is available at ghcr.io/surstor/surstor-memory:0.2.0-alpha.3-mcp.1. From this checkout:

sh
docker compose -f compose.registry.yaml pulldocker compose -f compose.registry.yaml up -d

Connect MCP at http://127.0.0.1:8484/mcp. This default profile uses unencrypted storage with local semantic search. For encrypted storage and backup guidance, see the Docker guide. The container needs no Java or Maven installation on the host. Docker Desktop and ARM64 remain untested.

Build & run

Requires Java 21+ and Maven 3.7+. Covia 0.9.6-SNAPSHOT is the default installation dependency, configured by covia.version in the root pom.xml. No Maven version override is needed.

Before building SurStor on a fresh machine, build and install a compatible Covia source checkout that produces ai.covia:covia-core:0.9.6-SNAPSHOT and ai.covia:venue:0.9.6-SNAPSHOT into the local Maven repository:

bash
# Run inside the compatible Covia source checkout first.mvn clean install -DskipTests

Then run the commands below from the SurStor repository root. The snapshot version is the default, but does not identify an immutable upstream revision; record the Covia commit used and run SurStor's tests against that build. See integration notes for dependency compatibility.

Prompt-and-response capture now has a local review screen at /capture, built-in secret detection, organisation exclusions and fail-closed filtering. Only the filtered version is recorded. Automated detection can miss sensitive data; review every field before saving. See Prompt capture and privacy for configuration, API usage, compatibility changes and protection limits.

bash
mvn packagejava -jar surstor-node/target/surstor-node.jar start --config config/surstor.toml

The example above uses the unencrypted profile. For encrypted installation, follow the encrypted-storage guide. The node persists to ~/.surstor-node/ with the example profile (etch store + Ed25519 identity keypair, auto-generated on first run).

Other commands:

bash
java -jar surstor-node.jar status                 # config, identity, budgetjava -jar surstor-node.jar verify <bundle.json>   # offline verification of an export bundle

MCP operations

All twelve operations are exposed as MCP tools at http://127.0.0.1:8484/mcp (tools/list), plus the venue's built-in tool set:

ToolPurpose
surstor_storeStore an artifact (content, sessionId, agentId, modelVersion, usage)
surstor_retrieveFetch content + full provenance metadata
surstor_verifyCheck branch-ref, session chain (deep), schedule, signature
surstor_listList artifacts, optionally by session
surstor_diffUnified diff between two text artifacts
surstor_costCost rollup for one session or all local sessions
surstor_sessionsList sessions with chain head, counts, totals
surstor_exportExport a session as a portable, offline-verifiable JSON bundle
surstor_prices_getShow the active price schedule
surstor_prices_putInstall a new price schedule (future costs only)
surstor_searchLocal semantic search: ranked artifact IDs + snippets for a natural-language query
surstor_reindexRebuild the search index from the etch store (wipe + replay)

The node binds loopback only; anonymous local callers get full access (auth.public.caps: unrestricted). Loopback limits network exposure, but other local processes can still access the node. Use only trusted clients and keep the bind local. See MCP setup for client configuration.

Tamper evidence

  • Byte-flip a content cell → branchRef check fails
  • Rewrite a middle event → the session head (recorded at capture time) never cites the forgery; the honest chain still verifies
  • Drop an event → deep verify / offline bundle verification reports the chain gap

See docs/tamper-demo.md for a walkthrough. Offline bundles (surstor_export) verify with no venue: surstor-node verify bundle.json recomputes every hash and signature from the file alone (exit 0 = valid).

Tests

bash
mvn test

Tests cover cell/unit semantics, JSON round-trip hash stability, engine-backed tamper scenarios, budget enforcement, real server-restart persistence, versioned billing and tariff boundaries, offline export verification, embedding determinism/similarity, Lucene index behaviour, and engine-backed semantic search (store→search→reindex).

Local semantic search (v0.2.0-alpha.3)

surstor_search ranks stored artifacts by meaning, not just by ID — e.g. "when is the project due" finds the client-deadline email. Everything runs on-node: a bundled multilingual MiniLM model (ONNX, via DJL + ONNX Runtime) embeds text on CPU, and a Lucene HNSW vector index under the data dir answers queries. The embedding/search path makes no external API calls. Retrieved content is returned to the client: keeping inference local also requires a local model and no cloud fallback or external forwarding by the host.

Only string-content records are indexed. Save concise memories as contentType: "text" with a string content; structured prompt/response objects are not semantically indexed. The encrypted-storage profile disables semantic search; use session listing and retrieval by ID instead.

The two-cell CAD3 record remains the only source of truth. Embeddings and the index are derived, unsigned, disposable data: if search-index/ is deleted, surstor_reindex rebuilds it from the etch store with zero information loss. Indexing failure never fails a store.

Config (defaults shown):

toml
[search]enabled = "true"k_default = "10"

Note: the adapter module jar grows by ~190 MB (ONNX native binaries + bundled model). Accepted for v0.2.

Caveats (v0.2.0-alpha.3)

  • The current price schedule is a dated estimate snapshot, not a live price feed. The original August placeholder file is retained unchanged for historical verification; it is no longer the default. Only an exact match to the old built-in placeholder is automatically upgraded. Custom schedules are preserved.
  • Budget enforcement is per session (session-budget-usd in adapter config, default 5.00)
  • Artifacts stored before signature support was added fail the signature check. Use a separate fresh data directory for a new installation; preserve any existing records you need.
  • Local model identifiers without a matching API tariff remain unpriced, not zero-cost. SurStor does not estimate electricity or hardware costs.
  • Automatic memory supersession, a user-facing deletion workflow, multi-user isolation are not provided by this release. Node-to-node synchronization is an opt-in developer-preview feature; see the guide above.

來源:README.md,提交 3d17a3b

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:該軟體包類型無法在沙箱中執行。

版本歷史

1
  1. v0.2.0-alpha.3-mcp.1最新Oct 30, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Memory 整合