Skip to main content

Connect your agent

Protocol API speaks MCP — connect Claude (or any MCP client) and ask questions like "how has the earner rate changed this year?", "what's mUSD's supply on Linea?" or "top wM holders by unclaimed yield". All tools are read-only and answers come back human-readable (normalized decimals, percentages, ISO dates) with raw values alongside.

Endpoint: https://protocol-api.m0.org/mcp (Streamable HTTP)

The connector is org-managed: open Settings → Connectors, enable M0 Protocol API, and sign in with your @m0.xyz Google account when prompted. That's it — no keys, no config files.

If you don't see the connector, ask in #tooling (an admin registers it once for the whole org).

Claude Code

claude mcp add --transport http protocol-api https://protocol-api.m0.org/mcp

The first call opens a browser window for Google sign-in (@m0.xyz only). Tokens refresh automatically.

Claude Desktop

Add the same URL as a custom connector under Settings → Connectors → Add custom connector and complete the Google sign-in.

Scripts & services (API keys)

Non-interactive consumers use an API key with the mcp scope instead of OAuth:

bun cli keys:create --application <app-uuid> --scopes mcp

Send it as Authorization: ApiKey <token> on POST /mcp. Keys are issued by the Tooling team — ask in #tooling.

What's available

ToolAnswers
list-tokenswhich tokens/chains/data exist — agents call this first
get-earner-rate-historyM earner rate changes over time
get-stablecoin-supplycurrent supply + holder count per token/chain
get-holdersholders per token/chain (stablecoins and wM by balance; M in API order)
get-holder-historyholder counts over time
get-yieldaccrued / claimed / unclaimed yield (M, wM)
get-daily-earningsdaily M earnings snapshots
get-schemaexplore the underlying GraphQL schema
query-graphqlguarded read-only GraphQL for long-tail questions

Every response includes a notes field carrying the semantic caveats (per-token-per-chain only, supply ≠ Owed M, USDai is not M-backed, mgUSD uses 7 decimals) so agents frame answers correctly.

Limits

Per-user rate limiting applies; every tool call is audit-logged with your identity. The query-graphql passthrough is read-only with bounded depth, page size and execution time.