list_accountsLABSCO SUMMARY
GAQL is the whole surface, and the packaged reports are shortcuts through it.
Two of the tools answer the questions people ask constantly — how are campaigns doing, which ads are working — and the other two hand you the query language for everything else, with CSV output when the answer is going into a spreadsheet. The guidance bundled with the server on segments and metrics is worth reading first: in GAQL, which fields you select silently changes how rows are grouped, and that is where a wrong number usually comes from.
What it is
A Google Ads client for MCP. It lists the accounts your credentials reach and runs Google Ads Query Language against them, with a couple of ready-made performance reports on top.
What you get
- Every Google Ads account the credentials can see — list_accounts
- Any GAQL query executed against an account — execute_gaql_query
- The same, with a choice of output format: table, JSON or CSV — run_gaql
- Campaign metrics for an account over a period you name — get_campaign_performance
- Ad creative performance in detail, for comparing what the copy is doing — get_ad_performance
- GAQL guidance shipped alongside the server, covering resources, attributes, segments and metrics and how each affects the shape of a result
Requirements
Google Ads API access: a developer token in GOOGLE_ADS_DEVELOPER_TOKEN, a credentials file at GOOGLE_ADS_CREDENTIALS_PATH, and GOOGLE_ADS_AUTH_TYPE set to oauth or to service account. Manager accounts also set GOOGLE_ADS_LOGIN_CUSTOMER_ID to the manager id, which is the setting people most often get wrong. Python, and the server launched from the repository through your MCP client's config.
Setup effort
Build from source — git clone https://github.com/cohnen/mcp-google-ads.git
USE CASES
Finding out which accounts you are actually looking at
List them first, since a manager login can reach more than the one you had in mind.
Reviewing how campaigns did last month
Pull campaign metrics for the period and let the conversation do the comparison.
Working out which ad copy is earning its place
Look at creative-level performance rather than campaign totals.
Answering a question no packaged report covers
Write the GAQL query against the resource you need and run it.
Getting the numbers into a spreadsheet
Run the same query with CSV output instead of copying a table out of chat.
5 tools
Listed in project docs. Your client may show a different list.
execute_gaql_queryget_campaign_performanceget_ad_performancerun_gaqlBEFORE YOU INSTALL
What to know first
Tools you get
5 tools named in the project's documentation.
Requires
- Python 3.11 or newer
- GOOGLE_ADS_CREDENTIALS_PATH in your environment
- GOOGLE_ADS_DEVELOPER_TOKEN in your environment
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
git clone https://github.com/cohnen/mcp-google-ads.git
cd mcp-google-ads
uv venv .venv
source .venv/bin/activate
uv pip install -r requirements.txtMCP Clients
Claude Desktop, Cursor
{
"mcpServers": {
"googleAdsServer": {
"command": "<YOUR_PATH_TO_MCP_GOOGLE_ADS_MAIN>/.venv/bin/python",
"args": [
"<YOUR_PATH_TO_MCP_GOOGLE_ADS_MAIN>/google_ads_server.py"
],
"env": {
"GOOGLE_ADS_CREDENTIALS_PATH": "<YOUR_PATH_TO_MCP_GOOGLE_ADS_MAIN>/service_account_credentials.json",
"GOOGLE_ADS_DEVELOPER_TOKEN": "<YOUR_GOOGLE_ADS_DEVELOPER_TOKEN>",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "<YOUR_GOOGLE_ADS_LOGIN_CUSTOMER_ID>"
}
}
}
}<YOUR_PATH_TO_MCP_GOOGLE_ADS_MAIN> is the full path to your copy of the repository (a git clone is named mcp-google-ads; the ZIP download unpacks as mcp-google-ads-main). On Windows the Python is .venv\Scripts\python.exe.