QuarterMaster ships a hosted MCP server at https://api.quarter-master.co/mcp. Every request is authenticated as you — a personal API key for header-based clients (Claude Code, the Claude API), or a per-user OAuth sign-in for connector surfaces (claude.ai, Grok) — so every answer is scoped to your org and every action is attributed to you. Reads are grounded in the live ledger; the one write tool drafts a PO that always lands pending human approval.
Any member can mint a personal key from a signed-in session. Personal keys act as you: their scopes are clamped to your current role at every request, and they can never carry admin or approve:purchase_orders — an agent can draft, only a human can approve. Revoke anytime with DELETE /v1/api-keys/{id}; keys die automatically if you leave the org.
Just exploring? POST /v1/guest/session provisions a throwaway demo factory and returns a ready-made mcpApiKey for it — no account needed.
For a shared repo, commit a .mcp.json that references the env var — each teammate exports their own key and gets their own attribution:
Connector surfaces can't carry a per-user header, so the server is also a full OAuth 2.1 authorization server (PKCE S256, dynamic client registration, rotating refresh tokens). Add the connector, and your browser opens a QuarterMaster consent screen: sign in, pick the org and the scopes the agent gets, done. Each teammate connects as themselves.
claude.ai / Claude Desktop — Settings → Connectors → Add custom connector → paste https://api.quarter-master.co/mcp. Claude discovers the OAuth endpoints itself and walks you through the consent screen.
Grok — grok.com/connectors → New Connector → Custom → paste https://api.quarter-master.co/mcp and complete the sign-in when prompted.
Grants clamp to your role on every request (a demotion applies immediately), can never carry admin or approve:purchase_orders, and die when you disconnect the connector, leave the org, or delete your account.
Claude API — pass the server in mcp_servers with authorization_tokenset to the user's key; your backend supplies each user's own token per request.
Claude Desktop (local stdio) — run the server as a local process against your own deployment; the key comes from the environment:
57 tools over the same service layer the console runs on — ask qm_capabilities for the live catalog. Money fields (costs, prices, PO totals) additionally require the read:costing scope — without it the same tools answer with amounts withheld. Write tools only ever produce drafts or role-scoped, audited, reversible changes — PO approval, SOP release, ledger counts and deletions stay human acts inside QuarterMaster.