Skip to main content

Limits

The limits are per account and shared by all its MCP connections. Each layer applies on top of the previous one:
  1. Requests to the MCP server. Up to 60 a minute per account, or your plan’s API rate limit if it is lower. They count apart from your API calls, so a busy agent never blocks your other integrations. Over it, requests answer 429 RATE_LIMITED for 60 seconds.
  2. An account blocked on the API is blocked here too. While the account is over its API rate limit, the MCP server answers 429 RATE_LIMITED as well.
  3. The tool budget: tool calls a minute, half your plan’s API rate and at most 60, since a tool call does much more work than a request.
  4. Per-tool caps for the tools that read or write inside your application or query the edge network.
  5. The per-tool limits of Cubic, the Square Cloud AI assistant. The MCP and Cubic share them, per account.
Layers 3, 4 and 5 answer with a TOOL_RATE_LIMITED tool result, described below.
  • Every tool call counts, including calls refused for a resource or for a scope that depends on the arguments (such as restart on set_env_vars).
  • On HOBBY-1, for example, the MCP never goes past 15 tool calls a minute, and your CLI, SDKs and bots keep the plan’s whole API rate.

TOOL_RATE_LIMITED

A tool over a limit doesn’t run. The answer is a regular tool result marked isError: true, not an HTTP error, so the connection keeps working:
When the tool budget is the limit reached, the summary says too many AI actions in a short time and every tool waits; otherwise only that tool does. If the client calls the same tool again while it is still limited, that second refusal in a row answers TOOL_EXECUTION_FAILED instead, which tells the client to stop and you to wait a few minutes or use the dashboard.

Errors

HTTP errors

These come back as the HTTP status of the request, with a JSON body carrying code.

While connecting

Tool results

These come back inside a tool result, as code, next to a summary the client reads. A tool your key can’t use, or one that doesn’t exist, answers the JSON-RPC error -32602 Unknown tool. Check the key’s scopes. Other codes come from the tool itself, and the summary explains them.