ads-mcp
Provides tools for managing and reporting on AdMob ad accounts, including listing accounts, apps, ad units, and generating network/mediation reports with full dimension, metric, filter, and sort control.
Provides tools for querying Huawei Petal Ads publisher reports, including daily earnings trends, per-app/placement breakdowns, and customizable group-by/filter/order/pagination reports.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ads-mcpHow much did I earn from AdMob and Petal Ads yesterday?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ads-mcp
A Model Context Protocol server that puts your mobile ad revenue in one conversational interface: Google AdMob and Huawei Petal Ads (Publisher Service), side by side.
Ask Claude things like:
"How much did I earn across AdMob and Petal Ads last week?"
"Which AdMob ad units are underperforming?"
"Break down my Petal Ads revenue by app"
"Compare yesterday's eCPM by country"Tools
Tool | Network | Description |
| AdMob | List publisher accounts |
| AdMob | Account details (currency, timezone) |
| AdMob | List apps (paginated) |
| AdMob | List ad units (paginated) |
| AdMob | Network report with full dimension/metric/filter/sort control |
| AdMob | Mediation report (per ad-source performance) |
| Petal Ads | Publisher report with full group-by/filter/order/pagination control |
| Petal Ads | Daily earnings trend + totals for a date range |
| Petal Ads | Per-app (and per-placement) earnings breakdown |
| Both | Combined totals + daily breakdown across both networks |
| Both | Check which networks are configured/authorized |
All tools are read-only — this server never mutates your ad accounts.
Related MCP server: Google Ads MCP Server (Fork with Write Tools)
Prerequisites
Node.js 18+
For AdMob: a Google Cloud project with the AdMob API enabled and an OAuth 2.0 Desktop app client
For Petal Ads: a HUAWEI Developers OAuth client with the Publisher Service Reporting API (Ads Kit) enabled
Setup
1. Install and build
git clone https://github.com/qalvinahmad/ads-mcp.git
cd ads-mcp
npm install
npm run build
cp .env.example .env2. Google AdMob
Open Google Cloud Console → select/create a project.
Enable the AdMob API in the API Library.
APIs & Services → Credentials → Create Credentials → OAuth client ID → Desktop app, then download the JSON.
Save it as
secrets/client_secret.json(or pointADMOB_CLIENT_SECRET_PATHin.envat it).Run the one-time authorization (opens a browser):
npm run auth:admobIf your OAuth consent screen is in "Testing" status, add your Google account as a test user (otherwise you'll get an authorization error, and refresh tokens expire after 7 days).
3. Huawei Petal Ads
Open HUAWEI Developers Console → HMS API Services → Credentials.
Create an OAuth 2.0 client ID (server type) with the Ads Kit / Publisher Service Reporting API enabled.
Put the credentials in
.env:
HUAWEI_CLIENT_ID=your_client_id
HUAWEI_CLIENT_SECRET=your_client_secretOr, if you keep them as a single combined key:
HUAWEI_ADS_API_KEY=client_id:client_secretNo browser flow is needed — Petal Ads uses OAuth client-credentials (server-to-server).
4. Verify
npm run doctor # checks both networks; tests the Huawei token endpoint
npm run smoke # boots the server and validates the MCP handshake + tool listRegister with an MCP client
Claude Code (CLI)
claude mcp add ads -- node /absolute/path/to/ads-mcp/dist/index.jsClaude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"ads": {
"command": "node",
"args": ["/absolute/path/to/ads-mcp/dist/index.js"]
}
}
}Cursor / Windsurf / Cline
"ads": {
"command": "node",
"args": ["/absolute/path/to/ads-mcp/dist/index.js"]
}Configuration is read from ads-mcp/.env automatically (the server resolves it relative to its own install directory, not the client's working directory).
Environment variables
Variable | Default | Description |
|
| Google OAuth Desktop-app client JSON |
|
| Cached authorized user token |
|
| Localhost port for the one-time OAuth flow |
| — | Huawei OAuth client (preferred) |
| — | Combined |
|
| Default report currency (CNY, USD, EUR) |
| Huawei production | Override for testing |
| Huawei production | Override for testing |
Security notes
secrets/and.envare gitignored — never commit credentials.The AdMob token file is written with
0600permissions.Huawei access tokens are cached in memory only.
All tools are read-only against both ad networks.
API references
AdMob API v1 (
admob.googleapis.com/v1)Petal Ads Publisher Service Reporting API (
ads.cloud.huawei.com/openapi/monetization/reports/v1/publisher)
Credits
AdMob client and OAuth flow adapted from willhou/admob-mcp (MIT).
Petal Ads integration follows the official HMS-Core/hms-ads-severdemo reference.
License
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/qalvinahmad/ads-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server