jarrah-gads-mcp
A minimal MCP server that exposes Google Ads query capabilities as tools for use with Claude and other MCP clients.
Tools
| Tool | Description |
|---|---|
run_gaql |
Execute any GAQL query against the configured account |
list_accounts |
List all accounts accessible with the refresh token |
list_client_accounts |
List leaf accounts under an MCC manager |
get_campaign_metrics |
Campaign spend, impressions, clicks, and impression share by date/device/channel |
get_conversion_actions |
Enabled conversions with 90-day volume |
get_quality_scores |
Keyword quality scores with ad relevance, landing page, and CTR components |
get_ad_creative |
RSA headlines, descriptions, and final URLs for all active ads |
Setup
1. Install
pip install jarrah-gads-mcp
2. Configure credentials
Create a .env file in your working directory:
GOOGLE_ADS_DEVELOPER_TOKEN=your_developer_token
GOOGLE_ADS_CLIENT_ID=your_client_id
GOOGLE_ADS_CLIENT_SECRET=your_client_secret
GOOGLE_ADS_REFRESH_TOKEN=your_refresh_token
GOOGLE_ADS_CUSTOMER_ID=123-456-7890
# GOOGLE_ADS_LOGIN_CUSTOMER_ID= # only needed for MCC manager accounts
| Variable | Required | Notes |
|---|---|---|
GOOGLE_ADS_DEVELOPER_TOKEN |
Yes | From Google Ads API Centre |
GOOGLE_ADS_CLIENT_ID |
Yes | Google Cloud Console OAuth app |
GOOGLE_ADS_CLIENT_SECRET |
Yes | Google Cloud Console OAuth app |
GOOGLE_ADS_REFRESH_TOKEN |
Yes | OAuth refresh token for the account to query |
GOOGLE_ADS_CUSTOMER_ID |
Yes | Account to query (digits only or with dashes) |
GOOGLE_ADS_LOGIN_CUSTOMER_ID |
No | MCC manager ID — only needed when querying through a manager account |
3. Add to Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"google-ads": {
"command": "uvx",
"args": ["jarrah-gads-mcp"]
}
}
}
Restart Claude Desktop. The tools will appear in the tools panel.
GAQL notes
run_gaqlusessearch()(notsearch_stream) — suitable for ad-hoc queries up to 100 rows.- Always include a date filter; the Google Ads API rejects most queries without one.
- Customer ID dashes are stripped automatically before the API call.
Source
Metadata
Release files for jarrah-gads-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| jarrah_gads_mcp-0.1.2.tar.gz | 25.8 kB | Without provenance | Details for jarrah_gads_mcp-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| jarrah_gads_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for jarrah_gads_mcp-0.1.2-py3-none-any.whl |
Total release size: 45.0 kB
Release files / jarrah_gads_mcp-0.1.2.tar.gz
| Download URL | jarrah_gads_mcp-0.1.2.tar.gz |
|---|---|
| Size | 25.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f9f4471b97dc8cea28701b9e4d741c64a0de7bb732db0d712b0318e7101d8b22
|
|
BLAKE2b-256 checksum How to use checksums |
4808d9e50385750d6b43789d50751b6f2d4db5b275d9549aecdc5b9750eadc7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.0
|
Release files / jarrah_gads_mcp-0.1.2-py3-none-any.whl
| Download URL | jarrah_gads_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 19.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a06d315778e2671ab4b8d2f735ec710d7fde385dd8b22e9d460573e5c017b0ec
|
|
BLAKE2b-256 checksum How to use checksums |
ccf90e6b3875db31022560e99afafa4d0a3b7918101342c4a55f668682d8dfa8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.0
|
Security for jarrah-gads-mcp 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.