経路Guides

The tool surface

Adako is an MCP server and REST API that connects Claude, ChatGPT, Cursor and other assistants to Google Ads, Meta Ads, ChatGPT Ads, TikTok Ads and LinkedIn Ads. 231 tools reach your assistant through 22 entries: 15 callable by name and 7 routers.

Why a router

A flat list of 231 tools costs thousands of tokens on every request, and some clients truncate a list that long. So the client sees a short, stable list: the tools people ask for by name, plus one router per platform. Everything else is one hop away and costs nothing to discover.

Callable by name

ToolWhat it does
approve_proposalApprove and execute a pending proposal
get_connections_statusConnection health per platform
get_tool_schemaGet the exact arguments a tool takes
get_usage_statusPlan and task usage
list_connected_accountsList ad accounts (active and inactive)
list_pending_proposalsList proposals waiting for approval
reject_proposalReject a pending proposal
search_toolsFind the right Adako tool for a job
start_hereStart here — personalised next step
switch_primary_accountSwitch the primary ad account for a platform
google_get_campaign_performanceGoogle Ads campaign performance with period-over-period change
meta_get_campaign_performanceMeta campaign performance
chatgpt_get_performanceRead ChatGPT Ads performance
tiktok_get_campaign_performanceRead TikTok campaign performance
linkedin_get_campaign_performanceLinkedIn campaign performance

Routers

RouterCoversTools
google_adsGoogle Ads69
meta_adsMeta Ads42
chatgpt_adsChatGPT Ads22
tiktok_adsTikTok Ads29
linkedin_adsLinkedIn Ads33
monitoringMonitoring and reporting13
diagnosticsDiagnostics8

The three actions

Every router takes the same shape.

router actions
google_ads(action="list_tools")
google_ads(action="get_tool_schema", tool_name="google_analyze_search_terms")
google_ads(action="execute", tool_name="google_analyze_search_terms",
           arguments={"customer_id": "1234567890", "date_range": "last_30_days"})
  • list_tools returns every tool in that router with a one-line summary, grouped by category. Free, and no task is charged.
  • get_tool_schema returns the JSON schema, required fields, enums and example prompts for one tool. Free.
  • execute runs the tool through the same pipeline as everything else: auth, validation, quota, the proposal gate, execution, read-back, audit. It bills the tool’s own cost.

A routed tool is not callable by name

Calling google_analyze_search_terms directly returns tool-not-found with near matches. The router is the address.

Finding the right tool

search_tools ranks the whole registry against the user’s own wording, across every platform, and returns the exact line to call each match with. It is free and instant, and it is the right first call whenever the tool is not obvious.

search, then call
search_tools(query="stop a campaign that is wasting money", top_k=5)
get_tool_schema(tool_names=["meta_pause_entity"])
meta_ads(action="execute", tool_name="meta_pause_entity",
         arguments={"entity_type": "campaign", "entity_id": "23851..."})

Both discovery tools cost nothing, so an assistant never has to guess a name. An unknown name returns suggestions rather than a result.

One read across several accounts

A platform router takes an accounts argument on read tools. It runs the tool once per account, one after another, and returns a single consolidated answer.

fan-out
google_ads(action="execute", tool_name="google_get_campaign_performance",
           arguments={"date_range": "last_30_days"}, accounts="all_active")
  • accounts takes a list of account ids or the literal "all_active".
  • Reads only. A write with accounts is refused; writes stay one account at a time.
  • Each account is billed as its own task. At most 20 accounts in one call.
  • Results are grouped per account, with the currency each one reports in.

Over REST

Routers and search_tools are MCP only. Over the REST API the URL is the dispatch: POST /api/v1/tools/{tool_name}/execute. Same pipeline, same quota, same proposals.