Tool discovery
Why your client sees a short list of tools, and how to reach the rest.
The gateway ships 185 tools. Announcing all of them would put roughly 170 KB of tool definitions in front of the model on every single turn, which crowds out the conversation and makes the model worse at choosing.
So it announces a working set: four routing tools, the core tools of each connected platform, and the write tools your plan allows. Everything else stays one call away.
What a client actually sees
| Situation | Tools announced | Payload |
|---|---|---|
| Three sources, Free plan | 15 | about 14 KB |
| Three sources, paid plan | 32 | about 25 KB |
| All six sources, paid plan | 57 | about 44 KB |
| Full catalogue | 185 | about 170 KB |
The four routing toolsLink to this section
| Tool | What it does |
|---|---|
list_accounts | The ad accounts this organisation has exposed, per platform. |
search_tools | Find tools by describing the task in plain words. |
describe_tool | The full input schema of one tool. |
run_tool | Execute a tool that was not announced. |
search_tools({ task: "find keyword cannibalisation in Search Console" })
-> gsc_detect_cannibalization
describe_tool({ name: "gsc_detect_cannibalization" })
-> the input schema
run_tool({ name: "gsc_detect_cannibalization", args: { siteUrl: "..." } })
-> the resultOne endpoint per sourceLink to this section
If you only ever want one platform in a given client, point it at that platform's endpoint instead of the shared one. The tool list is then that platform's alone, and a cross-platform call is refused with the URL that would serve it.
| Source | Endpoint |
|---|---|
| Meta Ads | https:/ |
| Pinterest Ads | https:/ |
| Google Ads | https:/ |
| TikTok Ads | https:/ |
| Search Console | https:/ |
| Google Analytics 4 | https:/ |