Google Ads MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FASTMCP_HOST | No | Set to 0.0.0.0 to allow FastMCP to accept connections from all IP addresses, for example on Cloud Run. | |
| GOOGLE_PROJECT_ID | No | Google Cloud project ID. | |
| GOOGLE_CLOUD_PROJECT | No | Google Cloud project ID mentioned as a recommended alternative to GOOGLE_PROJECT_ID. | |
| GOOGLE_ADS_MCP_BASE_URL | No | Base URL where the server is accessible. | http://localhost:8080 |
| GOOGLE_ADS_MCP_STORAGE_PATH | No | Directory path for filetree persistent storage. | |
| GOOGLE_ADS_MCP_STORAGE_TYPE | No | Storage backend for OAuth state. Supported values are filetree, redis, firestore, or memory. | |
| GOOGLE_ADS_MCP_TOOLS_CONFIG | No | Explicit path to a tools_config.yaml file. If missing or invalid, the server fails to start. | |
| GOOGLE_ADS_LOGIN_CUSTOMER_ID | No | Default manager account customer ID for Google Ads API calls. A per-call login_customer_id parameter takes precedence. | |
| GOOGLE_ADS_MCP_JWT_SIGNING_KEY | No | Secret key used to sign FastMCP JWT tokens across multiple server instances or deployments. | |
| GOOGLE_ADS_MCP_OAUTH_CLIENT_ID | No | Google Cloud OAuth 2.0 Client ID used to enable the FastMCP OAuth proxy. | |
| GOOGLE_APPLICATION_CREDENTIALS | No | Path to the Google Cloud Application Default Credentials JSON file. Credentials must include the https://www.googleapis.com/auth/adwords scope. | |
| GOOGLE_ADS_MCP_STORAGE_REDIS_URL | No | Redis URL for redis persistent storage. | |
| GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET | No | Google Cloud OAuth 2.0 Client Secret used to enable the FastMCP OAuth proxy. | |
| GOOGLE_ADS_MCP_STORAGE_ENCRYPTION_KEY | No | Encryption key for stored OAuth tokens. | |
| GOOGLE_ADS_MCP_STORAGE_FIRESTORE_PROJECT | No | Google Cloud project for firestore persistent storage. Defaults to the project inferred from Application Default Credentials. Setting it selects the firestore backend even if GOOGLE_ADS_MCP_STORAGE_TYPE is unset. | |
| GOOGLE_ADS_MCP_STORAGE_DISABLE_ENCRYPTION | No | Set to true to disable token encryption. | |
| GOOGLE_ADS_MCP_STORAGE_FIRESTORE_DATABASE | No | Firestore database name for firestore persistent storage. | (default) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| customers_list_accessible_customersA | Returns ids of customers directly accessible by the user authenticating the call. Use this tool first to discover available customer IDs if the user hasn't provided one. Most other tools require a valid customer ID as input. |
| assets_create_assetA | Creates a new Google Ads asset under the specified customer account. Required & Optional parameters per
Root-level URL and tracking configurations (optional except where noted):
For any other asset type, provide Propose & Confirm Workflow (
|
| assets_upload_video_assetA | Uploads a video to YouTube natively via the Google Ads API. Once a video has been uploaded, it can be used to create a video asset.
This operation executes via a FastMCP background task to gracefully handle large file uploads
(supported in local stdio mode only).
Once the upload finishes successfully, using the search tool and querying the Propose & Confirm Workflow (
|
| metadata_get_resource_metadataA | Retrieves the selectable, filterable, and sortable fields for a specific Google Ads resource, including compatible metrics and segments. Use this tool to find out which fields you can select, filter by, or sort by when querying a specific resource (e.g., 'campaign', 'ad_group'). This tool also returns metrics and segments that can be selected with the resource. Their names start with 'metrics.' and 'segments.' respectively. Do not guess fields, you MUST use this tool to discover them before constructing a query for the
The responses of this tool should be cached, as they don't change frequently. |
| labels_manage_labelsA | Manages Label resources. Supports CREATE, UPDATE, and REMOVE operations. Propose & Confirm Workflow (
|
| labels_manage_label_associationsA | Manages associations between labels and Campaign, Customer, Ad Group, or Ad Group Criterion. Supports CREATE and REMOVE operations. Propose & Confirm Workflow (
|
| search_searchC | Fetches data from the Google Ads API using the search method |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_discovery_document | Retrieve the Google Ads API discovery document. Provides the discovery document for the Google Ads API, which describes the API surface, including resources, methods, and schemas. Use this resource to get a high-level overview of the API surface or to find available resources. However, for finding specific fields, you MUST use the `get_resource_metadata` tool instead, as it provides more targeted and up-to-date information for queries. Returns: str: The discovery document in JSON format. |
| get_metrics | Retrieve the Google Ads API metrics documentation. Provides the official documentation for metrics in the Google Ads API, listing all available metrics that can be queried to analyze performance data. Use this resource to identify which metrics are available and how they are calculated. Returns: str: The metrics documentation in HTML format. |
| get_release_notes | Retrieve the Google Ads API release notes. Provides the official release notes for the Google Ads API, detailing new features, changes, deprecations, and bug fixes across all API versions. Use this resource to check for breaking changes, determine if a specific feature is supported in a given API version, or troubleshoot issues by consulting recent API updates. Returns: str: The release notes in HTML format. |
| get_segments | Retrieve the Google Ads API segments documentation. Provides the official documentation for segments in the Google Ads API, detailing the available segments that can be used in GAQL queries to partition metrics. Use this resource to understand which segments can be used with specific resources and metrics. Returns: str: The segments documentation in HTML format. |
TDQS
Scored across 7 tools
Each tool targets a distinct area: customer discovery, asset creation, video upload, metadata introspection, labels, label associations, and generic search. The only mild overlap is between assets_create_asset (which can create YOUTUBE_VIDEO assets) and assets_upload_video_asset, but the descriptions make the upload-then-create pipeline clear.
Names follow a predictable namespace_verb_object pattern (customers_list_..., assets_create_..., labels_manage_..., metadata_get_...). The namespace prefix (resource domain) rather than a pure verb_noun pattern is consistent across all tools; 'search_search' is slightly awkward but still readable and predictable.
Seven tools is a lean, well-scoped set where each has a clear distinct role, with generic search and metadata tools providing breadth without tool sprawl. It is on the thin side for the enormous Google Ads API surface, but no tool feels redundant.
Read access is broad via search_search plus metadata introspection, and writes cover assets, video uploads, and labels. However, core mutations like campaign/ad group creation, budget or bidding updates, and keyword management are absent, leaving common Google Ads workflows as dead ends.