MCP
Search Ads 360 MCP server: cross-engine reporting from Claude or Codex
TL;DR
Search Ads 360 is the platform where knowing the API's limits saves the most time. The Reporting API is reporting only — no integration built on it can change a campaign, ours included — and the single write the scope carries is offline conversion upload. This page covers the setup and the two errors that will otherwise cost you an afternoon.
What already exists for this platform
Google has not shipped a platform-official Search Ads 360 MCP server at the time of writing (September 2026), and community coverage is essentially absent — SA360 is a enterprise-seat product with a smaller developer audience than Google Ads.
- No official server, and the newer Reporting API (searchads360.googleapis.com/v0) is recent enough that most wrappers predate it.
- The scope is
doubleclicksearch, classified sensitive, which raises the verification bar for anyone shipping their own. - Two APIs, not one — the new Reporting API for reads, and the legacy Search Ads 360 API for the conversion upload. A wrapper built on one of them is missing half.
What a full MCP server adds
| Typical option today | Agent Planners MCP | |
|---|---|---|
| SA360 tools | None available | 10 reads, 3 writes |
| Reporting API (v0) reads | Rare | search, report, search_fields, custom columns |
| Offline conversion upload | Separate legacy API | Included, under the key's write mode |
| Anomaly detection + alerts | No | Yes |
| Google Ads in the same session | No | Yes — the engine account underneath |
| Manager-account access | login-customer-id by hand | Handled |
Available to every organization since 18 September 2026, once Google finished verifying the doubleclicksearch scope.
How to configure it
- 1Create a key in API & MCP.
tools:readfor reporting; addtools:writefor conversion upload. Tools mode needs a paid plan and fails closed. - 2Connect Search Ads 360 under Integrations — available to preview organizations while the scope is in verification.
- 3Add the server to Claude Code, Claude Desktop or Codex using the snippet below.
- 4Call
describe_permissionsfirst, thenlist_accessible_customersfor the client ids under your manager account.
bash
claude mcp add --transport http agentplanners https://www.agentplanners.com/api/mcp \
--header "Authorization: Bearer ap_live_…"Codex uses the same endpoint from
~/.codex/config.toml, with the key in an environment variable rather than the file: [mcp_servers.agentplanners] / url = "…/api/mcp" / bearer_token_env_var = "AGENTPLANNERS_API_KEY".Two errors that will cost you an afternoon
- The field-discovery query has no
FROMclause.searchAds360Fieldsuses a query language that looks like GAQL and is not. Including aFROMreturns a 400, and because the rejection happens before any repair path, the hint that would explain it never reaches you. - A conversion row keyed by
customerIdalso needscampaignIdandadGroupId, and the segmentation type must be Floodlight. If your engine account is Google Ads and the conversions are click-based, they are not Floodlight conversions and belong in Google Ads' own click-conversion upload instead — the same job through a different API.
A manager account reading a client's data needs the login-customer-id header, which is the same shape as Google Ads MCC access and the same thing people forget.
Use cases
- Cross-engine reporting in one question, with the Google Ads engine account connected on the same key so the campaign detail is one step away.
- Closed revenue back into bidding via offline conversion upload, which for lead generation usually matters more than any bid tuning.
- Anomaly detection on SA360 metrics, delivered on a schedule rather than checked.
- Reconciling SA360 against the engine account, which is where the numbers most often disagree.
Frequently asked questions
- Is there an official Search Ads 360 MCP server?
- Not from Google at the time of writing (September 2026), and community coverage is essentially absent. The newer Reporting API is also recent enough that most existing wrappers predate it.
- Can an MCP server change SA360 campaigns?
- No, and that is an API limit rather than a tooling one. The Search Ads 360 Reporting API is reporting only — campaigns, bids and budgets are managed on the engine account or in the SA360 interface.
- What can be written to SA360?
- Offline conversions only — upload, update, and update availability — through the legacy Search Ads 360 API rather than the Reporting API.
- Why does my searchAds360Fields query return 400?
- Most likely a FROM clause. That query language resembles GAQL but does not accept FROM, and the rejection arrives before any repair hint can explain it.