A production-grade collection of Model Context Protocol (MCP) servers for performance marketing. Manage ad campaigns, analyze traffic, audit tracking, and report on performance -- all through natural language via Claude.
Built by practitioners running real ad spend across Google, Meta, Microsoft, LinkedIn, and Reddit.
| MCP Server | Platform | Tools | ~Context cost | Install |
|---|---|---|---|---|
| mcp-google-ads | Google Ads | 34 | ~14K tokens | npm install mcp-google-ads |
| mcp-bing-ads | Microsoft Advertising | 10 | ~4K tokens | npm install mcp-bing-ads |
| mcp-linkedin-ads | LinkedIn Ads | 7 | ~3K tokens | npm install mcp-linkedin-ads |
| mcp-reddit-ads | Reddit Ads | 18 | ~7K tokens | npm install mcp-reddit-ads |
| meta-ads-mcp | Meta (Facebook/Instagram) | 28 | ~11K tokens | pip install meta-ads-mcp |
| mcp-ga4 | Google Analytics 4 | 9 | ~4K tokens | npm install mcp-ga4 |
| mcp-google-gsc | Google Search Console | 4 | ~2K tokens | npm install mcp-google-gsc |
| mcp-gtm-ga4 | Google Tag Manager + GA4 | 14 | ~6K tokens | npm install mcp-gtm-ga4 |
124 tools across 8 platforms. 7 TypeScript servers on npm, 1 Python server on PyPI.
Don't install all eight. Each MCP server's tool schemas are loaded into Claude's context window on every conversation. Installing the full suite adds ~50K tokens of overhead before you type a single message — about 25% of a 200K context window on Claude Desktop, which doesn't yet support deferred tool loading.
Pick the platforms you actually use. The suite is designed to be additive, not all-or-nothing.
Google-only practitioner (~24K tokens)
mcp-google-ads + mcp-ga4 + mcp-google-gsc
Cross-channel paid media manager (~36K tokens)
mcp-google-ads + meta-ads-mcp + mcp-ga4 + mcp-google-gsc
Full agency stack — only if you actually run all five ad platforms (~50K tokens)
All eight servers
- Estimates assume ~400 tokens per tool schema (name + description + parameters). Actual cost varies by tool complexity.
- Claude Code users: tool schemas are loaded on demand via Tool Search starting in late 2025, so the practical cost is significantly lower (~1K per server for names, full schemas fetched as needed). The numbers above are the worst case (Claude Desktop, OpenAI clients, Cursor, etc.).
- Disable servers per project: Use a project-scoped
.mcp.json(in your repo root) to load only the MCPs relevant to that client or workflow, rather than enabling everything globally.
Campaign Management -- Create, pause, update, and monitor campaigns across Google, Meta, Microsoft, LinkedIn, and Reddit from a single conversation.
Performance Analysis -- Pull spend, conversions, CPA, ROAS, and custom breakdowns. Compare across platforms without switching between UIs.
Search Term Auditing -- Review search queries, add negatives, pause underperformers. Works across Google Ads and Microsoft Advertising.
Audience Targeting -- Search interests, behaviors, demographics, and geo targets. Estimate audience sizes before launching.
Analytics & Tracking -- Query GA4 reports (historical and realtime), inspect URLs in Search Console, audit GTM consent compliance.
Tag Management -- List, create, and update GTM tags. Audit consent settings across all tags. Preview changes in sandbox before publishing.
- Node.js 18+ (for TypeScript servers)
- Python 3.10+ (for meta-ads-mcp only)
- API credentials for each platform you want to use
Each server is standalone. Install only what you need — see Choose What You Need above.
# Ad platforms — pick what you actually run
npm install mcp-google-ads
npm install mcp-bing-ads
npm install mcp-linkedin-ads
npm install mcp-reddit-ads
pip install meta-ads-mcp
# Analytics & tracking — pick what you actually use
npm install mcp-ga4
npm install mcp-google-gsc
npm install mcp-gtm-ga4Add servers to your .mcp.json:
{
"mcpServers": {
"google-ads": {
"command": "npx",
"args": ["mcp-google-ads"],
"env": {
"GOOGLE_ADS_CLIENT_ID": "your-client-id",
"GOOGLE_ADS_CLIENT_SECRET": "your-client-secret",
"GOOGLE_ADS_REFRESH_TOKEN": "your-refresh-token",
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-dev-token",
"GOOGLE_ADS_CUSTOMER_ID": "123-456-7890"
}
},
"ga4": {
"command": "npx",
"args": ["mcp-ga4"],
"env": {
"GA4_PROPERTY_ID": "your-property-id",
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account.json"
}
},
"meta-ads": {
"command": "meta-ads-mcp",
"env": {
"META_ACCESS_TOKEN": "your-access-token",
"META_APP_ID": "your-app-id"
}
}
}
}Security: Never share your .mcp.json file or commit it to git -- it may contain API credentials. Add .mcp.json to your .gitignore.
See each server's README for full configuration details.
All TypeScript servers share a consistent architecture:
- @modelcontextprotocol/sdk for MCP protocol handling
- Cockatiel for resilience (retry with exponential backoff, circuit breaker, 30s timeout)
- Pino for structured JSON logging
- 200KB response truncation to prevent context window overflow
- Error classification into auth, rate limit, and service errors with actionable messages
- Safe by default -- write operations create items in PAUSED state
User <-> Claude <-> MCP Server <-> Platform API
|
Resilience Layer
(retry, circuit breaker, timeout)
mcp-google-ads -- The most comprehensive server. 34 tools including MCC (Multi-Client Center) support, GAQL queries, auto-context detection from working directory, and full campaign/keyword/ad management. Safe-by-default with approval workflow for activations.
mcp-bing-ads -- 10 tools for Microsoft Advertising. Campaign and keyword performance reports with CSV parsing from Bing's ZIP format. Shared negative keyword list management.
mcp-linkedin-ads -- 7 tools for LinkedIn Campaign Manager. Campaign, ad group, and creative management with performance reporting.
mcp-reddit-ads -- 18 tools for Reddit Ads API v3. Full CRUD for campaigns, ad groups, and ads. Subreddit and interest targeting. Budget values in dollars (auto-converted to microcurrency).
meta-ads-mcp -- 28 tools for Meta (Facebook/Instagram) Ads. Third-party server by Pipeboard. Supports campaign creation, audience targeting, creative management, and performance insights.
mcp-ga4 -- 9 tools for Google Analytics 4. Historical reports, realtime data, custom dimension/metric management. Dual config mode: single-property via env vars or multi-client via config.json.
mcp-google-gsc -- 4 tools for Google Search Console. Search analytics with dimension filters (query, page, device, country), URL inspection for indexing status, and site listing.
mcp-gtm-ga4 -- 14 tools combining Google Tag Manager and GA4. Tag/trigger/variable management, consent compliance auditing, workspace preview and versioning. Sandbox safety prevents accidental production changes.
Each platform requires its own API credentials. Here's where to get them:
| Platform | Credential Type | Where to Get It |
|---|---|---|
| Google Ads | OAuth + Developer Token | Google Ads API Center |
| Microsoft Ads | OAuth via Azure AD | Azure App Registrations |
| LinkedIn Ads | OAuth App | LinkedIn Developer Portal |
| Reddit Ads | OAuth App | reddit.com/prefs/apps |
| Meta Ads | Access Token + App ID | Meta Developer Portal |
| GA4 | Service Account | Google Cloud Console |
| Search Console | Service Account | Same as GA4 |
| GTM | Service Account | Same as GA4 |
Each server has its own GitHub repository. File issues and PRs there:
All first-party servers are MIT licensed. meta-ads-mcp is BUSL-1.1 (see its repo for details).
Built by Mark Harnett at Drak Marketing. These tools are used daily to manage real ad spend across multiple clients.