Skip to main content

Quotae MCP server

Connect an authorized agent to Quotae using Model Context Protocol over Streamable HTTP. The server endpoint is https://api.quotae.app/mcp. Authentication stays enabled for every tool, including tool listing. See the Quotae API documentation for onboarding and current rollout limits.

Discovery and client configuration

The published configuration identifies the authenticated endpoint. It contains no secrets and does not grant access or establish a public ChatGPT listing. OAuth clients need preregistration and exact callback approval; changing a client ID locally cannot register a client. Use the authorization metadata to discover the OAuth flow.

Available tools and required scopes

ToolRequired scopeAction
quotae_get_contextaccount:readRead setup, currency, defaults and available actions
quotae_search_clientsclients:readFind existing clients and addresses
quotae_search_catalogcatalog:readRead saved catalogue items and prices
quotae_list_quotesquotes:readList quotes with status and private app links
quotae_get_quotequotes:readRead quote content and version
quotae_create_quote_draftquotes:drafts:writeCreate an explicitly requested unsent draft
quotae_update_quote_draftquotes:drafts:writePatch an eligible unsent, unshared draft
quotae_get_operationquotes:drafts:writeRecover an uncertain draft operation
quotae_list_invoicesinvoices:readList invoices and payment facts
quotae_get_invoiceinvoices:readRead captured invoice details
quotae_get_reportreports:readRead report totals for one currency
quotae_get_report_entriesreports:readRead paginated records behind a report metric

Every listed tool declares its input schema, output schema, annotations and required OAuth scope in tools/list. Tool presence does not imply permission to execute it. Tools return private account data only after token, ownership, scope and grant checks. Quote sending, invoice issuance, payments and deletion stay in Quotae.

Verify an authorized connection

Use a compatible MCP client with a valid, owner-approved OAuth access token. Follow the MCP lifecycle:

  1. Connect to the endpoint with Authorization: Bearer <access-token> and Accept: application/json, text/event-stream.
  2. Send initialize with a supported protocol version and your client capabilities. Complete the notifications/initialized handshake and use the negotiated protocol version for subsequent HTTP requests.
  3. Request tools/list. Expect the twelve tools above and their schemas. This read does not create or send documents.
  4. With account:read, call quotae_get_context with {} and check the account currency and available actions. Stop if the account or permissions differ from what the owner approved.

An unauthenticated request returns HTTP 401 and a WWW-Authenticate header whose resource_metadata points to the protected-resource metadata. A missing scope requires additional owner authorization; it must never be bypassed. Keep tokens out of logs, URLs and source files.

Draft safety and recovery

Only create or update a draft after an explicit user request. Keep one stable operation UUID across retries. Read contentVersion before editing; a conflict requires a fresh read and a new user decision. An uncertain response requires recovery with the original operation UUID, because a timeout does not prove a save failed. Review every draft in Quotae before sending.

The server is part of a controlled rollout. Availability, native approval and public ChatGPT publication are separate checks. A local test or a visible endpoint does not establish access for an arbitrary account.