Interact with the Google Ads API to retrieve account and performance data.
Google Ads MCP Server (Experimental)
This repo contains the source code for running a local MCP server that interacts with the Google Ads API.
Tools
The server uses the Google Ads API to provide several Tools for use with LLMs.
Tools available
search: Retrieves information about the Google Ads account.list_accessible_customers: Returns names of customers directly accessible by the user authenticating the call.
Notes
- The MCP Server will expose your data to the Agent or LLM that you connect to it.
- If you have technical issues, please use the GitHub issue tracker.
- To help us collect usage data, you will notice an extra header has been added to your API calls, this data is used to improve the product.
Setup instructions
Setup involves the following steps:
- Configure Python.
- Configure Developer Token.
- Enable APIs in your project
- Configure Credentials.
- Configure Gemini.
Configure Python
Configure Developer Token
Follow the instructions for Obtaining a Developer Token.
Record 'YOUR_DEVELOPER_TOKEN', you will need this for the the 'Configure Gemini' step below
Enable APIs in your project
Follow the instructions to enable the following APIs in your Google Cloud project:
Configure Credentials
Option 1: Configure credentials using Application Default Credentials
Configure your Application Default Credentials (ADC). Make sure the credentials are for a user with access to your Google Ads accounts or properties.
Credentials must include the Google Ads API scope:
https://www.googleapis.com/auth/adwords
Check out Manage OAuth Clients for how to create an OAuth client.
Here are some sample gcloud commands you might find useful:
Set up ADC using user credentials and an OAuth desktop or web client after downloading the client JSON to
YOUR_CLIENT_JSON_FILE.gcloud auth application-default login \ --scopes https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=YOUR_CLIENT_JSON_FILESet up ADC using service account impersonation.
gcloud auth application-default login \ --impersonate-service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform
When the gcloud auth application-default command completes, copy the
PATH_TO_CREDENTIALS_JSON file location printed to the console in the
following message. You will need this for a later step!
Credentials saved to file: [PATH_TO_CREDENTIALS_JSON]
Option 2: Configure credentials using the Google Ads API Python client library.
Follow the instructions to setup and configure the Google Ads API Python client library
If you have already done this and have a working google-ads.yaml , you can reuse this file!
In the utils.py file, change get_googleads_client() to use the load_from_storage() method.
Configure Gemini
Install Gemini CLI or Gemini Code Assist
Create or edit the file at
~/.gemini/settings.json, adding your server to themcpServerslist.
Option 1: the Application Default Credentials method
Replace
PATH_TO_CREDENTIALS_JSONwith the path you copied in the previous step.We also recommend that you add a
GOOGLE_CLOUD_PROJECTattribute to theenvobject. ReplaceYOUR_PROJECT_IDin the following example with the project ID of your Google Cloud project.{ "mcpServers": { "google-ads-mcp": { "command": "pipx", "args": [ "run", "--spec", "git+https://github.com/googleads/google-ads-mcp.git", "google-ads-mcp" ], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON", "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID", "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN" } } } }
Tools (2)
searchRetrieves information about the Google Ads account.list_accessible_customersReturns names of customers directly accessible by the user authenticating the call.Environment Variables
GOOGLE_APPLICATION_CREDENTIALSrequiredPath to your Google Cloud credentials JSON file.GOOGLE_PROJECT_IDrequiredThe project ID of your Google Cloud project.GOOGLE_ADS_DEVELOPER_TOKENrequiredYour Google Ads API developer token.Configuration
{"mcpServers": {"google-ads-mcp": {"command": "pipx", "args": ["run", "--spec", "git+https://github.com/googleads/google-ads-mcp.git", "google-ads-mcp"], "env": {"GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON", "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID", "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN"}}}}