Provides tools to programmatically manage Google Ads campaigns, including fetching performance data, toggling campaign status, updating budgets, and exporting performance 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., "@Google Ads MCP ServerShow my performance summary for the last 7 days"
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.
Google Ads MCP Server (Node.js)
A Model Context Protocol (MCP) server for managing Google Ads campaigns programmatically, built with Node.js.
Features
Campaign Management
✅ Fetch campaign performance data
✅ Get detailed campaign information
✅ Pause/enable campaigns
✅ Update campaign budgets
Analytics & Reporting
✅ Performance summaries
✅ Top performer analysis
✅ Export to CSV/JSON
✅ Custom date ranges
Real-time Data
✅ Live API integration
✅ Up-to-date metrics
✅ Conversion tracking
✅ Budget monitoring
Installation
Global Installation (Recommended for CLI use)
Local Installation (For project integration)
Or with pnpm:
Configuration
Simple .env Configuration (No YAML file needed!)
Create a .env file with your Google Ads API credentials as inline JSON:
That's it! No separate YAML files needed. Everything is in your .env file.
Example Configuration
Usage
Running the Server
Or with npx (no installation):
Using with MCP Clients
Add to your MCP client configuration (e.g., Claude Desktop):
Using with manus-mcp-cli
Available Tools
1. get_campaigns
Fetch all campaigns with performance metrics.
Parameters:
days(number, optional): Number of days to look back (default: 30)status(string, optional): Filter by status - ENABLED, PAUSED, REMOVED, or ALL (default: ENABLED)
Example:
2. get_campaign_details
Get detailed information about a specific campaign.
Parameters:
campaign_id(string, required): The campaign IDdays(number, optional): Number of days to look back (default: 30)
Example:
3. get_performance_summary
Get overall account performance summary.
Parameters:
days(number, optional): Number of days to look back (default: 30)
Example:
4. get_top_performers
Get top performing campaigns by specified metric.
Parameters:
metric(string, optional): Metric to rank by - ctr, conversions, cost, clicks, impressions (default: ctr)limit(number, optional): Number of top campaigns to return (default: 5)days(number, optional): Number of days to look back (default: 30)
Example:
5. pause_campaign
Pause a specific campaign.
Parameters:
campaign_id(string, required): The campaign ID to pause
Example:
6. enable_campaign
Enable/resume a paused campaign.
Parameters:
campaign_id(string, required): The campaign ID to enable
Example:
7. update_campaign_budget
Update the daily budget for a campaign.
Parameters:
campaign_id(string, required): The campaign IDbudget_euros(number, required): New daily budget in euros
Example:
8. export_report
Export campaign data to CSV or JSON format.
Parameters:
format(string, required): Export format - csv or jsondays(number, optional): Number of days to look back (default: 30)
Example:
Example Workflows
Daily Campaign Monitoring
Campaign Optimization
Reporting
Troubleshooting
"GOOGLE_ADS_CONFIG environment variable is required"
Make sure you've set the
GOOGLE_ADS_CONFIGenvironment variableCheck that the JSON is valid and properly escaped
Ensure all required fields are present
"Failed to initialize Google Ads client"
Verify all credentials are correct
Ensure refresh token is still valid
Check that the JSON format is correct
"Campaign not found"
Verify the campaign ID is correct
Check that you have access to the campaign
Ensure the campaign hasn't been removed
"Unauthorized" errors
Refresh token may have expired - generate a new one
Check that the developer token is approved
Verify OAuth credentials are correct
API Rate Limits
Google Ads API has rate limits:
Basic access: 15,000 operations per day
Standard access: 40,000 operations per day
The MCP server automatically handles rate limiting and retries.
Security
Never commit
.envto version controlStore credentials securely
Use environment variables for sensitive data
Rotate refresh tokens regularly
The
.gitignorefile already excludes.envfiles
Support
For issues or questions:
Check the Google Ads API documentation
Review the MCP specification
Check server logs for error messages
Open an issue on GitHub
License
MIT License - See LICENSE file for details
Version History
1.1.0 (2025-11-24)
Breaking Change: Switched from YAML to inline JSON configuration in .env
Removed js-yaml dependency
Simplified configuration - no separate files needed
Updated documentation
1.0.0 (2025-11-24)
Initial Node.js release
8 core tools for campaign management
Real-time API integration
CSV/JSON export support
Complete documentation