Skip to main content
Glama
jimsimoy

AdMob MCP

AdMob MCP — Google AdMob Reporting for AI Clients

6 read-only tools for the Google AdMob API — accounts, apps, ad units, and network/mediation performance reports — for Claude Desktop, Claude Code, and any MCP client.

by Jan Ivan Simoy


What is this?

AdMob MCP is a Model Context Protocol server that gives AI assistants structured, read-only access to the Google AdMob API — publisher accounts, apps, ad units, and performance reports broken down by whatever dimensions you ask for (date, app, country, ad source, and more).

It deliberately covers only the stable, read-oriented v1 surface. The AdMob API's v1beta also supports creating apps/ad units and managing mediation groups — those touch monetization configuration and billing directly, so they stay a human action in the AdMob UI, not something this server automates.

Supported platform: any MCP client on macOS, Linux, or Windows with Python 3.12+.


Related MCP server: AdSense MCP

Tools

Category

Tools

What you can do

Accounts

2

List accounts accessible to this credential, fetch one by name

Apps & Ad Units

2

List apps and ad units under an account

Reports

2

Generate a network (own ad serving) report, or a mediation (cross ad-source) report, by any combination of dimensions and metrics

Tool

Description

list_accounts

List AdMob publisher accounts accessible to this credential

get_account

Fetch one account's details by name (accounts/pub-...)

list_apps

List apps under an account

list_ad_units

List ad units under an account

generate_network_report

Network performance report — earnings, impressions, clicks, requests, CTR, RPM, match rate, by DATE/APP/COUNTRY/PLATFORM/etc.

generate_mediation_report

Mediation performance report — same metrics broken down by AD_SOURCE / MEDIATION_GROUP as well


Requirements

Requirement

Version

Python

3.12 or later

uv

any recent version

Google Cloud project

with the AdMob API enabled

OAuth client

type "Desktop app" (see below — AdMob does not support service accounts)


Authentication

AdMob does not support service-account credentials — every call must be authorized by a real Google account via OAuth 2.0. Setup:

  1. In Google Cloud Console, create/select a project and enable the AdMob API (APIs & Services → Library).

  2. Configure the OAuth consent screen (user type "External"; "Testing" status with yourself added as a test user is enough for personal use).

  3. Create an OAuth client ID of type Desktop app (APIs & Services → Credentials). Note the client ID and secret.

  4. Run the one-time interactive authorization:

    uv run admob-mcp-authorize

    This opens a browser for Google sign-in and AdMob consent, then prints a refresh token.

  5. Put all three values in .env (see Installation).

The server only ever refreshes this token into short-lived access tokens — it never re-runs the interactive flow itself. If the refresh token is ever revoked (visible/revocable at myaccount.google.com/permissions), re-run step 4.

Scopes requested: admob.readonly (account/app/ad-unit data) and admob.report (performance reports).


Installation

git clone https://github.com/jimsimoy/admob-mcp.git
cd admob-mcp
uv sync
cp .env.example .env   # fill in ADMOB_CLIENT_ID, ADMOB_CLIENT_SECRET, ADMOB_REFRESH_TOKEN

Run directly:

uv run admob-mcp

Client Setup

{
  "mcpServers": {
    "admob": {
      "command": "uv",
      "args": ["--directory", "/path/to/admob-mcp", "run", "admob-mcp"],
      "env": {
        "ADMOB_CLIENT_ID": "...",
        "ADMOB_CLIENT_SECRET": "...",
        "ADMOB_REFRESH_TOKEN": "..."
      }
    }
  }
}

Restart your MCP client after saving. The 6 AdMob tools will appear automatically.


Usage Examples

See what accounts and apps are visible

List my AdMob accounts, then list the apps under the first one

Check last week's earnings by app

Generate a network report for accounts/pub-1234567890123456 from 2026-08-30 to
2026-09-05, dimensions DATE and APP, metrics ESTIMATED_EARNINGS and IMPRESSIONS

Compare ad source performance

Generate a mediation report for the same account and date range, broken down
by AD_SOURCE

Security

  • Credentials (ADMOB_CLIENT_ID, ADMOB_CLIENT_SECRET, ADMOB_REFRESH_TOKEN) are read from the environment only — .env, .env.* (except .env.example), and token.json are gitignored.

  • The refresh token is a long-lived credential with read access to your AdMob account and revenue data. Treat it like a password; revoke it at myaccount.google.com/permissions if it's ever exposed.

  • This is a read-only server by design — it does not expose the v1beta write endpoints (creating apps/ad units, mediation group management).


Project Structure

src/admob_mcp/
  server.py     # MCP server entry point and tool definitions
  client.py     # AdMob API client (pagination, report-stream parsing)
  auth.py       # OAuth access-token refresh
  authorize.py  # One-time interactive OAuth consent flow (admob-mcp-authorize)

The server communicates over stdio using JSON-RPC 2.0, the standard MCP transport.


A note on testing

This was built directly from Google's official AdMob API v1 reference (endpoints, OAuth scopes, and the exact dimension/metric enums for both report types), with token refresh/caching, pagination, and report-response parsing covered by tests against a mocked API. It has also been verified end-to-end against a live AdMob account: the OAuth loopback flow, list_accounts, list_apps, list_ad_units, generate_network_report (both an empty-result case and a populated one, confirming row and footer parsing), and generate_mediation_report all returned correct real data.


License

MIT — free to use, modify, and distribute.


Report a Bug · Request a Feature

Available Tools

6 tools
generate_mediation_reportA

Generate an AdMob mediation performance report (earnings across ad sources).

account_name looks like 'accounts/pub-1234567890123456'. start_date/end_date
are 'YYYY-MM-DD', inclusive.

dimensions default to ["DATE", "AD_SOURCE"]; valid values: 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.

metrics default to ["ESTIMATED_EARNINGS", "IMPRESSIONS", "CLICKS"]; valid
values: AD_REQUESTS, CLICKS, ESTIMATED_EARNINGS, IMPRESSIONS,
IMPRESSION_CTR, MATCHED_REQUESTS, MATCH_RATE, OBSERVED_ECPM.
ParametersJSON Schema
NameRequiredDescriptionDefault
metricsNo
end_dateYes
dimensionsNo
start_dateYes
account_nameYes
max_report_rowsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations present, the description carries the full burden for behavioral transparency. It indicates that the tool generates a report and lists valid query values, but it never states whether the operation is read-only, whether it has side effects, or how results are returned and paginated.

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 compact and well structured: a one-line purpose followed by short parameter, default, and value lists. There are no redundant sentences or filler.

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 combination of description and input schema provides enough to make a basic call: required parameters are formatted, defaults and valid values are listed, and an output schema exists. It falls short only on max_report_rows semantics and report-shaping details such as pagination or timezone.

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 explains the format of account_name, start_date, and end_date, and enumerates valid and default values for dimensions and metrics, covering most parameters. max_report_rows is left without any explanation, and the meaning of individual dimension or metric values is not expanded.

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 opens with a specific verb and resource: 'Generate an AdMob mediation performance report,' and the parenthetical clarifies it covers earnings across ad sources. This is enough to distinguish it at a high level from sibling reporting tools.

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 includes concrete usage guidance: account_name format, inclusive date format, and defaults for dimensions and metrics. It does not explicitly state when to choose this tool over generate_network_report, so some situational guidance is missing.

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

generate_network_reportA

Generate an AdMob network (own ad serving) performance report.

account_name looks like 'accounts/pub-1234567890123456'. start_date/end_date
are 'YYYY-MM-DD', inclusive.

dimensions default to ["DATE", "APP"]; valid values: DATE, MONTH, WEEK,
AD_UNIT, APP, AD_TYPE, COUNTRY, FORMAT, PLATFORM, MOBILE_OS_VERSION,
GMA_SDK_VERSION, APP_VERSION_NAME, SERVING_RESTRICTION.

metrics default to ["ESTIMATED_EARNINGS", "IMPRESSIONS", "CLICKS",
"AD_REQUESTS"]; valid values: AD_REQUESTS, CLICKS, ESTIMATED_EARNINGS,
IMPRESSIONS, IMPRESSION_CTR, IMPRESSION_RPM, MATCHED_REQUESTS, MATCH_RATE,
SHOW_RATE.
ParametersJSON Schema
NameRequiredDescriptionDefault
metricsNo
end_dateYes
dimensionsNo
start_dateYes
account_nameYes
max_report_rowsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does add useful context: defaults for dimensions and metrics, and the full list of valid values for both. It also specifies the account_name format and inclusive date range. However, it does not explicitly state that this is a read-only operation, does not mention any side effects, rate limits, or authentication needs, and does not describe the output format beyond what the output schema would provide. This is a moderate disclosure given the absence of 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 well-organized: a clear purpose sentence, followed by parameter format notes, then defaults and valid values. Every line contributes necessary information, and it is front-loaded with the main purpose. There is no redundant phrasing, and it uses line breaks to group related details, making it easy to scan.

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 that an output schema exists, the description does not need to detail return values. It covers all required parameters' formats and the optional parameters' defaults and allowed values. It does not mention any prerequisites like the need for a valid account from list_accounts, but that is implicitly available through sibling tools. The only gap is the lack of explanation for max_report_rows, but overall it is sufficient for an agent to call the tool correctly.

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 schema has 0% description coverage, so the description must compensate. It does explain the format for account_name ('accounts/pub-1234567890123456') and start_date/end_date ('YYYY-MM-DD', inclusive). It provides defaults and valid values for dimensions and metrics, which is beyond the schema. However, it does not explain the max_report_rows parameter at all, leaving it ambiguous. Overall, it adds significant meaning for most parameters but misses one.

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 'Generate an AdMob network (own ad serving) performance report.' The verb 'generate' plus the specific resource 'network performance report' is precise, and the parenthetical '(own ad serving)' distinguishes it from the sibling generate_mediation_report. An agent can immediately understand what this tool does.

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 explicitly scopes to 'network (own ad serving)', which implies it is for own ad serving reports as opposed to mediation. It provides the account_name format and date format, which are essential for usage. However, it does not explicitly name the alternative generate_mediation_report or state when not to use this tool, relying on the agent to infer the distinction from the scope.

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

get_accountA

Fetch one account's details. account_name looks like 'accounts/pub-1234567890123456'.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It accurately describes a read-only 'Fetch' operation with no side effects, but it does not explicitly disclose permissions or confirm that no state changes occur. The description is not misleading, but it is minimal in its behavioral disclosure.

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 sentence with no redundant words. It conveys the essential purpose and parameter format efficiently, making it highly scannable for an agent.

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?

Since an output schema exists, not describing the return structure is acceptable. The description covers what the tool does and the parameter format. It omits potential error cases or prerequisites, but for such a simple get operation, that information is not critical.

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?

Although the schema provides no description, the tool description compensates by giving a concrete format example ('accounts/pub-1234567890123456'). This clarifies the expected pattern for the account_name parameter, exceeding the schema's bare type definition.

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 specific verb 'Fetch' and the resource 'account's details', distinguishing it from list_accounts by indicating it retrieves a single account. The example format for account_name further clarifies the target.

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 explicitly state when to use this tool versus the sibling tools (e.g., list_accounts). It implies usage when a specific account_name is known, but this is not stated directly, leaving the agent to infer the appropriate context.

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

list_accountsA

List AdMob publisher accounts accessible to this credential.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It mentions 'accessible to this credential,' which implies read-only scoping, but does not explicitly state that the operation is non-mutating. Given the list nature, it is reasonable to assume read-only, but the absence of an explicit statement prevents a perfect score.

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, concise sentence with no extraneous information. It is well-structured and front-loaded with the action and resource.

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 is complete enough for a simple list operation with no parameters. It does not specify the output format, but that is often unnecessary for basic tools and may be covered by an output schema (not shown). Overall, it provides sufficient context for an agent to understand the tool's purpose.

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 schema has no parameters, so the description adds meaning by defining the resource type and the scope ('accessible to this credential'). This is sufficient for a parameterless tool.

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 ('AdMob publisher accounts'), and it distinguishes itself from the sibling tool 'get_account' by implying a list-all operation rather than fetching a single account.

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 (to retrieve all accessible accounts) but does not explicitly state when to prefer this over get_account or other list tools. The context of sibling tools partially clarifies, but the description itself lacks direct guidance.

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

list_ad_unitsB

List ad units under an account. account_name looks like 'accounts/pub-1234567890123456'.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It states a list operation (implying read-only) but does not explicitly mention that it is safe, nor does it disclose any side effects, permissions, or output details. The provided account_name format is helpful but pertains to parameter semantics rather than behavior.

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 sentence that is front-loaded with the core action and includes the critical parameter format. There is no wasted wording, and it is appropriately concise for a simple tool.

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 tool is simple (one parameter) and has an output schema, so the description need not cover return values. However, it omits any mention of pagination, filtering, or read-only semantics. It is minimally adequate but could benefit from a note about the nature of the list (e.g., that it is read-only).

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 schema has zero description coverage for the single parameter, so the description must compensate. It provides the exact expected format of account_name ('accounts/pub-1234567890123456'), which is essential for correct invocation. This goes beyond the schema's bare type definition.

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 tool lists ad units under an account, with a specific verb and resource. It doesn't explicitly distinguish from sibling tools, but the resource (ad units) is distinct from accounts, apps, and reports, so it is understandable.

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 is provided on when to use this tool versus alternatives. It does not mention prerequisites, such as needing an existing account, nor does it contrast with other list/generate tools. The usage context is left entirely to inference.

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

list_appsA

List apps under an account. account_name looks like 'accounts/pub-1234567890123456'.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the operation is a list (read-only) and gives the account_name format, which is useful. However, it does not disclose pagination, ordering, or any other behavioral details. For a simple read operation, this is acceptable but minimal.

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 two short sentences with no filler. The key scope ('under an account') is front-loaded, and the parameter format is provided succinctly. Every word earns its place.

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 tool has an output schema, so return values are covered. The description is sufficient for a simple list operation with one parameter, given the sibling context. It could mention pagination or sorting, but those are minor for this use case.

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 0%, so the description must compensate. It does so by specifying the expected format of account_name ('accounts/pub-1234567890123456'), which adds meaningful guidance beyond the bare string type in the schema. This fully clarifies the single parameter.

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 apps under an account, with a specific resource and scope. It is distinct from siblings like list_accounts (accounts) and get_account (single account), so an agent can easily tell it apart.

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?

There is no explicit guidance on when to use this tool versus alternatives. The description implies it is for listing apps, but does not mention when not to use it or how it differs from list_accounts or list_ad_units. The agent must infer usage from the name and context.

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. 6 tool updatesv0.1.0
    • First observedgenerate_mediation_report
    • First observedgenerate_network_report
    • First observedget_account
    • First observedlist_accounts
    • First observedlist_ad_units
    • First observedlist_apps

TDQS

A4/5.0
Disambiguation5/5

Each tool maps to a distinct resource or action: accounts, apps, ad units, and two clearly differentiated report types (network vs. mediation). No meaningful overlap exists between tool purposes.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern: list_accounts, get_account, list_apps, list_ad_units, generate_network_report, generate_mediation_report. The pattern is predictable and uniform.

Tool Count5/5

Six tools is well-scoped for an AdMob read/reporting surface. Each tool earns its place without redundancy or bloat.

Completeness4/5

The surface covers account discovery, app/ad unit listing, and comprehensive network/mediation reporting. Minor gaps exist for detailed per-app or per-ad-unit lookups and mutation operations, but core reporting workflows are well covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Connects Google AdSense to MCP clients like Claude and Cursor, enabling earnings summaries, detailed reports, site status checks, and more via natural language.
    29
    5
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol (MCP) server that gives Claude Desktop direct access to your Google AdSense account. Ask plain English questions about your revenue — no dashboard required.
    10
    18
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    MCP server for Google AdSense management. Create ad units, generate framework-specific ad code, manage earnings reports, and automate ads.txt — all from your AI assistant.
    12
    18
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A read-only MCP server for querying Google Ads data using GAQL, enabling AI assistants to safely read campaign performance, ad groups, and keywords.
    12
    MIT

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/jimsimoy/admob-mcp'

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