Skip to content
Get MCP AdsGet MCP Ads, home

Limits and errors

What each plan allows in accounts, seats and calls, when the allowance period starts, what counts against it, and what every refusal message means.

30 rows

Plans are priced on how much you connect, not on how much you ask. Every paid plan has unlimited tool calls; what grows with the plan is the number of ad accounts you can expose and the number of people who can reach them.

Plans

PlanAd accountsSeatsTool callsWritesActive alerts
Free11200 per periodNo0
Pro41UnlimitedYes0
Team125UnlimitedYes25
EnterpriseUnlimited5UnlimitedYesUnlimited

The two capabilities that are not quantitiesLink to this section

Client memory covers the shared client fiche, the client journal and the client rules checked on writes. Creatives covers the creative gallery, its performance cards and its daily trends. Saved work covers saved views, client briefs, shareable creative reviews and business reviews. All three are enforced server side, on the tool name, before any advertising API is touched, and run_tool does not get around them. A call refused this way is not counted.

PlanClient memoryCreativesSaved work
FreeNoNoNo
ProNoNoNo
TeamYesYesNo
EnterpriseYesYesYes

When the period startsLink to this section

The allowance runs from the day you signed up to the same day the following month, not from the first of the calendar month. Sign up on the 28th and your period ends on the 28th. Where a month is too short, as with the 31st in February, it ends on the last day of that month, and the original day comes back the month after.

What countsLink to this section

  • On the Free plan only. Paid plans do not count calls at all.
  • One tool call is one unit, whether it reads one row or ten thousand.
  • A call routed through run_tool counts once, not twice.
  • list_accounts, search_tools and describe_tool do not count.
  • A refused call does not count. Being over quota, or asking for an account you did not tick, costs nothing.

Refusal codesLink to this section

Every refusal carries two content blocks: a sentence for the person reading the chat, and a JSON block for the agent, with a stable code, whether retrying can help, whether a human is needed, and the next action. The codes are a public contract: they are deprecated, never renamed.

CodeRetry helpsHuman neededMeaning
UNKNOWN_TOOLNoNoThe name matches nothing. search_tools finds the right one.
UNKNOWN_SKILLNoNoThe slug matches nothing. search_skills finds the right one.
ACCOUNT_NOT_ALLOWEDNoNoThe account was not ticked. list_accounts shows what is.
NO_ACCOUNT_SELECTEDNoYesThe platform is connected but nothing is exposed yet.
PLATFORM_NOT_CONNECTEDNoYesNo active connection for that platform.
WRITE_NOT_ON_PLANNoYesThe tool exists; the plan has no writes.
PLAN_REQUIREDNoYesA whole capability is closed by the plan. Reading instead of writing does not get around it.
OVER_CAPACITYNoYesMore accounts ticked than the plan covers. Nothing is readable until somebody unticks.
CALL_ALLOWANCE_REACHEDNoYesThe Free plan allowance is spent for this period.
RATE_LIMITEDYesNoA platform ceiling would be crossed; the message names the delay.
TOOL_NOT_ON_ENDPOINTYesNoDedicated URL for another source; the message names the right one.
DATABASE_UNAVAILABLEYesNoTransient. Nothing was changed on any ad account.
PLATFORM_ERRORYesNoThe advertising platform itself refused; its message is quoted.
CLIENT_RULENoYesThe change breaks a rule of the shared client fiche. Nothing was changed; an exception needs the person's explicit approval and a reason.
BAD_ARGUMENTSNoNoThe call is malformed; the message names the missing piece.

Reading a refusalLink to this section

A refusal says which check failed and what would fix it. It is meant to be actionable by the agent without asking a human, except where only a human can act.

RefusalWhat it meansWhat to do
not among the ... accounts allowedThe account was not ticked in the dashboard.Call list_accounts, use one of those. Only the account owner can add more.
No ... account has been selectedThe platform is connected but nothing is exposed.Hand back to the account owner.
Write refused on the current planThe tool exists but the plan has no writes.Read tools still work. Upgrading is a human decision.
... needs the ... planA creative or saved-work tool was called on a plan that does not open it.The message names the plan that opens it and what it contains. Hand the decision to the account owner; it is a plan change, not a setting.
... ad accounts ticked and ... covers ...The plan went down while the selection stayed where it was.Everything is refused until somebody unticks. We do not choose which accounts survive, because picking on your behalf could expose one client's account to another client's assistant.
Call allowance reachedThe Free plan quota is spent.It resets on the sign-up day of the month. Paid plans have no call limit.
Tool not available on this endpointA dedicated per-source URL was used for another platform's tool.The message names the URL that serves it.
Esc

Type to search