Resources
Brain's MCP server exposes 7 resource templates that let agents address Brain entities by URI. Resources complement tools: where tools are verbs (tools/call), resources are nouns (resources/read).
URI scheme
brain://
MCP method
resources/read
Required scope
Same as the equivalent read tool
The 7 Templates
Ledger account
brain://ledger/accounts/{account_id}
ledger:read
Ledger transaction
brain://ledger/transactions/{transaction_id}
ledger:read
Ledger obligation
brain://ledger/obligations/{obligation_id}
ledger:read
Payment intent
brain://ledger/payment-intents/{payment_intent_id}
ledger:read
Wiki page
brain://wiki/pages/{slug}
wiki:read
PaymentIntent action types
brain://payments/action_types
payment_intent:propose
Action proof (H-07)
brain://proofs/{action_id}
audit:read
Why Resources
Tools are good for queries with arguments. Resources are good for entities with stable identifiers that an agent already knows about: a transaction id from a recent ledger.transactions.list response, a payment intent id from a previous propose, a wiki page slug like /monthly-summaries/2025-09.
Treating them as resources rather than tool calls has three benefits:
Cacheable
An MCP runtime can cache resource reads by URI without understanding the tool's argument shape
Context-friendly
Agents can pass URIs back and forth in their planning context without re-fetching
Discoverable
resources/list enumerates the URI templates Brain advertises
Reading a Resource
Response:
URI Examples
The Wiki URI uses the page slug, not the page id. Slugs are stable across regenerations; ids change when a page is regenerated. For agent context that needs to survive regeneration, use the slug.
Resource Discovery
resources/list
resources/listReturns the 7 static URI templates Brain advertises. It is not a per-entity enumeration: the response is the fixed template set below, not one row per account, page, or artifact.
Only resources/list and resources/read are implemented. There is no resources/templates/list method on the Brain MCP surface.
What Resources Are Not
Lists, queries, search results
Tools handle those (*.list)
Newly proposed entities
The propose tool is the canonical entry point; resources are for fetch-by-id
Streaming feeds
Single-shot HTTP today; streaming may follow when there is a clear use case
Audit
Every successful resources/read emits an agent.mcp.tool_called audit event with method: "resources/read" and the URI in inputs. This means a tenant can see exactly which agent fetched which entity at which time, just like for tool calls.
What's Next
Last updated
