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)
claude.ai (recommended for everyone at M0)
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
| Tool | Answers |
|---|---|
list-tokens | which tokens/chains/data exist — agents call this first |
get-earner-rate-history | M earner rate changes over time |
get-stablecoin-supply | current supply + holder count per token/chain |
get-holders | holders per token/chain (stablecoins and wM by balance; M in API order) |
get-holder-history | holder counts over time |
get-yield | accrued / claimed / unclaimed yield (M, wM) |
get-daily-earnings | daily M earnings snapshots |
get-schema | explore the underlying GraphQL schema |
query-graphql | guarded 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.