Overview
RobotMoney exposes a Model Context Protocol (MCP) server so agents can read financial state, retrieve memory, and propose actions within tenant-signed policy. RobotMoney runs the underlying ingest, normalization, policy, and execution; the agent works against a single scoped surface.
Agents propose actions. Policies decide what runs. Humans stay in control where the policy says they should.
Endpoint
https://mcp.robotmoney.com (canonical; maps to POST /v1/agents/mcp)
Transport
JSON-RPC 2.0 over single-shot HTTP
Backed by
The same Ledger, Wiki, Authorization, and PaymentIntent surface as the HTTP API
Surface Map
The MCP surface is intentionally small. 21 tools, 1 concrete resource plus 6 resource templates, 5 canned prompts.
21 Tools
Five Ledger reads, two Wiki reads, two Raw tools, three PaymentIntent tools, four Authorization tools, three proposal tools, one evidence resolve, one agent action propose.
7 Resources
One concrete resource (brain://payments/action_types) readable via resources/read, plus six templated brain:// URIs (ledger accounts/transactions/obligations/payment-intents, wiki pages, per-action proofs) returned only from resources/templates/list, not resources/list.
5 Prompts
Canned prompts for the most common agent loops: cash flow, bills, spending, invoices, subscriptions.
Authentication
JWT plus on-chain scope hash verification against BrainMCPAgentRegistry. Per-tenant rate limit on the route so one misbehaving agent cannot crowd out other tenants.
What an External Agent Can Do
Read Ledger
ledger.account.get, ledger.accounts.list, ledger.transactions.list, ledger.obligations.list, ledger.counterparties.list
ledger:read
Read Wiki
wiki.question, wiki.page.get
wiki:read
Contribute to Raw
raw.contribute
raw:write
Propose payment
payment_intent.propose
payment_intent:propose
Request a decision
authorizations.create, authorizations.get
payment_intent:propose
Read proposals
proposals.list, proposals.get, evidence.resolve
execution:read
Review a proposal
proposals.decide, authorizations.approve, authorizations.reject
member authority
Propose agent action
agent.action.propose
execution:propose
What Makes the MCP Surface Different
The MCP tools call the same Ledger, Wiki, Authorization, and PaymentIntent code paths that back the HTTP API. That has three concrete consequences:
Identical Policy gating
A payment_intent.propose over MCP runs through the same Policy evaluator as one created via HTTP
Identical audit emission
Tools that mutate state emit the same inner audit events the HTTP API emits, plus an outer agent.mcp.tool_called event
No bypass path
There is no shortcut. MCP cannot skip Policy or write to the Ledger directly.
Architecture
A First Call
Response:
What's Next
Last updated
