ads-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| META_APP_ID | Yes | Meta App ID from the Meta developer app. | |
| META_APP_SECRET | Yes | Meta App Secret from the Meta developer app. | |
| META_ACCESS_TOKEN | Yes | Long-lived Meta System User access token with ads_management scope. | |
| META_AD_ACCOUNT_ID | Yes | Numeric Meta ad account ID (the client adds the act_ prefix). | |
| GOOGLE_ADS_CLIENT_ID | Yes | Google Cloud OAuth client ID (from a Desktop app OAuth client). | |
| GOOGLE_ADS_CUSTOMER_ID | Yes | 10-digit Google Ads customer ID (no dashes). | |
| GOOGLE_ADS_CLIENT_SECRET | Yes | Google Cloud OAuth client secret (from a Desktop app OAuth client). | |
| GOOGLE_ADS_REFRESH_TOKEN | Yes | Google Ads refresh token, generated by running the local OAuth flow. | |
| GOOGLE_ADS_DEVELOPER_TOKEN | Yes | Google Ads API developer token, obtained from the Google Ads API Center. | |
| GOOGLE_ADS_LOGIN_CUSTOMER_ID | No | Optional MCC customer ID, only needed if the account is managed under an MCC account. |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| google_ads_list_campaignsB | List campaigns with status and budget |
| google_ads_get_campaign_structureB | Get a campaign's ad groups, keywords, ads, and negatives |
| google_ads_create_search_campaignB | Create a new Search campaign with ad groups, keywords and RSAs. Always created PAUSED. |
| google_ads_add_keywordsC | Add keywords to an existing ad group |
| google_ads_set_keyword_statusB | Pause or enable keywords (reversible) |
| google_ads_remove_keywordsB | Permanently remove keywords. Requires confirm_delete: true. |
| google_ads_update_bid_strategyC | Change a campaign's bidding strategy |
| google_ads_add_negative_keywordsC | Add campaign-level negative keywords |
| google_ads_set_campaign_statusA | Enable or pause a campaign. The only tool that can turn spend on. |
| meta_ads_list_campaignsB | List Meta campaigns with status and budget |
| meta_ads_get_ad_statusB | Get an ad's review status and rejection reason if any |
| meta_ads_list_ads_by_statusA | List ads in an account filtered by effective_status (e.g. DISAPPROVED) |
| meta_ads_set_campaign_statusA | Enable or pause a Meta campaign. The only tool that can turn spend on. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Every tool targets a distinct platform-resource-action combination, with clear google_ads_ vs meta_ads_ prefixes separating the two domains. Even the two set_campaign_status tools are disambiguated by the platform prefix and description.
Tool names consistently follow a {platform}_{verb}_{object} pattern in snake_case. Verbs like get, list, create, add, set, remove, update are applied uniformly, making the naming predictable across both platforms.
13 tools is a reasonable scope for an ads management server covering two platforms. The count is neither bloated nor thin, and each tool covers a distinct operation.
The Google Ads side is fairly complete with campaign creation, keyword management, bid strategy updates, and status controls. However, the Meta Ads side lacks any create or edit operations beyond status changes, making the surface significantly incomplete for managing Meta campaigns.