Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Description from the maker (original English)
Read-only MCP server: CWI Gear Ledger reads, deterministic trust scoring, NEEDLE DROP verification.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
The maker has not listed install details in the registry. See the maker’s README below.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified against the domain cumulativeweb.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.3.0) reached the registry 33 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code.
In the same category: Finance Toolkit, SolidInvoice, Korea Tax Calculator
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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.