Skip to main content

Rate limits

The MCP endpoint sits behind a per-Space throttle, shared across all MCP clients connected to that Space. That’s enough headroom for typical Ask-AI-style flows where each user message triggers one to a handful of tool calls. If you’re driving the MCP server from an automated agent that fans out across many tool calls per turn, you may hit the limit during a heavy iteration. Limits are returned in standard response headers:
When you exceed the limit you get a 429 Too Many Requests JSON-RPC error and a Retry-After header. MCP-aware clients (Claude Desktop, Cursor) back off automatically on 429 and retry once the window clears.

Underlying API limits

Each MCP tool delegates to a Public API V1 endpoint, and those endpoints have their own per-Space throttles: The MCP endpoint throttle (60/minute) is hit first in most cases, but a chatty single tool can still trip its own per-endpoint limit before the MCP throttle catches it.

Error envelope

Every error from an MCP tool returns a structured envelope so the model can recover deterministically without parsing prose:
The [error_class] prefix is one of: The Reference ID: … is the row ID in mcp_audit_log for this call. Include it in support requests so the Cometly team can trace the failure end-to-end.

Validation error detail

Validation errors include the field-by-field reasons, formatted for the model:
Validation errors are not reported to Sentry — they’re user-input failures. Other 5xx-mapped failures are.

Best practices for client builders

  1. Always parse the [error_class] prefix, not the message text. Messages may evolve; the class won’t.
  2. Honour Retry-After on 429. Cometly doesn’t bill for retries, but a hot loop will keep you locked out.
  3. Surface the Reference ID to end users when an error escapes. It’s the fastest way to get a real diagnosis from support.
  4. Don’t cache 401 responses. When OAuth tokens expire, the next call has to walk the flow.