mcpbeat Sign in

Ads MCP Server

local only

Ads MCP runs on your own machine — the client starts it, so there is no endpoint to ping. 42 installs a week from npm. Last commit 24 Oct 2026.

MCP server for Google Ads and Meta Ads. Wraps both APIs directly to manage campaigns.

Installs per day peak 12 · avg 4 · -14% w/w
a month agotoday
42
Installs / week
npm · @gudlab/ads-mcp
0
Stars
0 open issues
24 Oct 2026
Last commit
2 releases in 90 days
MIT
License
TypeScript

Nothing serious here today

Today is the operative word: we check Ads MCP every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
claude mcp add ads-mcp -e 'GOOGLE_ADS_CLIENT_ID=<GOOGLE_ADS_CLIENT_ID>' -e 'GOOGLE_ADS_CLIENT_SECRET=<GOOGLE_ADS_CLIENT_SECRET>' -e 'GOOGLE_ADS_DEVELOPER_TOKEN=<GOOGLE_ADS_DEVELOPER_TOKEN>' -e 'GOOGLE_ADS_REFRESH_TOKEN=<GOOGLE_ADS_REFRESH_TOKEN>' -e 'GOOGLE_ADS_CUSTOMER_ID=<GOOGLE_ADS_CUSTOMER_ID>' -e 'META_APP_ID=<META_APP_ID>' -e 'META_APP_SECRET=<META_APP_SECRET>' -e 'META_ACCESS_TOKEN=<META_ACCESS_TOKEN>' -e 'META_AD_ACCOUNT_ID=<META_AD_ACCOUNT_ID>' -- npx -y @gudlab/ads-mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "ads-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@gudlab/ads-mcp"
      ],
      "env": {
        "GOOGLE_ADS_CLIENT_ID": "<GOOGLE_ADS_CLIENT_ID>",
        "GOOGLE_ADS_CLIENT_SECRET": "<GOOGLE_ADS_CLIENT_SECRET>",
        "GOOGLE_ADS_CUSTOMER_ID": "<GOOGLE_ADS_CUSTOMER_ID>",
        "GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
        "GOOGLE_ADS_REFRESH_TOKEN": "<GOOGLE_ADS_REFRESH_TOKEN>",
        "META_ACCESS_TOKEN": "<META_ACCESS_TOKEN>",
        "META_AD_ACCOUNT_ID": "<META_AD_ACCOUNT_ID>",
        "META_APP_ID": "<META_APP_ID>",
        "META_APP_SECRET": "<META_APP_SECRET>"
      }
    }
  }
}
~/.codex/config.toml
[mcp_servers.ads-mcp]
command = "npx"
args = ["-y", "@gudlab/ads-mcp"]
env = { GOOGLE_ADS_CLIENT_ID = "<GOOGLE_ADS_CLIENT_ID>", GOOGLE_ADS_CLIENT_SECRET = "<GOOGLE_ADS_CLIENT_SECRET>", GOOGLE_ADS_DEVELOPER_TOKEN = "<GOOGLE_ADS_DEVELOPER_TOKEN>", GOOGLE_ADS_REFRESH_TOKEN = "<GOOGLE_ADS_REFRESH_TOKEN>", GOOGLE_ADS_CUSTOMER_ID = "<GOOGLE_ADS_CUSTOMER_ID>", META_APP_ID = "<META_APP_ID>", META_APP_SECRET = "<META_APP_SECRET>", META_ACCESS_TOKEN = "<META_ACCESS_TOKEN>", META_AD_ACCOUNT_ID = "<META_AD_ACCOUNT_ID>" }
.cursor/mcp.json
{
  "mcpServers": {
    "ads-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@gudlab/ads-mcp"
      ],
      "env": {
        "GOOGLE_ADS_CLIENT_ID": "<GOOGLE_ADS_CLIENT_ID>",
        "GOOGLE_ADS_CLIENT_SECRET": "<GOOGLE_ADS_CLIENT_SECRET>",
        "GOOGLE_ADS_CUSTOMER_ID": "<GOOGLE_ADS_CUSTOMER_ID>",
        "GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
        "GOOGLE_ADS_REFRESH_TOKEN": "<GOOGLE_ADS_REFRESH_TOKEN>",
        "META_ACCESS_TOKEN": "<META_ACCESS_TOKEN>",
        "META_AD_ACCOUNT_ID": "<META_AD_ACCOUNT_ID>",
        "META_APP_ID": "<META_APP_ID>",
        "META_APP_SECRET": "<META_APP_SECRET>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "ads-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@gudlab/ads-mcp"
      ],
      "env": {
        "GOOGLE_ADS_CLIENT_ID": "<GOOGLE_ADS_CLIENT_ID>",
        "GOOGLE_ADS_CLIENT_SECRET": "<GOOGLE_ADS_CLIENT_SECRET>",
        "GOOGLE_ADS_CUSTOMER_ID": "<GOOGLE_ADS_CUSTOMER_ID>",
        "GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
        "GOOGLE_ADS_REFRESH_TOKEN": "<GOOGLE_ADS_REFRESH_TOKEN>",
        "META_ACCESS_TOKEN": "<META_ACCESS_TOKEN>",
        "META_AD_ACCOUNT_ID": "<META_AD_ACCOUNT_ID>",
        "META_APP_ID": "<META_APP_ID>",
        "META_APP_SECRET": "<META_APP_SECRET>"
      }
    }
  }
}

Put your own values in place of <GOOGLE_ADS_CLIENT_ID> (OAuth client ID from Google Cloud Console), <GOOGLE_ADS_CLIENT_SECRET> (OAuth client secret from Google Cloud Console), <GOOGLE_ADS_DEVELOPER_TOKEN> (Developer token from Google Ads API Center), <GOOGLE_ADS_REFRESH_TOKEN> (Refresh token minted via `pnpm google:auth`), <GOOGLE_ADS_CUSTOMER_ID> (Default Google Ads account ID, 10 digits, no dashes), <META_APP_ID> (Meta App ID from developers.facebook.com), <META_APP_SECRET> (Meta App secret), <META_ACCESS_TOKEN> (Long-lived System User access token with ads_management scope), <META_AD_ACCOUNT_ID> (Default Meta ad account ID, numeric, no act_ prefix). The author’s registry entry marks them as required.

Optional settings from the registry entry, left out of the block above: GOOGLE_ADS_LOGIN_CUSTOMER_ID (MCC account ID, only if the customer account is managed under one).

Alternatives to Ads MCP

same job, measured the same way
Google Adwords
by codechap

MCP server for Google Ads campaign and budget management

local only
G
Google Ads
by adramp

Google Ads MCP server — manage campaigns, keywords, and metrics.

answering
Adrex AI
by gauravapiscean

Open-source MCP server for Google Ads & Meta Ads — manage campaigns from any AI assistant.

54 installs/wk local only
AdWhiz — Google & Meta Ads MCP Server
by iamzifei

Google & Meta Ads management with 100+ tools. Audit, create, and optimize campaigns.

answering
uplads
by uplads

Ads MCP for Meta, Google Ads, TikTok, Snapchat and LinkedIn: stage launches and manage campaigns.

answering
Fullrun
by tuckerschreiber

Google Ads management for AI agents — diagnose, optimize, and manage campaigns.

41 installs/wk local only
Google Maps MCP Server
by cablate

18 Google Maps tools for AI agents — geocode, search, directions, weather, and more.

1 112 installs/wk local only
Google Forms MCP
by a1-x-tech

MCP server for the Google Forms API: create forms, manage questions, read responses and watches.

891 installs/wk local only

Ads MCP — questions

Answers built from our own checks of this server.

Why is there no uptime for Ads MCP?
Ads MCP runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the npm package @gudlab/ads-mcp was installed 42 times last week.
How do I connect Ads MCP?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It runs locally, so the command pulls @gudlab/ads-mcp straight from npm; nothing to host, nothing to sign up for.
How many people use Ads MCP?
The npm package @gudlab/ads-mcp was installed 42 times in the last week. Week over week that is -14%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Ads MCP open source?
Yes — it is published under the MIT licence, written in TypeScript and 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.