Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
作者提供的说明(英文原文)
Read-only MCP server: CWI Gear Ledger reads, deterministic trust scoring, NEEDLE DROP verification.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
作者没有在注册中心列出安装信息。请查看下方作者的 README。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过域名 cumulativeweb.com 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.3.0)于33天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。
同一分类中有:Finance Toolkit, SolidInvoice, Korea Tax Calculator
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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:
insufficient-data instead of inventing a score).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.
Requirements: Node ≥ 18 and python3 on your PATH. Nothing to install — there are zero dependencies.
git clone https://github.com/CumulativeWebInc/cwi-mcp-server.git
cd cwi-mcp-server node test.js # expect: 28/28 tests passed node test-http.js # expect: 13/13 HTTP tests passed
That's it. server.js is the server.
New here? Start with the 10-step equip guide (every step tested): https://cumulativewebinc.github.io/cwi-learn/EQUIP-GUIDE.md
cwi MCP config pre-filled (stdio: node /absolute/path/to/cwi-mcp-server/server.js). Replace the path with your real checkout path.vscode:mcp/install with the same config pre-filled.Claude Desktop (claude_desktop_config.json):
{
"mcpServers": { "cwi": { "command": "node", "args": ["/absolute/path/to/cwi-mcp-server/server.js"] } } }
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.
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.
node test-http.js # expect: 13/13 HTTP tests passed
PORT=3000 BIND=0.0.0.0 node server-http.js
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.
Dockerfile (Node 20 + python3) and render.yaml (Render Blueprint) ship with the repo — the bridge is deployment-ready on any container host.
/health checks. Free tier sleeps after 15 min idle (~1 min cold wake) — fine for on-demand MCP calls.docker build -t cwi-mcp . then run with -p 7860:7860; the MCP endpoint is https:// /mcp.402 Payment Required: Gradio and Docker Spaces now require a PRO subscription; only static Spaces stay free).| # | Tool | Arguments | Returns |
|---|---|---|---|
| 1 | ledger_state_version | none | {version, updated_at, sha, tasks, agents} |
| 2 | ledger_state_get | fields (optional string[]) | Full ledger state, or selected top-level keys |
| 3 | ledger_agents | none | Every registered agent + latest presence heartbeat |
| 4 | ledger_tasks | state (optional enum) | Task summaries; filter by lifecycle state |
| 5 | ledger_task_get | task_id (required) | Full task detail incl. state history and artifacts |
| 6 | trust_verdict | input (required object) | Trust score or honest insufficient-data |
| 7 | needledrop_verify | file (optional path) | {file, ok, messages} chain-integrity verdict |
// tools/call {"name": "ledger_state_version", "arguments": {}}
{ "version": 1541, "updated_at": "2026-09-17T11:23:35Z", "sha": "3b2b46c8b8e14e0a3351e8896c6bd75e53391cde", "tasks": 38, "agents": 11 }
// tools/call {"name": "trust_verdict", "arguments": {"input": {
"engine_version": "1.0.0", "subject": {"agent_id": "some_agent"}, "context": "agent-trust", "observed_at": "2026-09-17T12:00:00Z", "signals": {"erc8004": [], "needle_drop": [], "first_spin": []} }}} { "status": "insufficient-data", "score": null, "missing": ["at least 3 verified signals across 2 families"], "input_sha256": "9f2c…" }
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.
// tools/call {"name": "needledrop_verify", "arguments": {}}
{ "file": "vendor/needledrop/example-ledger.json", "ok": true, "messages": ["chain intact"] }
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.
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.)
server.js — the server (7 tools, stdio, zero deps)server-http.js — streamable-HTTP bridge (stateless POST /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; see vendor/cwi-verdict-engine-v1.0.0/SOURCE.md)vendor/needledrop/ — ledger.py + schema + a 2-entry example ledger (entries sealed by the real ledger.py, clearly labeled as examples)examples/ — real verdict output from a 2026-09-17 runMIT — see LICENSE.