Skip to main content
Glama
raihan675

OpenAI Ads & Conversion Intelligence MCP Server

by raihan675

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENAI_ADS_API_KEYYesYour OpenAI Ads API key, generated from the Settings tab in OpenAI Ads Manager.
OPENAI_ADS_API_BASE_URLNoThe base URL for the OpenAI Ads Advertiser API. Defaults to https://api.ads.openai.com/v1https://api.ads.openai.com/v1

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
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_ad_accountA

Fetches the OpenAI Ads account associated with the configured API key, including ID, name, destination URL, timezone, currency, and brand review status.

update_ad_account_brandA

Updates the ad account display name or assigns a brand favicon file_id, triggering an automatic brand review required for ad serving.

list_campaignsA

List campaigns in the current OpenAI Ads account with pagination.

get_campaignA

Fetch a single OpenAI Ads campaign by its ID.

create_campaignA

Create an ad campaign. Note: lifetime_spend_limit_micros is in currency millionths (e.g. 25000000 = $25.00 USD). Bidding type cannot be changed after creation.

update_campaignB

Update campaign budget, schedule, status, or description. Note: bidding_type cannot be updated.

set_campaign_stateA

Explicitly activate, pause, or archive a campaign. Archiving is irreversible.

clone_campaign_structureA

Deep-copies an existing campaign along with all its child ad groups and ads into a new campaign (created in paused state by default). Allows overriding name, budget, or flight dates.

list_ad_groupsB

List ad groups for a specific parent campaign ID.

get_ad_groupA

Fetch an ad group by its ID.

create_ad_groupA

Create an ad group under a campaign. Billing event must match campaign objective ('impression' for CPM; 'click' for CPC and oCPC). max_bid_micros is in millionths (e.g. 60000 = $0.06/event or $60 CPM; 100000000 = $100 CPA bid).

update_ad_groupC

Update ad group name, description, context_hints, status, or bidding_config.

set_ad_group_stateA

Activate, pause, or archive an ad group. Archiving is irreversible.

upload_creative_assetA

Upload a remote image URL to OpenAI Ads and receive a reusable file_id for ads (chat_card) or brand review (account_favicon).

list_adsC

List ads for a specific ad group ID.

get_adA

Fetch an ad by ID, including creative details and review_status.

create_adA

Create an ad in an ad group. Supports 'chat_card' (title 3-50 chars, body max 100 chars, destination target_url, and uploaded file_id) or 'product_ad_template' (for product feed campaigns).

preview_adA

Generate a 24-hour temporary web preview URL for an existing ad.

set_ad_stateB

Activate, pause, or archive an ad. Archiving is permanent.

generate_ad_intent_queriesB

Generates realistic, high-intent ChatGPT user queries (custom_intent_queries) and conversational sponsored ad copy tailored to your product, audience, and value propositions.

get_delivery_insightsB

Retrieve advertising performance metrics (impressions, clicks, spend, CTR, CPC, CPM). Supports aggregation_level ('ad_account', 'campaign', 'ad_group', 'ad'), time_granularity ('hourly', 'daily', 'monthly', 'none'), segments (['product'], ['country'], ['device']), and zero-impression items.

get_conversion_insightsB

Retrieve attributed conversion totals (conversions, click_through_conversions, view_through_conversions). 'conversions' is always equal to 'click_through_conversions'. View-through conversions use a fixed 1-day impression window for reporting.

create_web_pixelA

Creates a web conversion source and returns both an internal source ID (clidsrc_*) and a public pixel_id. Web pixels automatically support automatic advanced matching.

inspect_recent_pixel_eventsA

Test and verify incoming browser pixel events. Returns up to 50 raw events received by OpenAI from the JavaScript pixel SDK during the previous 15 minutes.

create_conversions_api_keyA

Generate a server-side Conversions API key to send conversion events directly from backend servers. Note: store securely in server secrets.

create_conversion_event_settingA

Defines an active conversion goal (e.g. 'order_created', 'lead_created', 'registration_completed') bound to a pixel source ID. Required for oCPC conversion-optimized campaigns.

list_conversion_event_settingsB

List all conversion definitions configured for the current ad account.

send_test_conversion_eventA

Dispatches a test or live server-side conversion event (e.g., 'order_created', 'lead_created', 'add_to_cart') via the OpenAI Conversions API. Automatically hashes plain emails/phones with SHA-256 and attaches deduplication tokens.

list_custom_audiencesB

List custom audiences for the current ad account. Use 'intended_use' ('inclusion', 'exclusion', 'bid_multiplier') to filter only eligible audiences.

get_custom_audienceA

Retrieve audience status, privacy-preserving size ranges (e.g. under_25k, 25k_100k), and current membership_revision.

create_custom_audienceB

Creates a new custom audience. Can create an empty audience for incremental builds or attach an uploaded file_id.

mutate_audience_membershipA

Add or remove customer identifiers from an existing custom audience. Accepts inline identifiers or an uploaded file_id. Returns an asynchronous operation ID.

merge_custom_audiencesA

Merges 2 to 64 existing, ready audiences in the same ad account into a new union audience.

archive_custom_audienceA

Permanently archive a custom audience. Archived audiences cannot be restored.

get_audience_operation_statusA

Poll the status of an asynchronous membership operation (add, remove, replace, merge) until 'succeeded' or 'failed'.

prepare_custom_audience_payloadA

Normalizes raw emails (trimmed, lowercase) and phone numbers (E.164 standard) into SHA-256 hashes per OpenAI specification. Optionally uploads the hashed members directly to a custom audience.

update_feed_product_variantsA

Delta update prices, titles, or stock availability for existing variants in a linked merchant feed without re-uploading the entire catalog.

submit_bulk_mutation_jobA

Submits an asynchronous bulk job with up to 1,000 operations (campaign.create/update, ad_group.create/update, ad.create/update). Entities can link via campaign_idempotency_key and ad_group_idempotency_key.

get_bulk_mutation_job_statusA

Poll bulk job progress (pending, in_progress, completed, partially_failed, failed) and inspect per-operation execution results.

search_geo_locationsA

Search targetable locations (countries, regions, and DMAs) by keyword query to obtain location IDs for campaign targeting.

audit_conversion_trackingA

Comprehensive tracking audit. Inspects ad account brand approval, configured conversion event settings, and optionally polls the 15-minute live pixel stream to diagnose missing events, tag misconfigurations, and CAPI readiness.

analyze_campaign_performanceB

Analyzes campaign metrics (impressions, clicks, spend, CTR, CPC, conversions, CPA). Provides diagnostic assessments (STRONG, MODERATE, NEEDS_ATTENTION) and actionable optimization recommendations.

detect_spend_anomaliesA

Scans recent delivery and conversion metrics for runaway spend, zero-conversion budget drain, low-CTR creative burnout, and abnormal CPA spikes across campaigns. Recommends immediate remediation actions.

Prompts

Interactive templates invoked by user choice

NameDescription
audit-account-trackingGuides the AI agent to run a thorough audit of brand approval, pixels, and conversion events.
analyze-campaign-performanceGuides the AI agent to evaluate campaign CTR, CPC, CPA, and conversions to provide recommendations.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 43 tools

Disambiguation4/5

Most tools are clearly separated by resource and action, but there is meaningful overlap among the analytics/insight tools (get_delivery_insights, get_conversion_insights, analyze_campaign_performance, detect_spend_anomalies) and between update_campaign and set_campaign_state, both of which can modify campaign status.

Naming Consistency5/5

All tools consistently follow a snake_case verb_noun pattern, with clear conventions for CRUD (get/list/create/update) and state changes (set_*_state). No mixed casing or arbitrary verb styles are present.

Tool Count2/5

43 tools is a heavy surface for an MCP server, well above the 25-tool threshold. While the breadth reflects the ads domain, several analytics, audit, and insight tools could be consolidated without losing capability.

Completeness3/5

The server covers campaign, ad group, ad, audience, conversion tracking, and bulk operations well. However, there are notable lifecycle gaps: no update_ad, no update/delete for conversion event settings or web pixels, and limited management of conversion sources beyond creation.

Maintenance

ActivityMaintained
ResponsivenessNo issues