google-ads-api-mcp-setup
Guides developers through downloading, configuring, and installing the official open-source Google Ads MCP Server. Use this skill when a user wants to connect their AI assistant (such as Gemini, Claude Code, or Cursor) to their Google Ads account to query campaigns or retrieve reporting metrics u...
Install this skill
Security score
The google-ads-api-mcp-setup skill was audited on Aug 3, 2026 and we found 15 security issues across 3 threat categories, including 6 high-severity. Review the findings below before installing.
Categories Tested
Security Issues
Access to home directory dotfiles
| 135 | |
| 136 | ### Troubleshooting PATH Issues (Agent Action) |
| 137 | `pipx` installs binaries into a specific local directory (typically `~/.local/bin`). If the user's shell configuration (e.g., `.bashrc` or `.zshrc`) hasn't been reloaded, `google-ads-mcp` might not be found in the current `PATH`. |
| 138 | |
| 139 | If `google-ads-mcp --help` fails with a "command not found" error: |
Access to home directory dotfiles
| 143 | |
| 144 | ```bash |
| 145 | ~/.local/bin/google-ads-mcp --help |
| 146 | ``` |
| 147 | 3. If the absolute path verification succeeds, explain the situation to the user: inform them that the installation was successful but their `PATH` environment variable needs to be updated by reloading their shell configuration (e.g., running `source ~/.bashrc` or `source ~/.zshrc`, or restarting their terminal). |
Access to home directory dotfiles
| 145 | ~/.local/bin/google-ads-mcp --help |
| 146 | ``` |
| 147 | 3. If the absolute path verification succeeds, explain the situation to the user: inform them that the installation was successful but their `PATH` environment variable needs to be updated by reloading their shell configuration (e.g., running `source ~/.bashrc` or `source ~/.zshrc`, or restarting their terminal). |
| 148 | |
| 149 | ### 3. Communication Protocol: Stdio Transport |
Access to home directory dotfiles
| 172 | |
| 173 | * **Method A (Recommended):** Pass them directly in the MCP client's JSON configuration file (e.g., Cursor or Claude Desktop settings). This isolates the credentials to the specific tool. |
| 174 | * **Method B (Alternative):** Set them globally in your shell profile (e.g., `~/.bashrc`, `~/.zshrc`, or Windows Environment Variables). |
| 175 | |
| 176 | ### Required Environment Variables |
Access to home directory dotfiles
| 191 | ### Method B: Shell Profile Configuration (Global) |
| 192 | |
| 193 | If choosing Method B, append the following to your shell profile (`~/.bashrc`, `~/.zshrc`, etc.): |
| 194 | |
| 195 | ```bash |
Access to home directory dotfiles
| 230 | * **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json` |
| 231 | * **Windows:** `%APPDATA%\Claude\claude_desktop_config.json` |
| 232 | * **Linux:** `~/.config/Claude/claude_desktop_config.json` |
| 233 | |
| 234 | * **Configuration JSON:** |
Access to home directory dotfiles
| 346 | |
| 347 | ### 4. Configure the MCP Client |
| 348 | After deployment, update your MCP client configuration (for example, `~/.gemini/settings.json` or Claude/Cursor config) to use the Cloud Run URL: |
| 349 | |
| 350 | ```json |
Access to home directory dotfiles
| 408 | If the assistant fails to retrieve the data or connect to the MCP server, check the following common failure points: |
| 409 | |
| 410 | * **Authentication/Permission Errors (IDE Environment Gotcha)**: External IDEs (like Cursor or VS Code) often run in isolated environments or background processes that do not inherit shell RC files (e.g., `~/.bashrc` or `~/.zshrc`). Ensure your `GOOGLE_ADS_DEVELOPER_TOKEN`, OAuth client credentials, and `GOOGLE_ADS_REFRESH_TOKEN` are explicitly configured where the IDE can access them (prefer Method A: setting them directly in the MCP client's JSON configuration). |
| 411 | * **"Tools not found" / Mandatory Client Restart**: MCP servers are only loaded on application startup; changes to configuration files will not take effect dynamically. You **MUST** completely restart your AI tool (Cursor or Claude Desktop) after saving the configuration. Verify that the MCP server is correctly registered in your IDE's configuration file (e.g., the `mcpServers` block in Cursor's `project.json` or Claude Desktop's config). |
| 412 | * **PATH and Executable Issues (`spawn pipx ENOENT`)**: If the connection fails or logs show `spawn pipx ENOENT`, `pipx` is not in the system PATH of the IDE's environment. Provide the absolute path to `pipx` in the "command" field of your config (e.g., `/usr/local/bin/pipx` or `~/.local/bin/pipx`). |
Access to home directory dotfiles
| 410 | * **Authentication/Permission Errors (IDE Environment Gotcha)**: External IDEs (like Cursor or VS Code) often run in isolated environments or background processes that do not inherit shell RC files (e.g., `~/.bashrc` or `~/.zshrc`). Ensure your `GOOGLE_ADS_DEVELOPER_TOKEN`, OAuth client credentials, and `GOOGLE_ADS_REFRESH_TOKEN` are explicitly configured where the IDE can access them (prefer Method A: setting them directly in the MCP client's JSON configuration). |
| 411 | * **"Tools not found" / Mandatory Client Restart**: MCP servers are only loaded on application startup; changes to configuration files will not take effect dynamically. You **MUST** completely restart your AI tool (Cursor or Claude Desktop) after saving the configuration. Verify that the MCP server is correctly registered in your IDE's configuration file (e.g., the `mcpServers` block in Cursor's `project.json` or Claude Desktop's config). |
| 412 | * **PATH and Executable Issues (`spawn pipx ENOENT`)**: If the connection fails or logs show `spawn pipx ENOENT`, `pipx` is not in the system PATH of the IDE's environment. Provide the absolute path to `pipx` in the "command" field of your config (e.g., `/usr/local/bin/pipx` or `~/.local/bin/pipx`). |
| 413 | * **Server Crashes on Startup**: If the assistant cannot connect, run the MCP server command directly in your terminal to check for syntax errors, missing dependencies, or node/python path issues. |
| 414 |
Shell profile modification
| 135 | |
| 136 | ### Troubleshooting PATH Issues (Agent Action) |
| 137 | `pipx` installs binaries into a specific local directory (typically `~/.local/bin`). If the user's shell configuration (e.g., `.bashrc` or `.zshrc`) hasn't been reloaded, `google-ads-mcp` might not be found in the current `PATH`. |
| 138 | |
| 139 | If `google-ads-mcp --help` fails with a "command not found" error: |
Shell profile modification
| 145 | ~/.local/bin/google-ads-mcp --help |
| 146 | ``` |
| 147 | 3. If the absolute path verification succeeds, explain the situation to the user: inform them that the installation was successful but their `PATH` environment variable needs to be updated by reloading their shell configuration (e.g., running `source ~/.bashrc` or `source ~/.zshrc`, or restarting their terminal). |
| 148 | |
| 149 | ### 3. Communication Protocol: Stdio Transport |
Shell profile modification
| 172 | |
| 173 | * **Method A (Recommended):** Pass them directly in the MCP client's JSON configuration file (e.g., Cursor or Claude Desktop settings). This isolates the credentials to the specific tool. |
| 174 | * **Method B (Alternative):** Set them globally in your shell profile (e.g., `~/.bashrc`, `~/.zshrc`, or Windows Environment Variables). |
| 175 | |
| 176 | ### Required Environment Variables |
Shell profile modification
| 191 | ### Method B: Shell Profile Configuration (Global) |
| 192 | |
| 193 | If choosing Method B, append the following to your shell profile (`~/.bashrc`, `~/.zshrc`, etc.): |
| 194 | |
| 195 | ```bash |
Shell profile modification
| 408 | If the assistant fails to retrieve the data or connect to the MCP server, check the following common failure points: |
| 409 | |
| 410 | * **Authentication/Permission Errors (IDE Environment Gotcha)**: External IDEs (like Cursor or VS Code) often run in isolated environments or background processes that do not inherit shell RC files (e.g., `~/.bashrc` or `~/.zshrc`). Ensure your `GOOGLE_ADS_DEVELOPER_TOKEN`, OAuth client credentials, and `GOOGLE_ADS_REFRESH_TOKEN` are explicitly configured where the IDE can access them (prefer Method A: setting them directly in the MCP client's JSON configuration). |
| 411 | * **"Tools not found" / Mandatory Client Restart**: MCP servers are only loaded on application startup; changes to configuration files will not take effect dynamically. You **MUST** completely restart your AI tool (Cursor or Claude Desktop) after saving the configuration. Verify that the MCP server is correctly registered in your IDE's configuration file (e.g., the `mcpServers` block in Cursor's `project.json` or Claude Desktop's config). |
| 412 | * **PATH and Executable Issues (`spawn pipx ENOENT`)**: If the connection fails or logs show `spawn pipx ENOENT`, `pipx` is not in the system PATH of the IDE's environment. Provide the absolute path to `pipx` in the "command" field of your config (e.g., `/usr/local/bin/pipx` or `~/.local/bin/pipx`). |
Urgency-based manipulation
| 102 | > [!WARNING] |
| 103 | > **Shell Restart Required:** If you installed `pipx` and ran `pipx ensurepath`, the updated `PATH` will not be available in the current terminal session. |
| 104 | > 1. **DO NOT** immediately attempt to run `pipx` commands in the same session. |
| 105 | > 2. **Instruct the user** to restart their terminal or reload their shell configuration before proceeding to **Step 3**. |
| 106 |