Wyrd Scribe

com.wyrdmcp由 wyrdmcp.com 發布v0.2.1更新於 Oct 24, 2026

Creates new pages with provenance and records lineage in a ledger under .wyrd/.

已驗證STDIO僅桌面檔案與儲存知識與記憶

概覽

AI 產生的概覽

讓助理在你明確授權的一個資料夾中建立帶來源標記的 Markdown 頁面,並在帳本中記錄其來源脈絡。

可以做什麼
Wyrd Scribe 是一個僅能建立頁面的 MCP 伺服器,只在你明確授權的一個資料夾內寫入新的 Markdown 頁面。其 write_page 工具接收相對路徑、頁面內容以及 derived_from 項目,跨度可用位元組位移與長度、唯一出現的引文,或兩者同時提供。每次成功呼叫都會先建立頁面,再向 .wyrd/lineage.jsonl 追加一筆 wyrd.lineage/v1 記錄,包含頁面雜湊與被引用的來源。它不能覆寫、重新命名或刪除頁面,也不提供查詢來源脈絡的工具。
適用情境
當助理需要在知識庫中起草新筆記或文件,同時保留每個頁面源自哪些既有資料的可稽核記錄時,適合使用。它適用於以來源追溯為重點、頁面建立後不得修改或刪除的寫作流程。
執行需求
透過 npm 套件 wyrd-scribe 以 stdio 在本機執行(需要 Node.js)。授權資料夾必須已包含 .wyrd/ 目錄,可透過 --grant 或環境變數 WYRD_GRANT 指定。選用的 HTTP 模式需要 --http、透過 WYRD_WRITE_TOKEN 或 --write-token-file 提供的 Scribe 權杖,非回送位址還需 --http-public 以及 TLS 憑證和金鑰檔案。WYRD_SCRIBE_TIER 選擇層級,預設為 A。
安裝前請注意
它會在授權資料夾內寫入檔案並向帳本追加記錄;帳本追加失敗時已建立的頁面會保留,而在同一路徑重試會被拒絕。層級 B 增加受保護的頁面覆寫。HTTP 模式需要 WYRD_WRITE_TOKEN 密鑰,公開位址還需 TLS 材料;在 POSIX 上權杖檔案不得允許群組或其他使用者讀取。其隔離是限定範圍的資料夾邊界,而非作業系統沙箱,綁定的位址可能透過防火牆、VPN、容器或虛擬機器路由被存取。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

wyrd-scribe

wyrd-scribe is a Tier-A MCP server for creating provenance-stamped Markdown pages inside one folder you explicitly grant. Tier A is create-only: it can create a new page and append its lineage record, but it cannot overwrite, rename, or delete a page, and it exposes no lineage-query tool.

Installation and configuration

Install it with npm install -g wyrd-scribe. The executable is wyrd-scribe. Stdio is the default, so an MCP client configuration can launch it directly:

json
{  "command": "wyrd-scribe",  "args": ["--grant", "/absolute/path/to/folder"]}

The granted folder may instead be supplied as WYRD_GRANT. An explicit --grant argument takes precedence over WYRD_GRANT. WYRD_SCRIBE_TIER selects the tier and defaults to A when absent. Tier B adds overwrite_page; tier C is recognised but unavailable.

HTTP and HTTPS

HTTP starts only with --http <port> or --http <host>:<port>. A port alone binds to 127.0.0.1; --http 127.0.0.1:0 asks the system for a free loopback port and prints the actual endpoint to stderr. A concrete non-loopback address also requires --http-public and valid TLS material; startup refuses before listening without both. The route is POST /mcp.

Generate a fresh Scribe token with wyrd-mcp token, independently of the Reader token. Supply exactly one source: WYRD_WRITE_TOKEN or --write-token-file <absolute-path>. The token must be one canonical, unpadded base64url encoding of 32 bytes. Token files may end with one LF or CRLF; on POSIX they must not permit group or world access. The Scribe never reads WYRD_READ_TOKEN.

sh
WYRD_WRITE_TOKEN=<Scribe-token> wyrd-scribe --grant /absolute/path/to/vault --http 127.0.0.1:8788

For network access, generate a certificate with wyrd-mcp cert --host <hostname-or-IP> and configure a concrete interface address. The certificate must be trusted by the client and cover the hostname or IP the client uses. The Reader README documents certificate generation and platform trust steps.

sh
WYRD_WRITE_TOKEN=<Scribe-token> wyrd-scribe --grant /absolute/path/to/vault --http 192.168.1.20:8788 --http-public --tls-cert /absolute/path/to/wyrd-cert.pem --tls-key /absolute/path/to/wyrd-key.pem

Every request needs Authorization: Bearer <Scribe-token>. Origin, when present, must exactly match a startup-disclosed allowed Origin. HTTP request bodies are capped at 1 MiB including the encoded JSON envelope; stdio has no such cap. A write already admitted finishes even when its client disconnects, and graceful shutdown waits for its page and ledger append without a timeout. Every cited source remains inside the same granted folder. Firewall, VPN, container and virtual machine routing can expose a bound address; the Scribe checks the address once at startup.

write_page

Tier A exposes write_page with this exact input shape:

json
{  "path": "Notes/new-page.md",  "content": "Page text\n",  "derived_from": [    {      "source": "Sources/source.md",      "spans": [        { "offset": 0, "length": 9 },        { "quote": "source text" },        { "offset": 0, "length": 9, "quote": "source te" }      ]    }  ]}

path and every derived_from[].source are relative to the granted folder. Each span is exactly one of: byte offset plus positive byte length; a non-empty, uniquely occurring quote; or all three fields, in which case the bytes and quote must agree. Unknown input keys are refused.

The granted folder must already contain a .wyrd/ directory. The Scribe does not create that directory. On the first eligible write it mints .wyrd/scribe.json with this shape:

json
{  "schema": "wyrd.scribe/v1",  "vault_id": "a server-minted UUID v4",  "write_frontmatter": false}

write_frontmatter defaults to false. Set it to true in the vault configuration to opt into a wyrd_lineage key in created pages.

Outcomes and recovery

A successful call creates the page first and then appends one LF-terminated JSON record to .wyrd/lineage.jsonl. If the ledger append fails after page creation, the page is retained. The result is PAGE_WRITTEN_LEDGER_FAILED, includes the created-page information and underlying cause, and may report retained bytes. Inspect the retained page and ledger before repairing or retrying; a retry at the same page path is create-only and will refuse EXISTS.

Each ledger line is a wyrd.lineage/v1 object with event: "page_written", a server-minted event_id, recorded_at, the wyrd-scribe writer and version, the vault UUID, the created page's path and SHA-256 content identity, and a sources array. Every source carries its grant-relative path and content identity; every span records byte offset and length plus stored quote text, byte counts, full-quote SHA-256, and whether the stored text was truncated.

When frontmatter projection is enabled, the created page receives one wyrd_lineage key containing single-line JSON. The projection carries the schema, event, event ID, timestamp, writer, vault, and sources. It deliberately omits the page identity and page content hash; event_id joins it to the complete ledger record.

Security boundary and limits

All granted-folder reads and writes go through wyrd-fence. The containment guarantees, hard-link limits, residual filesystem races, and recovery consequences are defined in the Fence's authoritative Security boundary and limits section. The Scribe additionally refuses directly addressed Arc/ targets. Tier A creates pages exclusively; Tier B can replace a page only with its expected SHA-256. These controls are a scoped filesystem boundary, not an operating-system sandbox.

Privacy and data flow

The server uses stdio by default and opens a network listener only with --http. It reads the vault configuration and cited source bytes inside the granted folder. Tier A writes the new page, the minted config when needed, and the lineage ledger there; Tier B can also replace a page. The connected MCP client receives tool metadata and the structured result or refusal, including lineage and recovery information. Initialization instructions also disclose the granted folder's canonical absolute path. The Scribe does not return uncited source-file contents.

Build and test from source

From the workspace root:

sh
npm installnpm --workspace wyrd-fence run buildnpm --workspace wyrd-mcp run buildnpm --workspace wyrd-scribe test

The package's test lifecycle builds the Reader prerequisite before running the Scribe suite.

Release notes

0.2.1 — 2026-10-19

Updates the exact wyrd-fence dependency to 0.4.0. No Scribe tool behavior changes.

License

Apache-2.0. See LICENSE.

來源:packages/wyrd-scribe/README.md,提交 2ab2c20

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

3
  1. v0.2.1最新Oct 20, 2026
  2. v0.2.0Oct 6, 2026
  3. v0.1.1Sep 23, 2026

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

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

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

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

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