A comprehensive Model Context Protocol (MCP) server providing Google Ads API integration. This tool enables you to manage Google Ads campaigns, keywords, ads, conversions, and performance metrics programmatically.
This MCP server is designed to integrate Google Ads API with Claude Desktop or other MCP-compatible applications. Written in TypeScript, it serves as a powerful bridge for programmatically managing your Google Ads accounts.
- Account Management: Manage multiple Google Ads accounts
- Campaign Creation & Management: Search, Display, Shopping, Video campaign types
- Ad Group Management: Bidding strategies and budget control
- Keyword Management: Add/edit positive and negative keywords
- Performance Tracking: Detailed metrics and reporting
- Conversion Tracking: Conversion action management
list_campaigns- List all campaigns with performance metricscreate_campaign- Create new campaign (Search, Display, Shopping, Video, Multi-channel)update_campaign- Update campaign settings (name, status, budget)
list_ad_groups- List ad groups with metricscreate_ad_group- Create new ad groupupdate_ad_group- Update ad group settingsget_ad_group- Get specific ad group details
list_ads- List ads with performance datacreate_responsive_search_ad- Create responsive search adsupdate_ad_status- Update ad status
list_keywords- List keywords with performance dataadd_keywords- Add new keywords to ad groupadd_negative_keywords- Add negative keywords (campaign or ad group level)update_keyword- Update keyword status and bid
list_conversions- List all conversion actionscreate_conversion- Create new conversion actionupdate_conversion- Update conversion settings
get_account_performance- Account-level performance metricsget_campaign_performance- Campaign performance report (daily segmentation)get_ad_group_performance- Ad group performance reportget_search_terms_report- Search terms analysis
get_shopping_performance- Shopping campaign performanceget_product_performance- Product-based performance analysis
list_accounts- List all accessible Google Ads accountsget_account_hierarchy- Show Manager/Client account relationships
- Node.js (v18 or higher)
- npm or yarn
- Google Ads API access
- Claude Desktop (for MCP integration)
git clone https://github.com/yourusername/google-ads-mcp.git
cd google-ads-mcpnpm install- Visit https://developers.google.com/google-ads/api/docs/get-started/dev-token
- Sign in with your Google Ads account
- Apply for a developer token
- Go to https://console.cloud.google.com/
- Create a new project or select existing one
- Navigate to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Select "Desktop app" as application type
- Save your Client ID and Client Secret
- Use Google OAuth2 Playground: https://developers.google.com/oauthplayground/
- Or use helper scripts from Google Ads API examples
Copy .env.example to .env and fill in your values:
cp .env.example .envEdit .env file:
GOOGLE_ADS_CLIENT_ID=your-client-id-here
GOOGLE_ADS_CLIENT_SECRET=your-client-secret-here
GOOGLE_ADS_DEVELOPER_TOKEN=your-developer-token-here
GOOGLE_ADS_REFRESH_TOKEN=your-refresh-token-here
GOOGLE_ADS_CUSTOMER_ID=your-customer-id-here
# For manager accounts (optional)
GOOGLE_ADS_LOGIN_CUSTOMER_ID=your-login-customer-id-herenpm run buildTo add the MCP server to Claude Desktop:
- Open Claude Desktop settings
- Use the example from
claude-desktop-config.example.jsonto configure:
{
"mcpServers": {
"google-ads": {
"command": "node",
"args": ["/absolute/path/to/google-ads-mcp/dist/index.js"],
"env": {
"GOOGLE_ADS_CLIENT_ID": "your-client-id",
"GOOGLE_ADS_CLIENT_SECRET": "your-client-secret",
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-developer-token",
"GOOGLE_ADS_REFRESH_TOKEN": "your-refresh-token",
"GOOGLE_ADS_CUSTOMER_ID": "your-customer-id"
}
}
}
}- Restart Claude Desktop
npm run devnpm run buildnpm startgoogle-ads-mcp/
βββ src/
β βββ index.ts # Main MCP server file
β βββ config.ts # Configuration management
β βββ google-ads-client.ts # Google Ads API client
β βββ tools/ # MCP tool implementations
β βββ accounts.ts # Account management tools
β βββ campaigns.ts # Campaign tools
β βββ ad-groups.ts # Ad group tools
β βββ ads.ts # Ad tools
β βββ keywords.ts # Keyword tools
β βββ conversions.ts # Conversion tracking tools
β βββ performance.ts # Performance reporting tools
β βββ analytics.ts # Analytics tools
β βββ shopping.ts # Shopping campaign tools
βββ dist/ # Compiled JavaScript files
βββ .env.example # Example environment variables
βββ claude-desktop-config.example.json # Example Claude Desktop config
βββ package.json # Project dependencies
βββ tsconfig.json # TypeScript configuration
βββ README.md # This file
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
MIT