Skip to main content
Glama
MarventoCapital

Marvento Ads MCP

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FASTMCP_HOSTNoHost for FastMCP to bind to. Set to 0.0.0.0 to accept connections from all IP addresses.
GOOGLE_PROJECT_IDYesYour Google Cloud project ID.
GOOGLE_CLOUD_PROJECTNoAlternative Google Cloud project ID (recommended in some client configurations).
GOOGLE_ADS_MCP_BASE_URLNoBase URL where the server is accessible. Defaults to http://localhost:8080.http://localhost:8080
ADS_MCP_MAX_DAILY_BUDGETNoMaximum daily budget cap in the server currency. Defaults to 500.500
GOOGLE_ADS_DEVELOPER_TOKENNoYour Google Ads developer token (optional depending on setup).
GOOGLE_ADS_MCP_STORAGE_PATHNoDirectory path for filetree persistent storage.
GOOGLE_ADS_MCP_STORAGE_TYPENoStorage backend for OAuth state: filetree, redis, firestore, or memory.
GOOGLE_ADS_MCP_TOOLS_CONFIGNoPath to a tools_config.yaml file for selectively enabling or disabling tools.
GOOGLE_ADS_LOGIN_CUSTOMER_IDNoDefault login customer ID when access is through a manager account.
GOOGLE_ADS_MCP_JWT_SIGNING_KEYNoSecret key used to sign FastMCP JWT tokens across multiple server instances or deployments.
GOOGLE_ADS_MCP_OAUTH_CLIENT_IDNoGoogle Cloud OAuth 2.0 Client ID for the FastMCP OAuth proxy.
GOOGLE_APPLICATION_CREDENTIALSNoPath to the Google Cloud Application Default Credentials JSON file.
GOOGLE_ADS_MCP_STORAGE_REDIS_URLNoRedis URL for redis persistent storage.
GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRETNoGoogle Cloud OAuth 2.0 Client Secret for the FastMCP OAuth proxy.
GOOGLE_ADS_MCP_STORAGE_ENCRYPTION_KEYNoEncryption key for stored OAuth tokens.
GOOGLE_ADS_MCP_STORAGE_FIRESTORE_PROJECTNoGoogle Cloud project for firestore persistent storage. Defaults to the project inferred from Application Default Credentials.
GOOGLE_ADS_MCP_STORAGE_DISABLE_ENCRYPTIONNoSet to true to disable token encryption.
GOOGLE_ADS_MCP_STORAGE_FIRESTORE_DATABASENoFirestore database name for firestore persistent storage. Defaults to (default).(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

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
ad_groups_create_ad_groupA

Creates a Search ad group inside a campaign.

Ad groups default to ENABLED because the campaign itself is created PAUSED; nothing serves until the campaign is enabled with confirm=true.

ad_groups_set_ad_group_statusA

Enables, pauses or removes an ad group. REMOVED needs confirm=true.

ad_groups_update_ad_group_cpc_bidA

Changes an ad group's default max CPC (MANUAL_CPC campaigns). Needs confirm=true.

ad_groups_add_keywordsB

Adds keywords to an ad group.

ad_groups_add_ad_group_negative_keywordsA

Adds negative keywords to one ad group. For campaign-wide negatives use campaigns.add_campaign_targeting.

ad_groups_set_keyword_statusA

Pauses, enables or removes keywords (ad group criteria). REMOVED needs confirm=true.

Find criterion ids with search on ad_group_criterion (ad_group_criterion.criterion_id).

ads_create_responsive_search_adA

Creates a responsive search ad in an ad group.

Copy is checked locally against Google's limits before the API call: 3-15 headlines of max 30 chars, 2-4 descriptions of max 90 chars, display paths of max 15 chars, no duplicate lines, no all-caps, no '!' in headlines. Aim for 8-15 distinct headlines and 4 descriptions; Google rates ad strength on variety.

The ad defaults to ENABLED because the campaign is PAUSED until confirmed.

ads_update_responsive_search_adA

Replaces the copy of an existing responsive search ad.

Headlines and descriptions are replaced as whole sets (pass the full list you want to end up with). Editing an ad resets its performance history in the UI; for A/B tests prefer creating a second ad in the same ad group.

ads_set_ad_statusA

Enables, pauses or removes an ad. REMOVED needs confirm=true.

assets_add_sitelinksA

Creates sitelink assets and attaches them to a campaign. Add at least 4 for full effect.

assets_add_calloutsA

Creates callout assets ("Free Quote", "24/7 Support") and attaches them to a campaign.

assets_create_conversion_actionA

Creates a website conversion action (the thing bidding optimises for).

After creating it, fetch the tag with search on conversion_action selecting conversion_action.tag_snippets and install the event snippet on the site, or fire it through Google Tag Manager.

campaigns_create_campaign_budgetA

Creates a campaign budget. Do this before create_campaign.

campaigns_update_campaign_budgetA

Changes the daily amount of an existing budget. Needs confirm=true to apply.

campaigns_create_campaignA

Creates a Search campaign, always PAUSED. Enable it later with set_campaign_status.

Typical order: create_campaign_budget -> create_campaign -> add_campaign_targeting -> ad_groups.create_ad_group -> ad_groups.add_keywords -> ads.create_responsive_search_ad -> review -> set_campaign_status(ENABLED, confirm=true).

campaigns_set_campaign_statusA

Enables, pauses or removes a campaign.

PAUSED applies immediately (it only stops spend). ENABLED starts spend and REMOVED is permanent, so both need confirm=true; without it you get a validated preview.

campaigns_update_campaignA

Renames a campaign, changes its dates, or points it at another budget.

Bidding strategy changes are deliberately not exposed here; create a new campaign instead so the learning history is not disturbed by accident.

campaigns_suggest_geo_targetsA

Looks up geo target ids for place names. Use before add_campaign_targeting.

campaigns_add_campaign_targetingA

Adds locations, languages and campaign-level negative keywords to a campaign.

campaigns_remove_campaign_criteriaA

Removes campaign criteria (locations, languages, negatives) by criterion id. Needs confirm=true.

Find criterion ids with search on campaign_criterion (campaign_criterion.criterion_id).

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.

Returns: List[str]: A list of customer IDs.

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 search tool.

The responses of this tool should be cached, as they don't change frequently.

search_searchC

Fetches data from the Google Ads API using the search method

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
get_discovery_documentRetrieve 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_metricsRetrieve 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_notesRetrieve 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_segmentsRetrieve 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

B3.4/5.0

Scored across 23 tools

Disambiguation5/5

Each tool targets a distinct resource and action, from campaign lifecycle to ad group keywords, ads, assets, and search. Even similar asset tools (callouts vs. sitelinks) are clearly separated by asset type, and status/update/remove actions are scoped to specific objects.

Naming Consistency4/5

Tool names mostly follow a predictable snake_case pattern grouped by resource prefix, such as campaigns_*, ad_groups_*, ads_*, and assets_*. Minor redundancy like search_search and metadata_get_resource_metadata slightly breaks the verb_noun ideal but does not hinder usability.

Tool Count3/5

With 23 tools, the server is on the heavier side and exceeds the typical 15-tool sweet spot, but the count is defensible for a Google Ads management surface spanning campaigns, ad groups, ads, assets, targeting, and metadata. It feels broad rather than bloated, though some tools could potentially be consolidated.

Completeness4/5

The tool set covers the core Search campaign lifecycle well: budgets, campaigns, targeting, ad groups, keywords, ads, and conversion actions. Minor gaps exist, such as lacking direct asset removal/update and ad group rename, but the generic search and metadata tools allow agents to query resources and work around most omissions.

Maintenance

ActivityMaintained
ResponsivenessNo issues