Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.getmaito.com/llms.txt

Use this file to discover all available pages before exploring further.

MCP Transport

Maito exposes MCP over Streamable HTTP.
https://mcp.getmaito.com/mcp

Supported Methods

JSON-RPC methodPurpose
initializeStart an MCP session and negotiate protocol capabilities.
notifications/initializedLet the server know the client completed initialization.
tools/listList tools permitted for the authenticated user.
tools/callInvoke a tool by name with JSON arguments.

HTTP Routes

MethodPathPurpose
POST/mcpStreamable HTTP JSON-RPC request/response.
OPTIONS/mcpCORS preflight.
GET/.well-known/oauth-protected-resourceOAuth protected resource metadata.
GET/.well-known/oauth-protected-resource/mcpMCP-specific protected resource metadata.
GET/.well-known/oauth-authorization-serverOAuth authorization server metadata.

Initialize

curl -X POST "https://mcp.getmaito.com/mcp" \
  -H "Authorization: Bearer $MCP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-06-18",
      "capabilities": {},
      "clientInfo": { "name": "example", "version": "1.0.0" }
    }
  }'

List Tools

curl -X POST "https://mcp.getmaito.com/mcp" \
  -H "Authorization: Bearer $MCP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/list",
    "params": {}
  }'

Call A Tool

curl -X POST "https://mcp.getmaito.com/mcp" \
  -H "Authorization: Bearer $MCP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "draft.list",
      "arguments": { "limit": 5 }
    }
  }'

Error Model

  • Missing or invalid auth returns HTTP 401 with a WWW-Authenticate challenge.
  • JSON-RPC transport failures return top-level error.
  • Tool and domain failures return result.isError = true.
  • Machine-readable tool errors are returned in result.structuredContent.error.