list_accountsLABSCO SUMMARY
GAQL without the auth plumbing that usually stops this being worth it.
The hard part of scripting Google Ads has always been the credential dance, not the query. With refresh handled and account ids one call away, ad-hoc reporting questions become something you ask rather than something you schedule.
What it is
A FastMCP server over the Google Ads API with OAuth built in: one browser sign-in, then tokens are stored locally and refreshed automatically. Three tools — the accounts you can reach, any GAQL query, and the Keyword Planner.
What you get
- Every Google Ads account the signed-in user can reach, with its id
- Any Google Ads Query Language query run against a customer id, with the results formatted for reading — campaign performance, spend, whatever GAQL reaches
- Manager-account access, by passing the manager id alongside the customer id
- Keyword ideas from the Keyword Planner with search volume, seeded from keywords or a page URL, over a date range you choose
- No token parameters on any call: authentication is handled and expired tokens refresh on their own
Requirements
Python 3.10 or newer and a Google Ads account. The first run opens a browser for the OAuth grant; tokens are kept locally afterwards. A one-click installer is offered at gomarble.ai/mcp for people who would rather not assemble it.
Setup effort
Build from source — git clone https://github.com/gomarble-ai/google-ads-mcp-server.git
USE CASES
Finding out which account the numbers live in
List the accounts the login can reach and take the customer id from there instead of digging through the UI.
Answering a performance question on the spot
Write the GAQL for the campaign, date range and metrics you want and read the formatted result back.
Researching a new campaign's keywords
Seed the Keyword Planner with your terms or a landing page URL and get ideas back with search volume attached.
Reporting across a manager account
Confirm which child accounts are visible, then run the same query against each with the manager id supplied.
3 tools
Listed in project docs. Your client may show a different list.
run_gaqlrun_keyword_plannerBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. Read-only for now: campaign creation and management tools are listed as upcoming. run_gaql passes through Google Ads Query Language queries.
Requires
- Python 3.10+
- GOOGLE_ADS_DEVELOPER_TOKEN in your environment
- GOOGLE_ADS_OAUTH_CONFIG_PATH in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/gomarble-ai/google-ads-mcp-server.git
cd google-ads-mcp-server
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txtCreate a .env file in the project directory containing GOOGLE_ADS_DEVELOPER_TOKEN=<YOUR_GOOGLE_ADS_DEVELOPER_TOKEN> and GOOGLE_ADS_OAUTH_CONFIG_PATH=<YOUR_GOOGLE_ADS_OAUTH_CONFIG_PATH>
MCP Clients
Claude Desktop — stdio
{
"mcpServers": {
"google-ads": {
"command": "<YOUR_PATH_TO_PROJECT>/.venv/bin/python",
"args": [
"<YOUR_PATH_TO_PROJECT>/server.py"
]
}
}
}The configuration on this page does not set GOOGLE_ADS_DEVELOPER_TOKEN and GOOGLE_ADS_OAUTH_CONFIG_PATH; the project's instructions put them in a .env file. Check which folder the server reads that file from before you rely on it.