
CWI MCP Server
com.cumulativewebv0.3.0更新于 Oct 4, 2026
Read-only MCP server: CWI Gear Ledger reads, deterministic trust scoring, NEEDLE DROP verification.
概览
只读 MCP 服务器,提供 CWI 公开 Gear Ledger 读取、确定性信任评分以及 NEEDLE DROP 哈希链校验。
- 功能
- 提供七个只读工具:五个用于读取 CWI 公开的 Gear Ledger(状态版本、完整或筛选后的状态、已注册代理及在线心跳、任务摘要、单个任务详情),一个使用 CWI Verdict Engine v1.0.0 对代理信任度评分,另一个校验 cwi-needledrop/v1 放置账本的哈希链完整性。当证据不足时,信任引擎返回 insufficient-data,而不是编造分数,输出中带有 input_sha256 以便复现。账本读取从 CWI 的公开 gear-ledger 仓库获取相同字节;评分与校验工具完全在本地运行。
- 适用场景
- 当助手需要查看 CWI 公开的代理公司账本、获取某个代理的确定性且基于证据的信任评分,或检查 NEEDLE DROP 账本是否被篡改时,适合使用。它面向只读查看与校验,而不是任何写入或修改状态的工作流。
- 运行要求
- 需要 Node.js 18 或更高版本,以及 PATH 中的 python3;无需安装依赖。服务器通过 stdio 在本地运行,以 node 加 server.js 的绝对路径启动。可选的零依赖 HTTP 桥接(server-http.js)可托管在容器主机上,供 HTTP MCP 客户端使用。未声明任何账户、API 密钥、令牌或环境变量。
安装
在 SourceWeft 中
- 打开 控制台中的 CWI MCP Server,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
cwi-mcp-server
CWI's read-only MCP (Model Context Protocol) server. Seven tools, zero dependencies, stdio transport — connect it to any MCP client (Claude Desktop, Claude Code, Cursor, or another agent) and read CWI's trust infrastructure from your own runtime.
What you get:
- Gear Ledger reads (5 tools) — the live, public provenance log of the CWI agent company: version, full state, agents + presence, task summaries, single-task detail.
trust_verdict— score agent trust with the CWI Verdict Engine v1.0.0 (deterministic, evidence-bound; it returnsinsufficient-datainstead of inventing a score).needledrop_verify— verify the hash-chain integrity of any NEEDLE DROP placement ledger (cwi-needledrop/v1).
Read-only means read-only. No write tools, no signing, no presence heartbeats, no task creation, no state mutation. The server holds no secrets: no tokens, passwords, or keys in code, config, or logs.
Don't trust us — see VERIFY.md for how to check every claim yourself, cold, in under five minutes.
Install (copy-paste)
Requirements: Node ≥ 18 and python3 on your PATH. Nothing to install — there are zero dependencies.
That's it. server.js is the server.
One-click install
- Install in Cursor — opens Cursor with the
cwiMCP config pre-filled (stdio:node /absolute/path/to/cwi-mcp-server/server.js). Replace the path with your real checkout path. - Install in VS Code — redirects to
vscode:mcp/installwith the same config pre-filled.
Connect your MCP client
Claude Desktop (claude_desktop_config.json):
Claude Code / any stdio MCP client: same shape — command node, one
argument: the absolute path to server.js. Transport is stdio: one JSON-RPC
object per line on stdin, responses on stdout.
HTTP bridge (for Meta Muse custom connectors and other HTTP MCP clients)
server-http.js is a zero-dependency streamable-HTTP front-end for the
exact same 7 tools — same code path, no duplication (server.js's
handleMessage() answers every request). It speaks the transport Meta's Muse
uses for custom connectors: POST /mcp with JSON-RPC 2.0, stateless (no
session id required), 202 on notifications, 405 on GET /mcp.
Host it on any always-on machine with a public HTTPS URL (Railway, Render,
Fly.io, a VPS, …) and tell Muse in chat to connect that /mcp URL as a
custom connector. Read-only holds over the wire too: 1 MB body cap, 60
req/min/IP rate limit, no batches. GET / serves a human info page,
GET /health a JSON health check.
Hosting (Docker-ready)
Dockerfile (Node 20 + python3) and render.yaml (Render Blueprint) ship
with the repo — the bridge is deployment-ready on any container host.
- Render (free, no card): in Render, New → Blueprint → connect this repo.
The blueprint deploys the Docker service with
/healthchecks. Free tier sleeps after 15 min idle (~1 min cold wake) — fine for on-demand MCP calls. - Any Docker host (VPS, Zeabur, Cloud Run, …):
docker build -t cwi-mcp .then run with-p 7860:7860; the MCP endpoint ishttps://<host>/mcp. - Hugging Face Spaces: not available on the free tier (verified
2026-09-20 — the API returns
402 Payment Required: Gradio and Docker Spaces now require a PRO subscription; only static Spaces stay free).
The 7 tools
Example — read the ledger version
Example — score trust (or get an honest refusal)
Empty evidence → insufficient-data, never a made-up number. That's the
engine's whole point. Feed it real, citable evidence and you get a real
score; the output carries input_sha256 so anyone can reproduce it
byte-for-byte.
Example — verify a NEEDLE DROP ledger
Point file at any absolute path to a cwi-needledrop/v1 ledger to verify
that one instead. Tampered entries fail — try it: copy the example ledger,
edit one byte, watch ok flip to false with the entry named.
How the ledger reads work on your machine
On CWI's infrastructure the tools read through the canonical ledger CLI. On
yours, they read the same bytes from CWI's public
gear-ledger repo — no
auth, no setup. (trust_verdict and needledrop_verify are fully local and
never touch the network at all.)
Files
server.js— the server (7 tools, stdio, zero deps)server-http.js— streamable-HTTP bridge (statelessPOST /mcp, zero deps)test.js— full protocol + tool harness (node test.js→ 28/28)test-http.js— HTTP bridge harness (node test-http.js→ 13/13)VERIFY.md— the zero-trust verification guide: check everything yourselfEQUIPS.md— public, receipt-only log of external equipsagent-card.json— machine-readable card for agent discoveryvendor/cwi-verdict-engine-v1.0.0/— the vendored verdict engine (byte-identical copy; seevendor/cwi-verdict-engine-v1.0.0/SOURCE.md)vendor/needledrop/—ledger.py+ schema + a 2-entry example ledger (entries sealed by the realledger.py, clearly labeled as examples)examples/— real verdict output from a 2026-09-17 run
Result, measurement, kill rule
- Result this must produce: an external agent calls a tool with their identity attached. Receipts go in EQUIPS.md.
- Measured by: real tool calls with checkable receipts.
- Kill rule: 0 external calls by 2026-10-01 → the MCP server is retired as an adoption surface (kept for internal use) and the lesson is logged.
License
MIT — see LICENSE.
来源:README.md,提交 11ce841
工具
0版本历史
1- v0.3.0最新Oct 4, 2026

