Throughput and result limits
A throttled request returns
429 Too Many Requests with Retry-After: 1 alongside the
X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. The body is {"Error": "Too many requests, MCP is limited to 10 requests per second per network"}. The window is one
second, not one minute — retry after roughly a second rather than backing off for a full minute. See
Rate Limiting for the header semantics.
Parameter length limits
All string parameters are validated server-side before any backend call. A request that exceeds a limit is rejected immediately with anINVALID_ARGUMENT error — no partial processing occurs.
Write-tool fields (notes and amounts)
Write-tool fields (notes and amounts)
notes on manage_conversion (set_notes) is the only free-text field any write tool accepts.notes must be text. A number is stored in its text form (12345 becomes "12345"); a boolean, null, an array or an object is rejected. An explicit empty string clears the field.Sub-parameters (sub1–sub10, adv1–adv10, source_id)
Sub-parameters (sub1–sub10, adv1–adv10, source_id)
sub1–sub10, adv1–adv10, and source_id are affiliate-controlled tracking values with fixed maximum lengths, listed below.Common parameters (cursor, timezone, currency)
Common parameters (cursor, timezone, currency)
These limits apply across every tool where the parameter appears.
Reporting tools
Reporting tools
Offer and affiliate tools
Offer and affiliate tools
Generic entity tools
Generic entity tools
Traffic Health tools
Traffic Health tools
Documentation search
Documentation search
Errors
When a tool call fails, the MCP Server returns a result withisError: true. The text field of that result is a JSON object with two required fields and two optional ones:
When a parameter limit is exceeded, the message names the offending parameter and the allowed maximum, and usually the actual length received — and the server returns before any backend call is made:
Error codes
HTTP-level errors
Authentication and rate limiting are answered by the HTTP layer before any tool runs, with a plain JSON body instead of the envelope above.Two fields that are not errors
Two top-level keys can appear on a successful response and are easy to mistake for a problem:
Neither sets
isError. See Response safety.
Handling errors in a script
CheckisError before processing content. The code lets you handle each class of error differently without string-matching the message:
AI agents read the
message field automatically and will describe the problem in natural language without any extra handling on your part. Error code parsing is only necessary when you are processing MCP tool results programmatically in a script.