Access, limits, and errors

Who can connect, what plans are required, and the errors you can hit.

Access and plans

  • Who gets a token: the MCP page in the web app is available to organization owners. Tokens are personal; each member gets their own.
  • Subscription: every organization-scoped tool call checks that the organization has an active subscription. Trials count as active, so you can use the MCP during a trial.
  • Paused billing: if billing collection is paused, MCP access is paused too. Resume billing under Settings, then Billing, in the web app.
  • Paid-only features: creating Public API keys and webhooks through MCP tools requires a paid plan, same as in the web app.

Limits

There is no request rate limit on the MCP endpoint. Instead, individual tools cap their own cost:

LimitWhere
50 sampled jobs per call (default 20)knowledge_base_simulate
10 sampled jobs per call (default 5)cover_letter_simulate
1,000 rooms and 500 messages per room (default 100 and 50), 50 MB per fileinbox_export_start
100 messages per room read (default 30)inbox_room_get
25 MB per file, 5 proposal attachmentscampaign_attachment_create
About 15 MB per attachmentinbox_room_send_message
24-hour expiry on export download linksall export tools

Simulation tools run the production AI on each sampled job, so agents are instructed to offer them rather than run them automatically.

Errors

Connection-level failures come back as JSON-RPC errors:

SituationHTTPMessage
No token in the URL or headers401Missing MCP token
Malformed, unknown, or regenerated token401Invalid MCP token
Expired token401MCP token expired
Subscription inactive or billing paused403Explains how to fix it in Settings, then Billing
More than one organization and no organizationId given400Tells the agent to call organization_list

Tool-level failures (a campaign that cannot start, a knowledge base profile at its plan limit, a blocked delete) come back as structured tool errors with a message the agent can act on, not as protocol failures. Well-behaved agents read the message, fix the input or ask you, and retry.

Common ones you might see surfaced in chat:

  • Campaign cannot start: the response lists every unmet requirement (missing filters, no template, no active subscription, and so on).
  • Knowledge base profile limit reached: delete an unused profile or upgrade your plan.
  • Delete blocked: knowledge base profiles and templates cannot be deleted or archived while a live campaign uses them.
  • Export expired: export downloads are valid for 24 hours; start a new export.

Privacy and audit

  • Every tool response passes through a sanitizer that strips credentials, tokens, and secrets before the agent sees it.
  • Every call is audit-logged with the tool name, sanitized input, latency, and outcome. Writes additionally record what changed, with before and after state.
  • Reading messages with inbox_room_get marks the room read on Upwork, and inbox_room_send_message posts real messages to real clients. The server flags these side effects to the agent so it confirms with you first.

On this page