Social MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Optional HTTP bind address. | 0.0.0.0 |
| PORT | No | Optional HTTP bind port. | 8000 |
| MCP_API_KEY | No | Secret clients must send to the remote HTTP server. Required for HTTP transport mode. | |
| ALLOW_WRITES | No | Optional. Set to true to allow confirmed write actions. | false |
| AUDIT_LOG_PATH | No | Optional path where write actions are logged. | audit_log.jsonl |
| GOOGLE_CLIENT_ID | No | Google OAuth client ID from Google Cloud Console. Required for Google Ads and GA4. | |
| MAX_DAILY_BUDGET | No | Optional maximum daily budget an agent can set. | 500 |
| META_API_VERSION | No | Optional Meta Graph API version. | v24.0 |
| META_ACCESS_TOKEN | No | Meta system user access token. Required for Meta Ads. | |
| GOOGLE_CLIENT_SECRET | No | Google OAuth client secret from Google Cloud Console. Required for Google Ads and GA4. | |
| GOOGLE_REFRESH_TOKEN | No | Google OAuth refresh token generated by scripts/get_google_refresh_token.py. Required for Google Ads and GA4. | |
| ALLOWED_META_AD_ACCOUNTS | No | Optional comma-separated Meta ad account IDs, e.g. act_123,act_456. | |
| GOOGLE_ADS_DEVELOPER_TOKEN | No | Google Ads API developer token from the Google Ads API Center. Required for Google Ads. | |
| ALLOWED_GOOGLE_ADS_CUSTOMERS | No | Optional comma-separated Google Ads customer IDs the server may touch. | |
| GOOGLE_ADS_LOGIN_CUSTOMER_ID | No | Optional Google Ads manager/MCC customer ID, digits only, when accessing accounts through a manager. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| google_ads_list_accountsC | List every Google Ads account the authenticated user can access, with name, currency and whether it is a manager (MCC). |
| google_ads_list_client_accountsC | List the client accounts under a manager (MCC) account. |
| google_ads_queryB | Run any read-only Google Ads Query Language (GAQL) query. Example: SELECT campaign.id, campaign.name, metrics.clicks, metrics.cost_micros FROM campaign WHERE segments.date DURING LAST_7_DAYS Costs are in micros (divide by 1,000,000). |
| google_ads_campaign_performanceB | Campaign-level spend, clicks, impressions, conversions, CPA and ROAS for a date range. date_range is a GAQL predefined range, e.g. TODAY, YESTERDAY, LAST_7_DAYS, LAST_30_DAYS, THIS_MONTH, LAST_MONTH. |
| google_ads_set_statusC | Pause or enable a campaign, ad group, ad or keyword. entity_id: the campaign/ad group id; for ads and keywords use "<ad_group_id>~<ad_id or criterion_id>". |
| google_ads_set_campaign_budgetC | Change a campaign's daily budget (in the account currency, e.g. 50 = $50/day). |
| google_ads_set_ad_group_cpc_bidB | Set an ad group's max CPC bid (account currency). Only applies to manual CPC bidding. |
| google_ads_add_negative_keywordsC | Add campaign-level negative keywords (e.g. wasteful search terms found in a search-term report). |
| ga4_list_propertiesA | List every GA4 account and property the authenticated user can access. |
| ga4_run_reportB | Run a GA4 report. metrics e.g. ["sessions", "totalUsers", "conversions", "purchaseRevenue"]; dimensions e.g. ["date", "sessionSourceMedium", "sessionCampaignName", "landingPage"]. Dates: YYYY-MM-DD, "today", "yesterday" or "NdaysAgo". dimension_filters: [{"field": "sessionSourceMedium", "value": "google / cpc", "match": "EXACT|CONTAINS|BEGINS_WITH"}] (ANDed). order_by_metric: sort descending by this metric. |
| ga4_realtime_reportB | Users active in the last 30 minutes. Defaults to activeUsers by country. |
| ga4_get_metadataA | List the dimension and metric API names available for a property (optionally filtered by a search term). |
| ga4_create_key_eventC | Mark an event (e.g. "generate_lead", "purchase") as a key event (conversion) in GA4. |
| ga4_create_custom_dimensionB | Register an event or user parameter as a custom dimension so it can be used in reports. |
| meta_list_ad_accountsB | List every Meta ad account the token can access (including via Business Managers). |
| meta_list_entitiesA | List campaigns, ad sets or ads in an ad account with their status and budgets. effective_status filter e.g. ["ACTIVE"] or ["ACTIVE","PAUSED"]. Budgets are returned in minor units (cents). |
| meta_get_insightsB | Performance insights for an ad account (act_...), campaign, ad set or ad. date_preset: today, yesterday, last_7d, last_14d, last_30d, this_month, last_month, maximum (ignored if since/until given). breakdowns e.g. ["age","gender"], ["publisher_platform"], ["country"]. time_increment "1" for daily rows. |
| meta_set_statusC | Pause or activate a Meta campaign, ad set or ad by id. |
| meta_set_budgetC | Change the budget of a campaign (CBO) or ad set, in the account currency's major units (e.g. 50 = $50). |
| meta_update_entityB | Update allowed fields (name, status, bid_amount, start_time, end_time, spend_cap, budgets) on a campaign, ad set or ad. Budget, bid and spend_cap values must be in minor units (cents), as the Marketing API expects. Prefer meta_set_budget for budgets. |
| meta_create_campaignA | Create a new campaign. It is always created PAUSED so nothing spends until you activate it. daily_budget (major units) enables campaign budget optimization; omit it to set budgets on ad sets instead. special_ad_categories: [] or e.g. ["HOUSING"], ["EMPLOYMENT"], ["FINANCIAL_PRODUCTS_SERVICES"]. |
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 21 tools
Most tools are clearly separated by platform and resource/action, with distinct prefixes like ga4_, google_ads_, and meta_. Some boundaries blur between generic and specialized tools, especially google_ads_query vs google_ads_campaign_performance, and meta_update_entity vs meta_set_status/meta_set_budget.
Names consistently use snake_case with platform prefixes (ga4_, google_ads_, meta_), making the set easy to scan. Minor deviations exist, such as google_ads_campaign_performance being noun-phrase rather than verb_noun, and meta_list_entities being somewhat generic.
21 tools is slightly high in isolation, but reasonable for a server spanning three platforms: GA4, Google Ads, and Meta Ads. Each platform has a focused subset, though the set is near the upper end of what an agent can comfortably navigate.
The surface covers reporting, status changes, budgets, and some creation operations, but lifecycle coverage is uneven. Google Ads lacks creation tools for campaigns/ad groups/ads/keywords, and Meta only supports creating campaigns rather than ad sets or ads, creating notable gaps for full ad management.