AdMob MCP server: app monetization reporting from Claude or Codex
AdMob completes the publisher picture: app inventory alongside web. It is read-only here, and the two things worth knowing before you build on it are a metric people assume exists and does not, and the fact that AdMob's OAuth scope carries a heavier review burden than most.
What already exists for this platform
Google has not shipped a platform-official AdMob MCP server at the time of writing (September 2026).
- No official server; the AdMob API is wrappable and community servers exist.
- Reporting only in practice — mediation configuration is not something the API opens up the way people expect.
- The scope matters. AdMob's read scope is classified in a way that affects what a Google verification review asks of you, which is a real cost for anyone shipping their own server.
What a full MCP server adds
| Typical option today | Agent Planners MCP | |
|---|---|---|
| AdMob tools | Community, read-only | 7 reads |
| Ad Manager + AdSense in the same session | No | Yes |
| Alerts and anomaly detection | No | Yes |
| Approval + audit layer | n/a (read-only) | Applies when any family writes |
How to configure it
- 1Create a key in API & MCP. `tools:read` for questions; add `tools:write` if the agent should be able to change things. Tools mode needs a paid plan and fails closed.
- 2Connect AdMob under Integrations — that OAuth step is why the MCP key never carries platform credentials.
- 3Add the server to Claude Code, Claude Desktop or Codex using the snippet below.
- 4Have the agent call `describe_permissions` first — it reports the key's mode, scopes, plan entitlement and connected accounts.
- 5Call `list_accounts` for the account ids, and scope each call with one. Resolution is exact or it refuses, naming the candidates.
claude mcp add --transport http agentplanners https://www.agentplanners.com/api/mcp \
--header "Authorization: Bearer ap_live_…"Claude Desktop and Codex
Claude Desktop takes the same endpoint as JSON:
{
"mcpServers": {
"agentplanners": {
"url": "https://www.agentplanners.com/api/mcp",
"headers": {
"Authorization": "Bearer ap_live_…"
}
}
}
}The AdMob metric that does not exist
`OBSERVED_ECPM` is not an AdMob metric. It exists in Ad Manager's vocabulary and people reach for it in AdMob by analogy, where it simply is not there. A query using it fails, and the failure does not say "that metric belongs to a different product".
This is the general shape of publisher-platform work: three Google products with overlapping concepts and non-overlapping vocabularies. An agent that assumes one shared metric namespace produces confident nonsense, which is why the vocabulary belongs in the tool.
Use cases
- App revenue explained — which apps, ad units and countries moved, ranked by impact.
- Mediation performance review, as an analysis rather than a configuration change.
- Web and app monetization in one answer, alongside AdSense and Ad Manager.
- Scheduled revenue alerts with anomaly detection, so a drop reaches you rather than waiting to be found.
Frequently asked questions
- Is there an official AdMob MCP server?
- Not from Google at the time of writing (September 2026). Community wrappers around the AdMob API exist and are read-oriented.
- Why does OBSERVED_ECPM fail in AdMob?
- Because it is not an AdMob metric — it belongs to Ad Manager's vocabulary. The three Google publisher products share concepts but not metric names, and a query borrowing a name across them fails.
- Can an agent change my AdMob mediation setup?
- Not here — AdMob is 7 read tools and no writes. Mediation analysis is available; mediation configuration stays in AdMob.