{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.Servosity/xero-mcp","description":"Every Xero Accounting read plus a local SQLite ledger  -  aging, reconciliation, and GL tie-out","title":"Xero MCP","repository":{"url":"https://github.com/servosity/msp-skills","source":"github","subfolder":"skills/xero"},"version":"0.1.12","icons":[{"src":"https://raw.githubusercontent.com/servosity/msp-skills/main/docs/assets/social/xero/xero-512x512.png","mimeType":"image/png","sizes":["512x512"]}],"packages":[{"registryType":"mcpb","identifier":"https://github.com/Servosity/msp-skills/releases/download/xero-v0.1.12/xero-mcp.mcpb","version":"0.1.12","fileSha256":"7da2a574033bbec5d3d954029f40256ce3a92d5ff1f51b7cfa0deaea61dcbcc3","transport":{"type":"stdio"},"environmentVariables":[{"description":"Set the XERO_ACCESS_TOKEN credential for the Xero MCP server.","isRequired":true,"isSecret":true,"name":"XERO_ACCESS_TOKEN"},{"description":"Authorization endpoint the login flow opens. Change it only if Xero moves the endpoint.","default":"https://login.xero.com/identity/connect/authorize","name":"XERO_AUTHORIZATION_URL"},{"description":"Base URL for the Xero API. Leave the prefilled default unless your account uses a different regional or self-hosted host.","default":"https://api.xero.com/api.xro/2.0","name":"XERO_BASE_URL"},{"description":"Client ID of your Xero app (developer.xero.com \u003e My Apps). Set it with the client secret to run the OAuth2 flow; leave blank if you paste an access token instead.","isSecret":true,"name":"XERO_CLIENT_ID"},{"description":"Client secret paired with XERO_CLIENT_ID.","isSecret":true,"name":"XERO_CLIENT_SECRET"},{"description":"Optional. Sets XERO_OAUTH2 for the Xero MCP server.","isSecret":true,"name":"XERO_OAUTH2"},{"description":"The Xero organisation ('tenant') GUID sent as the Xero-Tenant-Id header. Every call requires it; `connections list` returns the tenants your token can reach.","isRequired":true,"name":"XERO_TENANT_ID"},{"description":"Token endpoint the client-credentials exchange posts to. Leave the prefilled default unless your tenant uses a different token endpoint.","default":"https://identity.xero.com/connect/token","name":"XERO_TOKEN_URL"},{"description":"Set to 1 to keep credentials off disk. The token cache becomes a no-op, so the connector mints a fresh token each run instead of writing one to config.toml. Leave blank for the default cached behaviour.","name":"XERO_NO_CONFIG_WRITE"},{"description":"Only for tenant-gated multi-client deployments: binds the MCP server to an existing client profile. Leave blank for a single-tenant install.","isSecret":true,"name":"PRINTING_PRESS_CLIENT_PROFILE"},{"description":"Optional. Set to exactly 1 to expose only read-only tools and refuse any state-changing execute call. Leave blank to keep every tool available (writes still need confirm).","name":"XERO_MCP_READ_ONLY"},{"description":"Optional. Set to 1 to keep no local copy of API responses: reads go to the API and the response cache is off. Leave blank to keep the local data.","name":"XERO_NO_LOCAL_DATA"},{"description":"Required only when running the MCP server with --transport http (a remote/hosted deployment). Callers must send a matching Authorization: Bearer header. Not needed for the default local stdio transport that Claude Desktop uses.","isSecret":true,"name":"XERO_MCP_HTTP_TOKEN"},{"description":"Overrides the User-Agent the CLI sends on Xero requests. Leave blank to use the CLI's own built-in User-Agent.","name":"XERO_USER_AGENT"},{"description":"Comma or space separated OAuth scopes requested by auth login, replacing the default set. Leave blank for the default scopes.","name":"XERO_SCOPES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-11-10T21:40:08.706433Z","publishedAt":"2026-11-10T21:40:08.706433Z","updatedAt":"2026-11-10T21:40:08.706433Z","isLatest":true}}}],"metadata":{"count":1}}
