What this is
Model Context Protocol (MCP) is a standard way for a compatible client to discover tools and read resources from a remote server. This page is the usage guide for r.Team’s public demonstration server.
The live endpoint is https://r.team/mcp. The transport is Streamable HTTP: a real initialize / tools/list / tools/call (and resources/list / resources/read) handshake, not a REST wrapper labeled MCP.
No API key and no password. The catalog is a static, reviewed set of public-safe synthetic fixtures and published ontology metadata. It is not a connection to the live Trust Assets Console, and it does not contain personal, private, or protected information. Do not submit personal data.
The password-gated Interpretation Bench remains a separate surface. A demonstration password does not unlock this endpoint, and this endpoint does not unlock the bench.
What it allows — and what it does not
Use this endpoint to inspect the published demonstration label, ontology concepts, and Judgment Ledger structure — the same public-safe material this site already shows.
- It is not a place to upload a trust account or a governing instrument.
- It is not live client data, public client records, or the password-gated console.
- It is not legal advice, a decision, or a write path. There are no mutation tools.
- It does not return full instrument text or gated Interpretation Bench contents.
Demonstration content is not legal advice. The Reasoning Engine prepares and cites; a named officer decides.
Quick start
Client support varies. This is not a promise that every product can add a custom remote MCP server. If yours can, the steps are:
- Choose a remote server URL. Enter
https://r.team/mcp. - Choose Streamable HTTP (sometimes labeled “HTTP” or “streamable”). Do not choose stdio or the older HTTP+SSE transport.
- If the client asks for an API key, token, or password, leave it empty. None is used here.
- Let the client initialize, then list tools. You should see six read-only tools.
- Start with
get_demo_overview. Read the coverage and exclusions before anything else.
Origin-less clients (most desktop and CLI MCP apps, and the curl examples below) can call the endpoint directly. A web page running on another site will be refused by the Origin check — use a native or origin-less client instead of trying to change the browser Origin.
The six tools
Every tool is read-only, non-destructive, and idempotent. Extra fields are rejected. Arguments are empty or an enumerated id.
get_demo_overview— coverage, exclusions, transport, and access notes.Arguments: none (
{}). Default: empty object.list_demo_assets— the five allowlisted demo assets.Arguments: optional
limit, integer 1–32. Default: 32.get_demo_asset— one asset by id.Arguments: required
id. One ofoverview,tac-0001,sample-irrevocable-trust,ontology,record-structure.list_ontology_concepts— published ontology terms as roles and concepts.Arguments: optional
limit, integer 1–32. Default: 32.get_ontology_concept— one concept by id.Arguments: required
id. One of the eleven concept ids below.get_record_structure— Judgment Ledger columns and review tiers. No rows.Arguments: none (
{}). Default: empty object.
The same fixtures are also resources on static demo:// URIs (sixteen in total). Unknown, path-like, or gated identifiers are rejected with a generic error.
Fixture catalog
Five demo asset ids
overview—demo://overviewtac-0001—demo://assets/tac-0001(published label only)sample-irrevocable-trust—demo://assets/sample-irrevocable-trustontology—demo://ontologyrecord-structure—demo://record-structure
Eleven ontology concept ids
instrument—demo://ontology/instrumentontology—demo://ontology/ontologyknowledge-graph—demo://ontology/knowledge-graphtrustee—demo://ontology/trusteebeneficiary—demo://ontology/beneficiaryfiduciary-duty—demo://ontology/fiduciary-dutyconflict-of-interest—demo://ontology/conflict-of-interestdistribution—demo://ontology/distributionprudent-investor—demo://ontology/prudent-investorconcentration-limit—demo://ontology/concentration-limitrecord-keeping—demo://ontology/record-keeping
Example prompts
These select sanitized demo assets and ask the client to interpret schema — not to decide a real matter.
- “Call
get_demo_overview. Summarize what this demonstration covers and what it excludes. Do not invent access you were not given.” - “Get demo asset
tac-0001. List the published question topics. Do not invent clauses, parties, or answers.” - “Call
get_record_structure. Explain the Judgment Ledger columns and review tiers. No rows are published.” - “Get ontology concept
trustee. Explain the role as published. This is a role, not a person or a firm.” - “Read resource
demo://assets/sample-irrevocable-trust. Treat it as a public sample abstract, not a client file.”
Copyable protocol examples
These commands talk to the live endpoint. They use no secrets. Paste them as shown. This is not a website console — it is JSON-RPC over HTTP.
This deployment is stateless. Each POST is handled on its own. There is no session cookie and no long-lived GET stream. After initialize, send notifications/initialized (a notification: no id; HTTP 202 and an empty body). Compatible clients then call tools/list and tools/call. On those later requests, send MCP-Protocol-Version: 2025-03-26 to match the version returned at initialize.
Use Content-Type: application/json and Accept: application/json, text/event-stream on every POST. Both Accept types are required. For protocol version 2025-03-26, this server answers those POSTs as a short Server-Sent Events message: event: message and a data: line with one JSON object. Compatible MCP clients read that automatically. curl prints the same event. Do not send Accept: application/json alone.
curl -sS -X POST https://r.team/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"guide","version":"1.0.0"}}}'
Expected output (abbreviated):
event: message
data: {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-03-26","serverInfo":{"name":"rteam-trust-assets-demo","version":"1.0.0"}}}
curl -sS -X POST https://r.team/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2025-03-26' \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}'
Expected: HTTP 202 and an empty body. This is a notification, not a request with an id.
curl -sS -X POST https://r.team/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2025-03-26' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
Expected output (abbreviated): six tools, including get_demo_overview.
event: message
data: {"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"get_demo_overview"},{"name":"list_demo_assets"},{"name":"get_demo_asset"},{"name":"list_ontology_concepts"},{"name":"get_ontology_concept"},{"name":"get_record_structure"}]}}
curl -sS -X POST https://r.team/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2025-03-26' \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_demo_overview","arguments":{}}}'
Expected output (abbreviated):
event: message
data: {"jsonrpc":"2.0","id":3,"result":{"structuredContent":{"synthetic":true,"demonstration_only":true,"not_legal_advice":true,"instrument_id":"tac-0001"}}}
curl -sS -X POST https://r.team/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2025-03-26' \
-d '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"get_demo_asset","arguments":{"id":"tac-0001"}}}'
Expected output (abbreviated):
event: message
data: {"jsonrpc":"2.0","id":4,"result":{"structuredContent":{"instrument_id":"tac-0001","instrument_label":"Heritage Income & Growth Trust","roles":["grantor","trustee","beneficiary","officer"]}}}
curl -sS -X POST https://r.team/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2025-03-26' \
-d '{"jsonrpc":"2.0","id":5,"method":"resources/list"}'
Expected output (abbreviated): sixteen demo:// URIs, including demo://overview.
curl -sS -X POST https://r.team/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2025-03-26' \
-d '{"jsonrpc":"2.0","id":6,"method":"resources/read","params":{"uri":"demo://overview"}}'
Expected output (abbreviated): JSON text marked synthetic, demonstration_only, and not_legal_advice.
If something fails
- Opening
https://r.team/mcpin a browser. A GET of that URL is not how to use the protocol. Use a compatible MCP client or the POST examples above. - HTTP 403. Browser Origins are limited to
r.teamandwww.r.team. Origin-less clients are accepted. This is not a missing password, and it is not a gate you should try to work around. - HTTP 413. The request body is over 64 KiB. These tools take empty or enumerated arguments only.
- Invalid params / unknown id. Only the five asset ids and eleven concept ids above are accepted. Error text is generic and does not echo what you sent.
- Unsupported transport. stdio and the older HTTP+SSE transport are not this URL. Choose Streamable HTTP.
- No API key. Authentication is not required for this public subset. A demonstration password does not unlock it and is not accepted here.
Privacy and read-only limits
Do not submit personal data. The catalog is a curated, static, allowlisted set of public-safe synthetic fixtures. It has no links to production databases, key-value config, forms, or mail. There are no upload or write tools.
This endpoint does not log request payloads. Tool and protocol error text uses generic messages and does not echo arguments. JSON-RPC id is returned for correlation. Connection metadata (time, address, status) may still be recorded by the public site’s hosting and network edge. That is not a claim that nothing is processed or logged anywhere on the path.
Field denylists on the fixture output are defense-in-depth only. They are not a proof that no personal data can be sent. The primary boundary is the static reviewed catalog and the absence of production bindings.
The Interpretation Bench stays gated. Request a Demonstration Password on the contact form if you need that surface. This endpoint will not accept one.
Request a Demonstration Password
Related: Trust Ontology with Securities Law · Sample Trust Account (Synthetic)