Xero Proxy

Developer documentation

MCP servers

Two Model Context Protocol endpoints: a management control plane, and a public documentation server.

View as markdown

Endpoints

ServerURLAuthentication
Management/api/mcpBearer API key carrying management scopes
Documentation/api/mcp/docsNone, public and read only

Both speak JSON-RPC 2.0 over HTTP POST and implement initialize, tools/list and tools/call. Point any MCP client at them:

{
  "mcpServers": {
    "xero-proxy": {
      "type": "http",
      "url": "https://xero-proxy.fullstackplus.com.au/api/mcp",
      "headers": { "Authorization": "Bearer xpk_live_<keyid>_<secret>" }
    },
    "xero-proxy-docs": {
      "type": "http",
      "url": "https://xero-proxy.fullstackplus.com.au/api/mcp/docs"
    }
  }
}

Management tools

Every tool is confined to the account owning the calling key, and every write is recorded in the audit log with origin: mcp. A tool whose scope the key does not hold is not listed and cannot be called.

  • list_connections, list_organisations: connection health and the organisations behind it.
  • list_keys, create_key, rotate_key, revoke_key: the full key lifecycle, with the secret returned once on create and rotate.
  • usage_summary, recent_requests: request volume, error rate and the recent request log.
  • list_alerts, acknowledge_alert: the alert centre.
  • cache_status, purge_cache: what caching is saving, and dropping every stored response.
  • quota_status, set_key_limits: what each key is allowed and has spent, what Xero says is left, and changing a key's limits or priority. There is no tool for turning enforcement on: that is a decision a person makes, not one an agent makes to unblock itself.
  • list_event_subscriptions, recent_event_deliveries, retry_event_delivery: the webhook fan-out, its delivery history, and re-queuing one.

Documentation tools

  • search_docs: ranked sections for a natural-language question.
  • get_page: one documentation page as markdown.
  • resolve_route: the required scope for a method and path, straight from the enforcement table.
  • list_routes: the route reference, optionally filtered by family.
  • get_openapi: the generated OpenAPI document.