Description
### 1. Basic Configuration
This is the minimal configuration to run the **Google Ads MCP Server** with Claude Code, assuming the MCP server is available as a local command `google-ads-mcp`.
```json
{
"google-ads-mcp": {
"command": "google-ads-mcp",
"args": [],
"env": {
"GOOGLE_ADS_CLIENT_ID": "your-google-ads-oauth-client-id",
"GOOGLE_ADS_CLIENT_SECRET": "your-google-ads-oauth-client-secret",
"GOOGLE_ADS_REFRESH_TOKEN": "your-oauth-refresh-token",
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-google-ads-developer-token",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "1234567890"
},
"disabled": false,
"autoStart": true,
"category": "Productivity"
}
}
```
**Explanation (not part of JSON):**
- `google-ads-mcp`: The key under `mcpServers` in `~/.claude/settings.json`. This is the name Claude will show for the server.
- `command`: The executable for the Google Ads MCP Server. Adjust if installed differently (e.g., `node google-ads-mcp.js` or full path).
- `args`: Empty here for a basic setup.
- `env`:
- `GOOGLE_ADS_CLIENT_ID` / `GOOGLE_ADS_CLIENT_SECRET`: OAuth2 credentials from Google Cloud Console.
- `GOOGLE_ADS_REFRESH_TOKEN`: Long-lived token used to obtain access tokens.
- `GOOGLE_ADS_DEVELOPER_TOKEN`: Google Ads API developer token from your Google Ads manager account.
- `GOOGLE_ADS_LOGIN_CUSTOMER_ID`: Manager account ID (without dashes).
- `disabled`: `false` so Claude can use it.
- `autoStart`: `true` so the server starts when Claude launches.
- `category`: Matches your requested category: `"Productivity"`.
---
### 2. Advanced Configuration
This version adds logging, explicit timeouts, a specific API version, and a sandbox/test mode toggle. It also shows how to pass arguments to the server.
```json
{
"google-ads-mcp": {
"command": "/usr/local/bin/google-ads-mcp",
"args": [
"--port",
"7332",
"--log-level",
"debug",
"--api-version",
"v17",
"--enable-cache"
],
"env": {
"GOOGLE_ADS_CLIENT_ID": "your-google-ads-oauth-client-id",
"GOOGLE_ADS_CLIENT_SECRET": "your-google-ads-oauth-client-secret",
"GOOGLE_ADS_REFRESH_TOKEN": "your-oauth-refresh-token",
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-google-ads-developer-token",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "1234567890",
"GOOGLE_ADS_LINKED_CUSTOMER_ID": "0987654321",
"GOOGLE_ADS_USE_TEST_ACCOUNT": "false",
"GOOGLE_ADS_TIMEOUT_MS": "30000",
"GOOGLE_ADS_LOG_HTTP": "true"
},
"disabled": false,
"autoStart": true,
"category": "Productivity",
"timeoutSeconds": 60
}
}
```
**Explanation (not part of JSON):**
- `command`: Uses a full path to the installed binary.
- `args`:
- `--port 7332`: Run the MCP server on a fixed port (if the implementation supports this).
- `--log-level debug`: More verbose logs for troubleshooting.
- `--api-version v17`: Explicit Google Ads API version.
- `--enable-cache`: Example flag to enable in-memory caching (depends on implementation).
- `env`:
- `GOOGLE_ADS_LINKED_CUSTOMER_ID`: A specific client account ID under the manager account to operate on.
- `GOOGLE_ADS_USE_TEST_ACCOUNT`: `true`/`false` string; if supported, toggles test vs production accounts.
- `GOOGLE_ADS_TIMEOUT_MS`: Per-request timeout in milliseconds for API calls.
- `GOOGLE_ADS_LOG_HTTP`: If supported, logs HTTP requests/responses for debugging.
- `timeoutSeconds`: How long Claude will wait for the MCP server to respond to a request.
- This configuration is suitable for development or staging with more detailed logging and explicit behavior.
---
### 3. Use Case Specific Configuration β Production Reporting Dashboard
This configuration is tailored for a **production reporting use case** where Claude is primarily used to query performance metrics across multiple accounts for dashboards or weekly reports. It assumes read-only scopes and stricter timeouts.
```json
{
"google-ads-reporting": {
"command": "google-ads-mcp",
"args": [
"--mode",
"reporting",
"--max-rows",
"5000",
"--default-date-range",
"LAST_30_DAYS",
"--log-level",
"info"
],
"env": {
"GOOGLE_ADS_CLIENT_ID": "prod-google-ads-oauth-client-id",
"GOOGLE_ADS_CLIENT_SECRET": "prod-google-ads-oauth-client-secret",
"GOOGLE_ADS_REFRESH_TOKEN": "prod-oauth-refresh-token",
"GOOGLE_ADS_DEVELOPER_TOKEN": "prod-google-ads-developer-token",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "1111111111",
"GOOGLE_ADS_MANAGER_LABEL_FILTER": "reporting-included",
"GOOGLE_ADS_READ_ONLY": "true",
"GOOGLE_ADS_TIMEOUT_MS": "15000",
"GOOGLE_ADS_LOG_HTTP": "false",
"GOOGLE_ADS_RATE_LIMIT_QPS": "5"
},
"disabled": false,
"autoStart": true,
"category": "Productivity",
"timeoutSeconds": 30
}
}
```
**Explanation (not part of JSON):**
- Key name: `google-ads-reporting` to make its purpose obvious in Claudeβs UI.
- `args`:
- `--mode reporting`: Instructs the MCP server to expose mainly read/reporting tools (e.g., GAQL queries, metrics summaries).
- `--max-rows 5000`: Limit size of result sets to avoid huge responses.
- `--default-date-range LAST_30_DAYS`: Sensible default for dashboards.
- `--log-level info`: Balanced logging for production.
- `env`:
- Uses production credentials (`prod-*`).
- `GOOGLE_ADS_MANAGER_LABEL_FILTER`: Example of restricting which client accounts can be queried (e.g., only accounts tagged with `reporting-included`).
- `GOOGLE_ADS_READ_ONLY`: Enforces that no mutating operations (budget changes, campaign edits) are allowed.
- `GOOGLE_ADS_TIMEOUT_MS`: Shorter timeout for snappy dashboard responses.
- `GOOGLE_ADS_LOG_HTTP`: Disabled to keep logs lighter and avoid sensitive payloads in logs.
- `GOOGLE_ADS_RATE_LIMIT_QPS`: Throttling to stay within API limits and avoid quota issues.
- `timeoutSeconds`: Lower than the advanced config to keep interactions responsive for dashboard/reporting workflows.
To use any of these, place them under the `"mcpServers"` key in `~/.claude/settings.json`, ensuring only one object per server name and that the overall JSON remains valid.