mcpField
A
admob-mcp-server

admob-mcp-server

本地服务
github.com/ParkSangGwon商业与营销612 周前更新

关于 admob-mcp-server

admob-mcp-server 将 Google AdMob API 的只读数据提供给 AI 助手,涵盖账户、应用、广告单元、报告和中介。报告会整理为表格,并将货币微单位转换为实际金额。

主要功能

  1. 01查询账户、应用和广告单元
  2. 02生成网络、中介及广告系列报告
  3. 03将报告整理为行表并转换金额
  4. 04按工具集筛选可用工具
  5. 05支持三种 Google 凭据方式

适用场景

  1. 01按国家或应用查看收入
  2. 02比较广告格式的 RPM
  3. 03分析中介广告来源的表现
  4. 04查看应用与广告单元清单

MCP 相关

它通过 MCP 向客户端提供 Google AdMob API 的只读工具,并支持按工具集启用功能。凭据与数据直接在本机和 Google 之间传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"parksanggwon-admob": {
"command": "npx",
"args": [
"-y",
"admob-mcp-server"
]
}
}
}
启动命令npx -y admob-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmadmob-mcp-server0.2.0

工具

9

收录的工具列表 · 更新于 2 周前

参数类型必填说明
pageSizeinteger否要返回的条目数量上限
pageTokenstring否先前响应中的 nextPageToken

详细介绍

AdMob MCP 服务

npm version CI license

English | 한국어

用日常语言询问 AI 助手有关 AdMob 应用和收入的问题:

  • “过去 7 天,我的应用赚了多少钱?按国家细分。”
  • “本月哪个广告变现来源的 eCPM 最高?”
  • “比较横幅广告与激励广告单元的 RPM。”
  • “列出我的应用及其广告单元。”

询问 Claude Code 过去 7 天各个 AdMob 应用的收入

这是适用于 Google AdMob API 的 Model Context Protocol (MCP) 服务。
它可与 Claude Code、Claude Desktop、Cursor、Gemini CLI 以及任何其他支持 MCP 的 AI 客户端配合使用。

架构

flowchart LR
    C["MCP client<br/>Claude Code · Claude Desktop · Cursor · Gemini CLI"]

    subgraph S["admob-mcp-server — runs on your machine"]
        direction TB
        T["9 read-only tools in 5 toolsets<br/>accounts · apps · adunits · reports · mediation<br/>(filtered by --toolsets)"]
        A["Credential resolver<br/>env vars → token.json → gcloud ADC"]
        R["Report flattener<br/>chunk stream → rows · micros → currency"]
    end

    G["Google AdMob API<br/>v1beta"]

    C <-->|"MCP over stdio"| T
    T --> A
    A <-->|"OAuth 2.0 / HTTPS"| G
    G -.->|"report chunks"| R
    R -.-> T

凭据和收入数据只会在你的设备与 Google 之间传输,中间没有任何第三方服务。

功能

  • 涵盖 AdMob API 向普通账号开放的所有功能 — 提供 9 个工具,覆盖账号、应用、广告单元、报告和变现(为什么没有写入工具)
  • 报告清晰易读 — 将流式报告响应整理成简单的行表,并将货币值(微单位)转换为实际货币单位
  • 专为只读而设计 — 登录时仅请求读取权限,因此服务无法更改 AdMob 账号中的任何内容
  • 工具集 — 仅启用所需的工具组,例如 --toolsets reports,accounts
  • 三种身份验证方式 — 一条命令即可在浏览器中登录(npx admob-mcp-server auth)、使用环境变量中的刷新令牌,或使用 gcloud Application Default Credentials
  • 内置分析提示词和报告规范参考资源

快速了解设置流程

一次性设置,大约需要 10 分钟:

步骤操作位置
1. Google Cloud 设置注册一个个人“应用”,以便 Google 允许你访问自己的数据浏览器
2. 登录运行一条命令并使用 Google 账号登录终端
3. 连接 AI 客户端添加一条配置并重启客户端终端
要求
  • Node.js 18 或更高版本 — 使用 node --version 检查;如果尚未安装,请从 nodejs.org 安装
  • 一个 AdMob 账号,以及拥有该账号的 Google 账号

设置

第 1 部分 — Google Cloud 设置

为什么需要这一步?
AdMob API 没有简单的 API 密钥——Google 要求每个访问你数据的程序都注册为一个“O​​Auth 应用”。
在这里,你要注册一个仅供自己使用的个人应用。
这是免费的,也无需设置结算信息。

  1. 创建或选择一个 Google Cloud 项目:console.cloud.google.com/projectcreate — 名称任意;也可以重复使用现有项目。
  2. 启用 AdMob API:console.cloud.google.com/apis/library/admob.googleapis.com → 检查顶部栏中是否已选中你的项目 → 启用。
  3. 配置 OAuth 同意屏幕:console.cloud.google.com/auth/overview — 首次访问时会打开一个简短的向导:
    • 应用名称:任意(例如 admob-mcp),并填写你的电子邮件作为支持/联系邮箱
    • 受众群体:外部
    • 完成向导 — 无需将应用提交给 Google 验证
    • 然后前往 受众群体 → 测试用户 → 添加用户,添加拥有你的 AdMob 账号的 Google 账号
  4. 创建 OAuth 客户端:console.cloud.google.com/apis/credentials → 创建凭据 → OAuth 客户端 ID
    • 应用类型:桌面应用
    • 创建后,点击 下载 JSON — 第 2 部分会用到这个文件

警告

同意屏幕处于测试模式时,Google 会在 7 天后使登录失效,因此你需要每周重新登录。
要避免这种情况,请发布应用(受众群体 → 发布应用)。
发布供自己使用的应用无需通过 Google 验证 — 登录时只会看到“此应用未经验证”的警告,这是正常的。

第 2 部分 — 登录

将下载的 JSON 文件移到服务查找该文件的位置,然后运行登录命令:

mkdir -p ~/.admob-mcp
mv ~/Downloads/client_secret_*.json ~/.admob-mcp/oauth_client.json

npx admob-mcp-server auth

(在 Windows 上,请在文件资源管理器中将文件移到 C:\Users\<you>\.admob-mcp\oauth_client.json,然后运行 npx 命令。)

浏览器会打开。
选择拥有你的 AdMob 账号的 Google 账号并允许访问。
如果看到**“Google 尚未验证此应用”**警告,那就是你在第 1 部分创建的应用 — 点击“继续”。
当终端显示 Setup complete 时,你的登录信息会保存到 ~/.admob-mcp/token.json,之后会重复使用。

登录请求 admob.readonly 和 admob.report 范围 — 仅有读取权限。

auth 命令的作用:

sequenceDiagram
    autonumber
    participant T as Terminal
    participant S as admob-mcp-server
    participant B as Browser
    participant G as Google

    T->>S: npx admob-mcp-server auth
    S->>S: read ~/.admob-mcp/oauth_client.json
    S->>B: open consent URL (loopback redirect, random port)
    B->>G: sign in & allow scopes
    G-->>S: authorization code → refresh token
    S->>S: save ~/.admob-mcp/token.json (reused for every later call)
高级:环境变量(无头模式 / CI)

如果你已有刷新令牌,则无需任何文件:

export GOOGLE_CLIENT_ID="....apps.googleusercontent.com"
export GOOGLE_CLIENT_SECRET="..."
export GOOGLE_REFRESH_TOKEN="..."
高级:gcloud 应用默认凭据

与 Google 官方 Analytics/Ads MCP 服务使用的模式相同:

gcloud auth application-default login \
  --scopes=https://www.googleapis.com/auth/admob.readonly,https://www.googleapis.com/auth/admob.report,https://www.googleapis.com/auth/cloud-platform \
  --client-id-file=path/to/oauth_client.json

凭据解析顺序:环境变量 → token.json(来自 auth)→ ADC。

第 3 部分 — 连接 AI 客户端

请从下方选择你的客户端。
MCP 服务会在客户端启动时加载,因此添加配置后请重启客户端。

Claude Code

claude mcp add admob -- npx -y admob-mcp-server

使用 claude mcp list 验证——你应该会看到 admob: ... - ✔ Connected。

Claude Desktop — 打开 Settings → Developer → Edit Config,这会打开 claude_desktop_config.json(macOS:~/Library/Application Support/Claude/,Windows:%APPDATA%\Claude\),然后添加:

{
  "mcpServers": {
    "admob": {
      "command": "npx",
      "args": ["-y", "admob-mcp-server"]
    }
  }
}

重启应用;admob 工具会出现在聊天输入框的工具菜单中。

Cursor — 将相同的 mcpServers 区块添加到 ~/.cursor/mcp.json,然后检查 Settings → MCP 中的 admob 是否已启用。

Gemini CLI — 将相同的 mcpServers 区块添加到 ~/.gemini/settings.json,然后在 CLI 中使用 /mcp 检查。

提示

如果你使用环境变量登录,请通过客户端的 env 区块传递这些变量(Claude Code:在 -- 前重复添加 --env KEY=value;JSON 配置:在 "args" 旁添加 "env": { ... } 对象)。

试用

你无需亲自调用工具——只需用自然语言提问,助手就会选择合适的工具。
可以试试这些问题:

  • “我的应用上周收入是多少?”
  • “按国家和应用拆分本月收入。”
  • “过去 30 天内,哪种广告格式的 RPM 最高?”
  • “我的中介效果如何?比较各广告来源的观察 eCPM。”
  • “列出我的应用及其广告单元。”

大多数客户端会在每次工具调用前征求你的许可,因此未经你批准不会运行任何内容。

配置

所有配置均为可选项——默认设置适用于单个 AdMob 账号。

环境变量
变量描述默认值
ADMOB_ACCOUNT发布商 ID(pub-XXXXXXXXXXXXXXXX)。仅当你的登录账号可访问多个账号时才需要自动发现
ADMOB_TOOLSETS要启用的工具集,以逗号分隔全部
ADMOB_CREDENTIALS_DIRoauth_client.json / token.json 所在目录~/.admob-mcp
ADMOB_OAUTH_CLIENT_FILEauth 使用的 OAuth 客户端 JSON 文件路径<credentials dir>/oauth_client.json
GOOGLE_CLIENT_IDOAuth 客户端 ID(环境变量登录时使用;也可供 auth 使用,以替代 JSON 文件)—
GOOGLE_CLIENT_SECRETOAuth 客户端密钥(环境变量登录时使用)—
GOOGLE_REFRESH_TOKENOAuth 刷新令牌(环境变量登录时使用)—
CLI 标志
标志描述
--toolsets <names>与 ADMOB_TOOLSETS 相同,例如 --toolsets reports,apps
--account <pub-id>与 ADMOB_ACCOUNT 相同
--client-file <path>与 ADMOB_OAUTH_CLIENT_FILE 相同(用于 auth)

CLI 标志的优先级高于环境变量。
在客户端配置中,标志应放在命令后面,例如 npx -y admob-mcp-server --toolsets reports。

工具

“工具”是 AI 助手可以代你调用的函数。
工具分为五个工具集;默认情况下均已启用:

工具集工具
accountslist_accounts, get_account
appslist_apps
adunitslist_ad_units
reportsgenerate_network_report, generate_mediation_report, generate_campaign_report
mediationlist_ad_sources, list_adapters

所有工具均为只读,并且需要 admob.readonly / admob.report 权限范围。

为什么没有写入工具

AdMob API 确实提供写入方法(adUnits.create、apps.create,以及整个 mediationGroups 资源),但 Google 将它们都标记为受限访问:

此方法的访问权限受限。如果你遇到 403 权限被拒绝错误,请联系你的客户经理以获取访问权限。

即使使用有效的 admob.monetization 令牌,普通发布者账号调用这些方法也会收到 PERMISSION_DENIED;同样的限制也会阻止调用 mediationGroups.list 和 adUnitMappings.list,尽管它们是读取操作。由于这些工具必须使用已列入许可名单的账号才能正常工作,因此我们不会提供这些工具:看到它们的助手会尝试调用并失败。请改在 AdMob 控制台中创建广告单元和中介组。

accounts
工具说明
list_accounts列出可访问的发布者账号——用于查找你的 pub-... ID
get_account获取账号详情:发布者 ID、报告币种、报告时区
apps
工具说明
list_apps列出已注册的应用,包括应用 ID、平台、商店链接和审核状态
adunits
工具说明
list_ad_units列出广告单元及其 ID、格式和所属应用
reports

所有报告工具都接受 startDate / endDate(YYYY-MM-DD)、metrics,以及可选的 dimensions、dimensionFilters、sortConditions、maxReportRows(默认值为 1000)、currencyCode。
响应为扁平表格;货币指标会从微单位转换为货币单位。

工具说明
generate_network_reportAdMob 网络表现:收入、展示次数、点击次数、匹配率、RPM 等
generate_mediation_report各广告来源的中介表现:收入、按 AD_SOURCE / MEDIATION_GROUP 划分的观测 eCPM
generate_campaign_report交叉推广活动统计数据(仅限最近 30 天):展示次数、点击次数、安装次数、费用

每种报告支持的维度/指标均通过 MCP 资源公开(助手可读取的参考文档):admob://reference/network-report-spec、mediation-report-spec、campaign-report-spec。

mediation
工具描述
list_ad_sources列出可用的广告变现调解广告来源(广告网络)及其 ID
list_adapters列出广告来源的适配器,包括所需的配置键

调解组和广告单元映射不在涵盖范围内——请参阅为什么没有写入工具。

提示词

提示词是现成的分析请求。
客户端会将它们显示为斜杠命令或提示词选择器(例如,Claude Code 中的 /top_performing_apps)。
所有提示词都接受可选的 days 参数:

提示词功能
top_performing_apps按收入对应用进行排名,并提供 RPM 和匹配率背景信息
revenue_summary显示每日收入趋势并标注异常
compare_ad_formats比较不同广告格式的收入和效率

安全与隐私

  • 服务完全在你的计算机上运行。
    你的数据只会在你的设备和 Google API 之间传输,不会经过任何第三方服务。
  • 两个文件会存储在本地,且只有你的用户帐户可以读取:~/.admob-mcp/oauth_client.json(你的 OAuth 应用)和 ~/.admob-mcp/token.json(你的登录凭据)。
  • 退出登录:删除 ~/.admob-mcp/token.json,并可选择在 myaccount.google.com/permissions 撤销应用的访问权限。
  • 无法修改任何内容:登录请求仅申请读取范围,且所有工具均为只读。

故障排除

安装与连接
command not found: npx / spawn npx ENOENT
  • 原因:未安装 Node.js,或客户端无法找到它。
  • 解决方法:从 nodejs.org 安装 Node 18+,然后重启客户端。
客户端中未显示服务
  • 原因:MCP 服务会在客户端启动时加载,或者服务启动失败。
  • 解决方法:先重启客户端。
    然后检查其 MCP 状态(Claude Code:claude mcp list,Gemini CLI:/mcp),并确保 npx -y admob-mcp-server 在终端中运行时没有报错。
登录与身份验证
"No usable Google credentials found"
invalid_grant / "token has been expired or revoked"
  • 原因:你的登录凭据已过期。
    如果同意屏幕处于测试模式,这种情况每 7 天就会发生一次。
  • 解决方法:重新运行 npx admob-mcp-server auth。
    若要避免再次发生,请发布应用(Audience → Publish app)。
浏览器登录时出现 access_denied
  • 原因:你选择的 Google 帐户不是同意屏幕的测试用户。
  • 解决方法:在 Audience → Test users 下添加该帐户,或发布应用。
"The publisher could not be authenticated"
  • 原因:你登录使用的 Google 帐户没有有效的 AdMob 帐户。
  • 解决方法:重新运行 npx admob-mcp-server auth,并在帐户选择器中选择拥有 AdMob 帐户的帐户。
API 错误
403 PERMISSION_DENIED
  • 原因:未启用 AdMob API、登录时使用了错误的 Google 帐户,或令牌是在范围变更前生成的。
  • 解决方法:检查以下事项:
    1. 在与 OAuth 客户端相同的项目中启用了 AdMob API
    2. 你使用拥有 AdMob 帐户的帐户登录
    3. 你的令牌包含 admob.readonly 和 admob.report 范围——重新运行 npx admob-mcp-server auth 以刷新令牌
429 RESOURCE_EXHAUSTED
  • 原因:已达到 AdMob API 配额(使用限制)。
  • 解决方法:稍后重试,或缩小请求范围——缩短日期范围、减少维度。
“找到多个 AdMob 账号”
  • 原因:你的 Google 登录账号可以访问多个发布商账号。
  • 解决方法:设置 ADMOB_ACCOUNT=pub-...(使用 list_accounts 查找 ID)。

开发

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

# debug with the MCP Inspector
npm run inspect

要在客户端中运行本地构建,请将其指向已构建的入口文件,而不是 npx:node /path/to/admob-mcp-server/dist/index.js。

发布:推送 v* 标签会运行 CI,并使用 provenance 发布到 npm(参见 .github/workflows/release.yml)。

贡献

欢迎提交问题和拉取请求。
对于较大的改动,请先提交问题,讨论方向。
请确保 npm run lint、npm run format:check 和 npm test 均通过。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。