Skip to main content
Glama
jerry2247

admob-mcp

by jerry2247

admob-mcp

CI License: MIT

A Model Context Protocol (MCP) server for the Google AdMob API. It gives MCP clients such as Claude Code, Cursor, Codex, and other agents a set of typed tools for reading AdMob accounts, apps, ad units, mediation settings, and reports, plus write tools for the operations the AdMob API supports. Reads run freely; every write requires your confirmation.

This project is API first. It only exposes operations that the official AdMob API actually supports, and it clearly documents the surfaces that AdMob keeps in the UI with no API.

Status

Version 0.1.0. Local stdio server with desktop OAuth. Not yet published to npm.

Related MCP server: MCP Search Analytics Server

What it can do

Everything here is backed by the official AdMob API (admob.googleapis.com).

Read tools (safe, run without confirmation)

Tool

Purpose

admob_list_accounts

List the signed-in AdMob publisher account.

admob_get_account

Get one account (publisher id, time zone, currency).

admob_list_apps

List apps under an account.

admob_list_ad_units

List ad units under an account.

admob_list_ad_sources

List mediation ad sources.

admob_list_adapters

List the adapters for one ad source.

admob_list_ad_unit_mappings

List ad unit mappings for one ad unit.

admob_list_mediation_groups

List mediation groups (supports a filter).

admob_run_network_report

Generate an AdMob Network report.

admob_run_mediation_report

Generate an AdMob Mediation report.

admob_run_campaign_report

Generate an AdMob campaign report (v1beta).

Write tools (require confirmation, support dry run)

Tool

Purpose

admob_create_app

Create an app.

admob_create_ad_unit

Create an ad unit.

admob_create_ad_unit_mapping

Map an ad unit to a mediation adapter.

admob_batch_create_ad_unit_mappings

Create up to 100 ad unit mappings at once.

admob_create_mediation_group

Create a mediation group.

admob_update_mediation_group

Update a mediation group (patch with update mask).

admob_create_ab_experiment

Start a mediation A/B experiment.

admob_stop_ab_experiment

Stop a mediation A/B experiment and pick a variant.

All write tools are AdMob API v1beta methods. Google gates these behind allowlisted access, so a write may return a 403 until your AdMob account is granted access by your account manager. The server turns that 403 into a clear message.

Not supported (no AdMob API)

These AdMob surfaces have no public API, so this server does not implement them. It does not use browser automation. Use the AdMob web UI for:

app-ads.txt diagnostics, blocking controls, privacy and messaging (UMP consent messages), policy center, test devices, crawler access, change history, AdMob Labs, payments and payouts, users and roles, linked services (Firebase, Ad Manager, Analytics), app verification, and account cancellation.

Read the admob://capabilities resource for the machine-readable version of this map.

Safety model

The safety boundary is the same idea as your client asking permission before it runs a command.

  • Read tools are annotated readOnlyHint, so clients can run them without a prompt.

  • Write tools are annotated destructiveHint and carry the Claude Code requiresUserInteraction hint, which forces an approval prompt on every call and cannot be bypassed by auto accept modes. Other clients prompt on destructive tools as well.

  • Every write tool accepts dryRun: true, which returns the exact request that would be sent without executing it.

  • Set ADMOB_READONLY=1 to disable all write tools. They are then not registered at all.

Requirements

  • Node.js 18 or newer.

  • A Google account with an AdMob account.

  • A Google Cloud project with the AdMob API enabled and an OAuth client.

Setup

1. Enable the AdMob API and create an OAuth client

  1. In the Google Cloud console, enable the AdMob API for your project.

  2. Configure the OAuth consent screen. For personal use, set the user type to External, keep the publishing status in Testing, and add your Google account as a test user. Note that in Testing mode refresh tokens expire after 7 days; publish the app for long lived tokens.

  3. Create an OAuth client of type Desktop app. Note the client id and client secret.

The AdMob scopes are sensitive, not restricted. A published multi user app needs Google sensitive scope verification, but there is no annual security assessment for these scopes.

2. Install

Until this package is published to npm, clone and build it:

git clone https://github.com/jerry2247/admob-mcp.git
cd admob-mcp
npm install
npm run build

3. Authenticate

Provide your OAuth client in the environment and run the auth command. It opens a browser using a loopback redirect with PKCE and stores a refresh token.

export GOOGLE_CLIENT_ID="your-client-id"
export GOOGLE_CLIENT_SECRET="your-client-secret"
node dist/index.js auth

The refresh token is saved to ~/.config/admob-mcp/credentials.json with 0600 permissions. Run node dist/index.js logout to remove it.

4. Configure your MCP client

For Claude Code, add a project .mcp.json (see examples/mcp.json):

{
  "mcpServers": {
    "admob": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/admob-mcp/dist/index.js"],
      "env": {
        "GOOGLE_CLIENT_ID": "${GOOGLE_CLIENT_ID}",
        "GOOGLE_CLIENT_SECRET": "${GOOGLE_CLIENT_SECRET}"
      }
    }
  }
}

The ${VAR} values are expanded by Claude Code from your shell environment, so no secret is committed. Credentials from admob-mcp auth are read from the stored file, so you do not need to pass a refresh token. To run read only, add "ADMOB_READONLY": "1" to env. To fix the default account, add "ADMOB_PUBLISHER_ID": "pub-1234567890123456".

The same server works in other clients. Cursor and VS Code use the same mcpServers shape. Codex uses TOML, for example:

[mcp_servers.admob]
command = "node"
args = ["/absolute/path/to/admob-mcp/dist/index.js"]

[mcp_servers.admob.env]
GOOGLE_CLIENT_ID = "your-client-id"
GOOGLE_CLIENT_SECRET = "your-client-secret"

Resources and prompts

Resources:

  • admob://capabilities - what is API backed versus UI only or human only.

  • admob://enums/reports - allowed dimensions and metrics for each report type.

  • admob://account - the current account summary.

Prompts:

  • admob_revenue_review - guide a revenue review over a date range using the network and mediation reports.

  • admob_setup_check - verify credentials and summarize available capabilities.

Reporting

Report tools take a date range (YYYY-MM-DD), a list of dimensions, and one or more metrics. The allowed values differ per report type and are listed in each tool description and in the admob://enums/reports resource. Network and mediation reports are generated as a stream and normalized into rows. The campaign report is v1beta only and limited to a 30 day range. Tool results include a row count and a capped set of rows to keep output small; raise limit to include more.

Environment variables

Variable

Purpose

GOOGLE_CLIENT_ID

OAuth client id. Required.

GOOGLE_CLIENT_SECRET

OAuth client secret. Optional for Desktop clients but usually set.

ADMOB_REFRESH_TOKEN

Refresh token supplied directly, skipping the stored file.

ADMOB_PUBLISHER_ID

Default account, for example pub-1234567890123456.

ADMOB_READONLY

Set to 1 to disable all write tools.

ADMOB_MCP_CREDENTIALS_PATH

Override the stored credentials file path.

ADMOB_MCP_LOG_LEVEL

debug, info (default), warn, or error.

Security notes

  • Secrets are read from the environment. The .mcp.json example keeps them out of version control with ${VAR} expansion.

  • The only secret stored at rest is the OAuth refresh token, written with 0600 permissions outside the repository.

  • The server writes only JSON-RPC to stdout. All logs go to stderr.

  • The server requests least privilege scopes: admob.readonly only, plus admob.monetization when writes are enabled.

Development

npm run build       # compile TypeScript to dist
npm run typecheck   # type check without emitting
npm test            # build then run the vitest suite
npm run format      # format with prettier
npm run inspector   # build then open the MCP Inspector against the server

Tests are fully mocked and do not call the AdMob API.

Known limitations and roadmap

  • v1 of the AdMob API is read only. All writes are v1beta and allowlisted, so writes may return 403 until Google grants your account access.

  • No hosted HTTP transport yet. v0.1 is local stdio only.

  • No OS keychain storage yet. The refresh token is stored in a 0600 file.

  • No browser or UI fallback for the surfaces that have no API.

License

MIT. See LICENSE.

Available Tools

19 tools
admob_batch_create_ad_unit_mappingsBatch create ad unit mappingsA
Destructive

Create up to 100 ad unit mappings in one call (v1beta, allowlisted). Each mapping targets an ad unit under the same account.

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNoIf true, validate the inputs and return the exact API request that would be sent WITHOUT executing it. Default false: the operation runs after the MCP client asks you to confirm.
mappingsYesUp to 100 mappings.
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, so the description's 'Create' adds no new behavioral context. It mentions the limit of 100 but does not disclose other traits like failure behavior or idempotency beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with the key information front-loaded: action, resource, batch limit, and constraint. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main purpose and constraints. With no output schema, it could be improved by mentioning the return value (e.g., list of created mappings) or error handling, but it is sufficient for a simple batch creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds the context that all mappings must target ad units under the same account, which provides some additional meaning but is not critical.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create', the resource 'ad unit mappings', and the batch scope with a limit of 100. It distinguishes from the sibling 'admob_create_ad_unit_mapping' by specifying batch operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for batch creation (when multiple mappings need to be created) and mentions 'v1beta, allowlisted' indicating restricted access. However, it does not explicitly state when not to use or provide alternatives like the single mapping tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_create_ab_experimentCreate mediation A/B experimentA
Destructive

Start an A/B experiment on a mediation group (v1beta, allowlisted). Control lines are inherited from the group automatically; you supply the treatment lines and the treatment traffic percentage. Only one experiment can run per group at a time; monitor it via admob_list_mediation_groups.

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNoIf true, validate the inputs and return the exact API request that would be sent WITHOUT executing it. Default false: the operation runs after the MCP client asks you to confirm.
displayNameYes
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.
mediationGroupIdYes
treatmentMediationLinesYesArray of treatment lines, each an object like { mediationGroupLine: { ... } }.
treatmentTrafficPercentageYesPercentage of traffic for the treatment variant. Allowed: 1, 10, or 50.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and readOnlyHint=false, matching the mutation nature. The description adds behavioral context: dryRun behaves as a validation mode, and the default execution requires confirmation. It also discloses the single-experiment-per-group limitation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. The purpose is front-loaded, and additional details (inheritance, limit, monitoring) are efficiently packed into the second sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters (4 required) and no output schema, the description covers the core purpose, constraints, and dryRun behavior. It references a sibling tool for monitoring. While return value is not described, the agent can infer it from the action. Minor gap in explaining what happens post-experiment.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 67% schema coverage, the description adds meaning beyond the schema. It clarifies that control lines are inherited (eliminating that param guesswork) and mentions the key params (treatment lines, traffic percentage). The dryRun param gets extra context in the description about confirmation requirement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Start an A/B experiment') and resource ('mediation group'), clearly distinguishing from siblings like admob_stop_ab_experiment. It adds scope details (v1beta, allowlisted) and automatic control line inheritance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (to start an experiment) and provides a constraint ('Only one experiment can run per group at a time'). It also suggests monitoring via admob_list_mediation_groups. No explicit exclusion, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_create_ad_unitCreate AdMob ad unitA
Destructive

Create a new ad unit under an app (v1beta). This method is allowlisted by Google: a 403 means your account is not yet granted access. Use dryRun to preview the request.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesThe public app id the ad unit belongs to, e.g. "ca-app-pub-...~...".
dryRunNoIf true, validate the inputs and return the exact API request that would be sent WITHOUT executing it. Default false: the operation runs after the MCP client asks you to confirm.
adTypesNoAllowed ad media types (RICH_MEDIA, VIDEO).
adFormatYesAd format.
rewardUnitNoFor REWARDED formats: the reward unit type, e.g. "coins".
displayNameYesDisplay name for the ad unit.
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.
rewardAmountNoFor REWARDED formats: the reward amount.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and readOnlyHint=false. The description aligns, noting creation is performed unless dryRun is true. It adds the allowlist requirement and preview capability, which are beyond annotation scope. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences deliver purpose, allowlist note, and dryRun guidance. Every sentence adds unique information with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description covers key aspects: creation, allowlist, dryRun. With 8 parameters fully described in schema and annotations, this is sufficient for a creation tool. Missing return value detail is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by explaining dryRun's default behavior ('operation runs after MCP client asks you to confirm') and publisherId defaults. This augments schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title clearly indicate creating an ad unit. The description specifies 'under an app (v1beta)' and mentions the dryRun option. Among sibling tools, this is the only ad unit creation tool, so it is well-distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states that the method is allowlisted and that a 403 means no access. It also advises using dryRun to preview requests. While it does not explicitly compare to siblings, the context implies it is for creation when access is granted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_create_ad_unit_mappingCreate ad unit mappingA
Destructive

Create an ad unit mapping that connects one ad unit to a mediation adapter (v1beta, allowlisted). adapterId comes from admob_list_adapters; adUnitConfigurations keys are adapterConfigMetadataId values.

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNoIf true, validate the inputs and return the exact API request that would be sent WITHOUT executing it. Default false: the operation runs after the MCP client asks you to confirm.
adUnitIdYes
adapterIdYesAdapter id (from admob_list_adapters).
displayNameNo
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.
adUnitConfigurationsNoMap of adapterConfigMetadataId -> network-specific value.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as non-readOnly and destructive. The description adds that a dryRun parameter can be used to validate without executing, and that the operation runs after confirmation from the client. This goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states purpose and constraints, second explains key parameter relationships. No filler, front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 params, nested object, no output schema), the description covers the creation process, parameter dependencies, and the dryRun behavior. Missing output details but acceptable without output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 67% schema coverage, the description adds significant meaning for adapterId and adUnitConfigurations by specifying their sources. DryRun and publisherId are already covered in schema. AdUnitId and displayName lack extra info, but overall adds value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates an ad unit mapping connecting one ad unit to a mediation adapter, specifying the version and allowlist restriction. It distinguishes from sibling tools like the batch variant.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on where to obtain adapterId (from admob_list_adapters) and that adUnitConfigurations keys come from adapterConfigMetadataId. Lacks explicit when-to-use vs. alternatives but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_create_appCreate AdMob appA
Destructive

Create a new app under an AdMob account (v1beta). This method is allowlisted by Google: if you get a 403, your account is not yet granted access. Use dryRun to preview the request.

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNoIf true, validate the inputs and return the exact API request that would be sent WITHOUT executing it. Default false: the operation runs after the MCP client asks you to confirm.
platformYesApp platform.
appStoreIdNoOptional app store id to link an existing store listing (linkedAppInfo).
displayNameYesAdMob display name for the app.
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint false, openWorldHint true, and destructiveHint true. The description states 'Create a new app', which aligns with a write operation but does not mention destructive behavior. The allowlisting and dryRun features add some behavioral context, but the destructiveHint contradiction reduces clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose, no unnecessary words. Every sentence provides critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema; the description does not state what the tool returns (likely the created app). Given the destructiveHint annotation, more context about side effects or irreversibility would be beneficial. The description covers inputs well but lacks output and side-effect details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well documented. The description adds value by explaining the dryRun parameter's purpose (preview request) and mentioning default publisherId from environment, going beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Title and description clearly state 'Create a new app under an AdMob account', specifying the verb 'create' and resource 'app'. This distinguishes it from sibling tools that create ad units, mediation groups, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when the tool can be used: it is allowlisted, so a 403 indicates lack of access. It also mentions using dryRun to preview requests. However, it does not explicitly state when not to use or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_create_mediation_groupCreate mediation groupA
Destructive

Create a mediation group (v1beta, allowlisted). targeting and mediationGroupLines follow the AdMob MediationGroup schema; supply them as objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNo
dryRunNoIf true, validate the inputs and return the exact API request that would be sent WITHOUT executing it. Default false: the operation runs after the MCP client asks you to confirm.
targetingNoMediationGroupTargeting object (platform, format, adUnitIds, targetedRegionCodes, ...).
displayNameYes
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.
mediationGroupLinesNoMap of line id -> MediationGroupLine object.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructive hint, and the description adds behavioral context about the dryRun parameter, including the confirmation flow. However, it does not disclose potential side effects or irreversible changes beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences, front-loaded with the purpose, and every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with 6 parameters and nested objects, the description covers key structural guidance but lacks explanation of return values, prerequisites (e.g., access requirements), or side effects for a destructive operation. Output schema is missing, and the description does not address this gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning for dryRun (validation mode), targeting and mediationGroupLines (supply as objects following schema), and publisherId (format/defaults). With 67% schema coverage, these additions compensate well, though some parameters like displayName lack extra context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a mediation group' with the API version and allowlist status, specifying the verb and resource. It differentiates from siblings like 'admob_update_mediation_group' but could be more explicit about the overall function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by mentioning the MediationGroup schema and providing parameters, but does not explicitly state when to use this tool versus alternatives like 'admob_update_mediation_group' or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_get_accountGet AdMob accountA
Read-only

Get details for one AdMob publisher account (publisher id, reporting time zone, currency code).

ParametersJSON Schema
NameRequiredDescriptionDefault
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds value by specifying the exact details returned (publisher id, time zone, currency code). No contradictions; it could mention error handling but is sufficient given annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, 16 words, that efficiently conveys purpose and output without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one optional parameter, readOnly and openWorld annotations, and no output schema, the description is complete enough for an agent to understand its use and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description repeats some fields returned but does not add meaning beyond the schema's parameter description for publisherId.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it 'Get details for one AdMob publisher account' and lists specific fields returned (publisher id, time zone, currency code). This distinguishes it from sibling tool admob_list_accounts which lists multiple accounts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a single account, and the presence of admob_list_accounts as a sibling suggests when to use each. However, no explicit when-not-to-use or alternatives are given, though context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_list_accountsList AdMob accountsB
Read-only

List the AdMob publisher account for the signed-in credentials. The AdMob API returns only the account that was most recently signed in to from the AdMob UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNo
pageTokenNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's main behavioral addition is that only the most recently signed-in account is returned. This adds context beyond annotations but is not extensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at two sentences and front-loaded with the action. However, it sacrifices parameter explanation for brevity, which is a minor flaw.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with readOnly annotations, the description covers core behavior but lacks parameter details and output format clarity. The openWorldHint annotation is present but not explained, potentially causing confusion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the tool description does not mention the two parameters (pageSize, pageToken) at all, leaving the agent with no additional semantic guidance beyond the schema's basic constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists the AdMob publisher account, specifically the most recently signed-in one. This provides a precise verb-resource combination and distinguishes from sibling tools like get_account.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives like get_account. No context on scenario exclusions or prerequisites is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_list_adaptersList ad source adaptersA
Read-only

List the adapters for one ad source. An adapter is a platform-specific SDK implementation; its adapterId and adapterConfigMetadata are needed to create ad unit mappings.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNo
pageTokenNo
adSourceIdYesThe ad source id (from admob_list_ad_sources).
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, and the description confirms a read operation. It adds behavioral context by explaining the output's role in creating mappings, which is beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words, front-loading the core purpose and then adding necessary explanatory context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks output schema but the description explains what the output contains. Annotations cover safety. Could be more explicit about the list format but sufficient for the task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (2 of 4 parameters described). The description does not add extra parameter meaning beyond the schema; it focuses on output behavior. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List the adapters for one ad source' with a specific verb and resource. It explains the purpose of adapters and distinguishes this tool from siblings by focusing on adapter listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to get adapterId and adapterConfigMetadata for creating mappings) and provides context but does not explicitly list when not to use it or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_list_ad_sourcesList AdMob ad sourcesB
Read-only

List the mediation ad sources available to the AdMob account (each has an ad source id and title).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNo
pageTokenNo
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that the tool returns ad source id and title, but does not disclose pagination behavior or other traits. It adds some value but not rich behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 20 words, concise and front-loaded. It could be improved by adding pagination details, but it is not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is incomplete given the tool has 3 parameters, low schema coverage, and no output schema. It does not explain the return structure beyond id and title, nor does it mention pagination behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only publisherId has a description). The tool description does not explain pageSize or pageToken parameters, nor does it mention pagination. With low schema coverage, the description fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'mediation ad sources available to the AdMob account', and indicates what information is returned (id and title). It is distinct from sibling tools like admob_list_ad_units.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention scenarios where this tool would be inappropriate. The sibling list includes many similar list tools, but no differentiation is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_list_ad_unit_mappingsList ad unit mappingsC
Read-only

List the ad unit mappings under one ad unit.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNo
adUnitIdYesThe ad unit id (numeric portion or full id).
pageSizeNo
pageTokenNo
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and openWorldHint=true, which convey safety and potential large results. The description does not add behavioral details like pagination behavior, authorization needs, or rate limits. Minimal value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence without wasted words. However, it is too terse, lacking necessary detail for a tool with multiple parameters. Not excessively long, but under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, list operation, pagination), the description is incomplete. It does not explain pagination, sorting, or filtering. The absence of an output schema increases the need for description content, which is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 40% (2 of 5 parameters have descriptions). The tool description does not elaborate on any parameters. It does not compensate for the low schema coverage, leaving parameters like 'all', 'pageSize', 'pageToken' unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List', the resource 'ad unit mappings', and the scope 'under one ad unit'. It distinguishes from create/batch siblings, though not explicitly. The purpose is specific and not a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like admob_create_ad_unit_mapping. No mention of prerequisites, context, or when not to use. The description is purely declarative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_list_ad_unitsList AdMob ad unitsB
Read-only

List the ad units under an AdMob account, including ad unit id, parent app id, format, and ad types.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoFollow pagination and return all ad units (capped).
pageSizeNo
pageTokenNo
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that the tool lists ad units and includes specific fields, but does not disclose pagination behavior or any additional constraints beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. Every phrase adds value, making it highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has pagination parameters and no output schema, the description is incomplete. It does not explain how pagination works, the use of 'all' flag, or the return format, leaving the agent with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (descriptions for 'all' and 'publisherId' but not for 'pageSize' and 'pageToken'). The tool description does not add any parameter semantics beyond the schema, missing the opportunity to explain pagination parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists ad units under an AdMob account, specifies the verb 'List', the resource 'ad units', and details the fields included (id, parent app id, format, ad types). This distinguishes it from sibling tools like admob_list_ad_unit_mappings and admob_list_apps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives, nor when not to use it. It lacks context for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_list_appsList AdMob appsA
Read-only

List the apps under an AdMob account, including app id, platform, and approval state. Set all=true to page through every app (capped for output size).

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoFollow pagination and return all apps (capped).
pageSizeNo
pageTokenNo
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is known. The description adds value by specifying the fields returned and describing pagination behavior ('Set all=true to page through every app (capped for output size)'). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two well-structured sentences with front-loaded action. Every sentence adds value: first states purpose and included fields, second gives usage guidance on pagination. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with 4 parameters and no output schema, the description is fairly complete. It covers the basic functionality, fields returned, and pagination behavior. It could mention default behavior when all=false or other edge cases, but overall it provides sufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (two params have descriptions). The description explains the 'all' parameter's effect, which adds meaning beyond the schema's 'Follow pagination and return all apps (capped)'. However, it does not address 'pageSize' or 'pageToken', which are common but not described. The 'publisherId' parameter has a schema description but is not mentioned in the tool description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists apps under an AdMob account and specifies the fields included (app id, platform, approval state). The verb 'list' and resource 'apps' are specific. It doesn't explicitly distinguish from sibling list tools, but the name and resource difference make it clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on using 'all=true' for pagination with a cap, but does not explicitly state when to use this tool versus alternatives or when not to use it. Usage context is implied by the tool's resource focus.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_list_mediation_groupsList mediation groupsA
Read-only

List the mediation groups under an AdMob account. Supports an optional EBNF filter expression (fields such as DISPLAY_NAME, STATE, PLATFORM, FORMAT combined with AND).

ParametersJSON Schema
NameRequiredDescriptionDefault
allNo
filterNoOptional AdMob filter expression.
pageSizeNo
pageTokenNo
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only and open-world. The description adds behavioral context by detailing the EBNF filter expression and the fields supported (DISPLAY_NAME, STATE, PLATFORM, FORMAT), which helps the agent understand filtering behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with a parenthetical, front-loaded with the main action. It is concise without wasting words, though it could be more structured to highlight the filter feature.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the five parameters and no output schema, the description explains the listing action and filter but omits pagination details and parameter use cases. It is minimally complete but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 40% schema description coverage, the description adds some meaning for the 'filter' parameter (EBNF expression and fields) but does not clarify 'all', 'pageSize', 'pageToken', or 'publisherId' beyond what minimal schema descriptions exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('mediation groups under an AdMob account'). It differentiates from sibling tools like 'admob_create_mediation_group' by focusing on listing, and adds specificity with the optional EBNF filter expression and allowable fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for listing mediation groups, not creating or updating, but lacks explicit guidance on when to use this versus other list tools (e.g., list_ad_units). There is no mention of alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_run_campaign_reportRun AdMob campaign reportA
Read-only

Generate an AdMob campaign (App Campaigns) report. v1beta only. The date range is limited to 30 days and the response is a single set of rows (no streaming).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
endDateYesReport end date (inclusive), YYYY-MM-DD. Max range 30 days.
metricsYesMetrics (at least one). Allowed: IMPRESSIONS, CLICKS, CLICK_THROUGH_RATE, INSTALLS, ESTIMATED_COST, AVERAGE_CPI, INTERACTIONS.
startDateYesReport start date (inclusive), YYYY-MM-DD.
dimensionsNoDimensions. Allowed: DATE, CAMPAIGN_ID, CAMPAIGN_NAME, AD_ID, AD_NAME, PLACEMENT_ID, PLACEMENT_NAME, PLACEMENT_PLATFORM, COUNTRY, FORMAT.
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.
languageCodeNoLanguage code for localized values (default en-US).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. Description adds: 'date range limited to 30 days' and 'response is a single set of rows (no streaming)', which are useful behavioral details beyond annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no extraneous information. First sentence states purpose, second adds key constraints. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, high schema coverage, and readOnlyHint/openWorldHint annotations, description covers version, data range, and response format adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 86%, so baseline is 3. Description does not add meaning beyond schema; date range limit is already in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Generate an AdMob campaign (App Campaigns) report' with specific verb and resource. Differentiates from sibling tools like run_mediation_report by specifying 'campaign'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides version constraint 'v1beta only' and behavioral constraints (date range limit, single row set) but does not explicitly state when to use this vs alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_run_mediation_reportRun AdMob mediation reportA
Read-only

Generate an AdMob Mediation report (earnings and performance across mediated ad sources). Provide a date range, dimensions to group by, and one or more metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to include in this tool result (client-side cap to keep output small).
endDateYesReport end date (inclusive), YYYY-MM-DD.
metricsYesMetrics to report (at least one). Allowed: AD_REQUESTS, CLICKS, ESTIMATED_EARNINGS, IMPRESSIONS, IMPRESSION_CTR, MATCHED_REQUESTS, MATCH_RATE, OBSERVED_ECPM.
timeZoneNoReport time zone. The API currently supports only "America/Los_Angeles".
startDateYesReport start date (inclusive), YYYY-MM-DD.
dimensionsNoDimensions to group by. Allowed: DATE, MONTH, WEEK, AD_SOURCE, AD_SOURCE_INSTANCE, AD_UNIT, APP, MEDIATION_GROUP, COUNTRY, FORMAT, PLATFORM, MOBILE_OS_VERSION, GMA_SDK_VERSION, APP_VERSION_NAME, SERVING_RESTRICTION.
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.
maxReportRowsNoMaximum rows the API should generate (up to 100000).
sortConditionsNoOptional sort order for the returned rows.
dimensionFiltersNoOptional filters restricting rows to the given dimension values.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe read operation. The description adds context about the report scope (earnings and performance across mediated sources). While it doesn't elaborate on potential rate limits or data freshness, this is acceptable given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core purpose and required inputs. It is concise without waste. However, it could be more structured (e.g., separating purpose from usage hints), but remains effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters and no output schema, the description is somewhat brief. It adequately identifies the report type but does not hint at output structure or additional considerations like date range limitations. While schema coverage compensates, more context on report behavior (e.g., pagination) would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter well-documented including defaults, formats, and allowed values. The description adds minimal extra meaning beyond stating the need for date range, dimensions, and metrics, which is already clear from the schema. Thus baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates an AdMob Mediation report focusing on earnings and performance across mediated ad sources. It distinguishes from sibling tools like admob_run_campaign_report and admob_run_network_report by specifying 'mediation' report, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions providing a date range, dimensions, and metrics, which implies usage. However, it does not explicitly guide when to use this tool versus siblings like campaign or network reports, nor does it state prerequisites or exclusions. The readOnlyHint annotation is helpful but not utilized in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_run_network_reportRun AdMob network reportA
Read-only

Generate an AdMob Network report (first-party network earnings and performance). Provide a date range, dimensions to group by, and one or more metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to include in this tool result (client-side cap to keep output small).
endDateYesReport end date (inclusive), YYYY-MM-DD.
metricsYesMetrics to report (at least one). Allowed: AD_REQUESTS, CLICKS, ESTIMATED_EARNINGS, IMPRESSIONS, IMPRESSION_CTR, IMPRESSION_RPM, MATCHED_REQUESTS, MATCH_RATE, SHOW_RATE.
timeZoneNoReport time zone. The API currently supports only "America/Los_Angeles".
startDateYesReport start date (inclusive), YYYY-MM-DD.
dimensionsNoDimensions to group by. Allowed: DATE, MONTH, WEEK, AD_UNIT, APP, AD_TYPE, COUNTRY, FORMAT, PLATFORM, MOBILE_OS_VERSION, GMA_SDK_VERSION, APP_VERSION_NAME, SERVING_RESTRICTION.
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.
maxReportRowsNoMaximum rows the API should generate (up to 100000).
sortConditionsNoOptional sort order for the returned rows.
dimensionFiltersNoOptional filters restricting rows to the given dimension values.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds no further behavioral traits (e.g., potential large output, time limits), so it meets but does not exceed the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no waste. First sentence states purpose, second tells what to provide. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basic input requirements but omits details about the output format or how the report is returned. With 10 parameters and no output schema, a brief note on the result structure would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for each parameter. The description only adds a high-level summary (date range, dimensions, metrics), which is minimally helpful beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it generates an AdMob Network report for first-party network earnings and performance, distinguishing it from sibling report tools like campaign or mediation reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (for network reports) but does not explicitly compare to sibling tools like admob_run_campaign_report or admob_run_mediation_report, nor provides when-not-to-use scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_stop_ab_experimentStop mediation A/B experimentA
Destructive

Stop the running A/B experiment on a mediation group and pick the winning variant (v1beta, allowlisted). VARIANT_CHOICE_A keeps the original serving lines; VARIANT_CHOICE_B adopts the newly added lines.

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNoIf true, validate the inputs and return the exact API request that would be sent WITHOUT executing it. Default false: the operation runs after the MCP client asks you to confirm.
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.
variantChoiceYesWhich variant to keep: A (original) or B (new).
mediationGroupIdYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds context by explaining the effect of each variant choice (keeping original vs. adopting new lines), providing behavioral insight beyond what annotations offer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action, and each sentence adds necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 4 parameters, the description is missing details about post-action effects (e.g., whether experiment is immediately stopped), prerequisites, and ignores mediationGroupId. This leaves gaps for a fully informed agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%; the description adds value by explaining the meaning of variantChoice values ('keeps original' vs. 'adopts newly added lines'), which goes beyond the schema's enum. However, mediationGroupId lacks description in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool stops a running A/B experiment and picks a winning variant, identifying the verb 'stop' and the resource 'mediation group A/B experiment'. It distinguishes from sibling tool admob_create_ab_experiment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explicitly says when to use: when you have a running experiment and want to conclude it by selecting a variant. It does not provide explicit when-not-to-use or alternatives, but the context is clear and the sibling list includes the creation counterpart.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admob_update_mediation_groupUpdate mediation groupA
DestructiveIdempotent

Update a mediation group (v1beta patch, allowlisted). updateMask is required and selects which fields change; repeated fields are fully replaced. See the AdMob docs for supported field mask paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNoIf true, validate the inputs and return the exact API request that would be sent WITHOUT executing it. Default false: the operation runs after the MCP client asks you to confirm.
updateMaskYesComma-separated FieldMask of fields to update, e.g. "display_name,targeting.ad_unit_ids".
publisherIdNoAdMob publisher id or account resource name, e.g. "pub-1234567890123456" or "accounts/pub-1234567890123456". Defaults to ADMOB_PUBLISHER_ID, or the single account on the credentials.
mediationGroupYesPartial MediationGroup with the fields to update.
mediationGroupIdYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=false, destructiveHint=true, idempotentHint=true. The description adds useful context: it's a patch operation, updateMask is required, repeated fields are fully replaced, and it's 'allowlisted'. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences without redundancy. The first sentence states the purpose immediately. Every part adds value: method, updateMask requirement, replacement behavior, and reference to docs for mask paths.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters, high schema coverage, and annotations covering safety, the description is adequately complete. It explains key behavioral aspects (updateMask, repeated fields) but omits return value info (no output schema) and prerequisites, though these are partially covered by schema and context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, providing decent baseline. The description adds value by explaining updateMask behavior (required, selects fields, repeated fields replaced) beyond the schema's example. This helps the agent understand the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates a mediation group, specifies it uses v1beta patch, and distinguishes from create_mediation_group sibling. The verb 'update' and resource 'mediation group' are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for updating mediation groups but does not provide explicit guidance on when to use versus alternatives like create_mediation_group. No when-not-to-use or prerequisite information is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 19 tool updatesv0.1.0
    • First observedadmob_batch_create_ad_unit_mappings
    • First observedadmob_create_ab_experiment
    • First observedadmob_create_ad_unit
    • First observedadmob_create_ad_unit_mapping
    • First observedadmob_create_app
    • First observedadmob_create_mediation_group
    • First observedadmob_get_account
    • First observedadmob_list_accounts
    • First observedadmob_list_ad_sources
    • First observedadmob_list_ad_unit_mappings
    • First observedadmob_list_ad_units
    • First observedadmob_list_adapters
    • First observedadmob_list_apps
    • First observedadmob_list_mediation_groups
    • First observedadmob_run_campaign_report
    • First observedadmob_run_mediation_report
    • First observedadmob_run_network_report
    • First observedadmob_stop_ab_experiment
    • First observedadmob_update_mediation_group

TDQS

A3.5/5.0
Disambiguation4/5

Tools are generally distinct with clear actions targeting different entities, but the pair of create_ad_unit_mapping and batch_create_ad_unit_mappings overlap in purpose, causing minor ambiguity.

Naming Consistency5/5

All tools follow a consistent 'admob_verb_noun' pattern in snake_case, with verbs like list, create, update, run, stop, and get, making the set highly predictable.

Tool Count5/5

With 19 tools covering account, app, ad unit, mediation group, and reporting operations, the count is well-scoped for an AdMob management server, not too many or too few.

Completeness2/5

The set lacks delete operations for apps, ad units, and mediation groups, and missing updates for apps and ad units, leaving significant gaps that could hinder typical workflows.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server that provides seamless integration with Google Workspace, allowing operations with Google Drive, Docs, and Sheets through secure OAuth2 authentication.
    8
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server that provides unified access to Google Analytics 4 and Google Search Console data through real-time analytics queries.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A FastMCP-powered Model Context Protocol server for Google Ads API integration with automatic OAuth 2.0 authentication Connect Google Ads API directly to MCP Clients with seamless OAuth 2.0 authentication, automatic token refresh, GAQL querying, and keyword research capabilities.
    142
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Exposes the Google AdMob API as MCP tools for managing AdMob accounts, generating network and mediation reports, and listing apps and ad units.
    118
    3
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jerry2247/admob-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server