Cloudflare Worker MCP server for AINumbers.co (read-only deterministic tools, signed receipts)
AINumbers MCP Apps Server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
An agent calling a fintech tool by name has no way to know if the tool actually ran the math it claims to have run. This server closes that gap for the AINumbers.co suite: every tool call is deterministic, zero PII, and served straight from the suite's own single-file HTML, not a paraphrase of it.
An MCP Apps (SEP-1865) server that exposes the AINumbers.co fintech tool suite to any MCP host, including Claude, ChatGPT, M365 Copilot, VS Code, and Cursor.
Quick start
No auth, no API key, no account. Production runs on Cloudflare Workers (/healthz reports runtime: cloudflare-workers), so there are no cold starts. Cursor and other Open Plugins directories pick this repo up automatically via the root .mcp.json, which declares the same endpoint.
**Live endpoint:** https://mcp.ainumbers.co/mcp (streamable HTTP) · **Docs:** ainumbers.co/mcp.html · **Registry:** co.ainumbers/tools on the Official MCP Registry
Run your own (org-hosted)
Fork this repo and deploy the button above to run the same server inside your own Cloudflare account: no auth to add, no build step at deploy time, the Worker boots straight from the data/ and kernels/ already committed here.
Two edits to wrangler.jsonc before that first deploy will succeed on a fresh account:
- **routes** points at mcp.ainumbers.co, a zone this fork doesn't own. Rename name and either delete routes (ship on the free workers.dev subdomain) or point it at a zone in your own account.
- **queues / workflows** feed an internal analytics loop and are guarded in code (if (env.EVENTS_QUEUE), if (env.RENEWAL_WATCH_WORKFLOW)) — the MCP handshake and every tool call work without them. Queues need a Workers Paid plan; drop both blocks to stay free-tier.
Everything else, including the ASSETS binding serving the committed tool data, works unmodified. Full write-up (WAF rate-limit recipe, re-vendor cadence, conformance-attestation offer): ainumbers.co/mcp.html#deploy-your-own.
Tools
**Read-only MCP tools** — count intentionally not hardcoded here (it drifted stale the last time it was). See data/counts.json for the live figure; never hand-type this number, scripts/surface-parity.mjs and the site repo's count-drift gate both check against it. The flagship widgets below render as interactive widgets, the rest are ChainGraph compute nodes plus a handful of catalog and discovery utility tools: list_ainumbers_tools, find_tool, find_chain, build_workflow_links, run_chain, verify_execution_hash, build_chaingraph, emit_chaingraph_artifact, build_session_receipt.
Every tool declares readOnlyHint: true. No account, no auth, zero PII, nothing mutates state.
The flagship widgets
Each renders as the actual single-file AINumbers tool, served as a text/html;profile=mcp-app resource and driven by the AIN Bridge (prefill, run, Policy Mandate export). This table IS the enumeration — its row count is the widget count, never a number typed elsewhere:
| MCP tool | AINumbers tool |
|---|---|
| baas_provider_comparator | T152 BaaS Provider Comparator |
| validate_ap2_mcp_policy | T320 AP2 MCP Policy Validator & Bridge |
| build_google_ap2_mandate | T285 Google AP2 Checkout/Payment Mandate Builder |
| score_mcp_readiness | T288 MCP Developer Readiness Scorecard |
| agentic_mandate_sandbox | RBE-06 Agentic Mandate Sandbox |
| customer_risk_rating | T110 Customer Risk Rating Engine |
| ap2_aml_mandate_builder | T131 AP2 AML Mandate Builder |
| lint_mcp_tool_definition | T274 MCP Tool-Definition Linter |