Skip to main content
Glama
get-mcp-ads

ChatGPT Ads MCP server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENAI_ADS_API_KEYYesRequired. An Advertiser API key created on the Settings page of Ads Manager. Each key is scoped to one ad account. This is not an OpenAI Platform API key.
OPENAI_ADS_ACCOUNT_IDYesRequired. The `adacct_` ID of the account the key belongs to. Every other account ID is refused, and the first request checks that the key matches.
OPENAI_ADS_ENABLE_WRITESNoDefaults to `false`. Only the exact value `true` registers the write tools.false
OPENAI_ADS_ENABLE_ACTIVATIONNoDefaults to `false`. `true` allows activation and changes to `status: "active"`, which can start delivery and spend budget. Requires writes.false

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

Tools

Functions exposed to the LLM to take actions

NameDescription
openai_ads_get_accountA

Read the configured ChatGPT Ads account: name, currency, time zone, status and brand review. Also verifies that the API key belongs to OPENAI_ADS_ACCOUNT_ID. Run it first.

openai_ads_get_campaignsA

List one page of campaigns in the account. Follow last_id only when has_more is true. Budget amounts use integer account-currency micros.

openai_ads_get_campaignA

Read one campaign with its native status, budget, schedule and targeting.

openai_ads_get_ad_groupsA

List one page of ad groups in a campaign. Native ad group IDs start with adgrp_. Follow last_id only when has_more is true.

openai_ads_get_ad_groupB

Read one ad group with its native bidding, context hints and product set.

openai_ads_get_adsA

List one page of ads in an ad group with native creative metadata and review status. Follow last_id only when has_more is true.

openai_ads_get_adA

Read one ad with its creative and review status. No preview or change is requested.

openai_ads_list_ad_creativesA

List chat card creatives of the account or of one ad group, 20 ads per page, or read up to 60 exact adIds. Each item has the native file_id, signed image_url, title, body, destination and review status. An expired image link is refreshed with one ad read. Follow nextCursor when hasMore.

openai_ads_get_insightsA

Read performance by account, campaign, ad group or ad over inclusive account-local dates. One optional country, device or platform breakdown supports delivery metrics only; use openai_ads_get_conversion_insights for conversions by country or device. Attribution defaults to 30-day click, 1-day view and ad_event_time. CTR and CVR are fractions; money uses major units of the account currency. Pages are followed up to maxRows and truncation is explicit.

openai_ads_search_locationsA

Search country, region and market location IDs for campaign geographic targeting. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_audit_logsA

List recorded changes to the account's campaigns, ad groups and ads, optionally filtered by entity, actor or time. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_spend_limitsB

Read the account's spend limit windows and daily recurrence rules. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_landing_page_crawlB

Read the saved landing page crawl evidence for an ad's submitted version. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_conversion_settingsA

List the account's conversion event settings, the goals a campaign can use. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_conversion_pixelsB

List the account's conversion pixels and connected pixel IDs. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_conversion_eventsA

List recent sampled conversion events, for checking that a pixel or server integration sends data. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_conversion_insightsA

Read attributed conversion totals or daily values, optionally by country or device and with event details. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_feedsA

List the account's product feeds, optionally with product counts. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_feed_uploadsB

List recent product feed uploads and their processing results. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_feed_settingsB

Read a feed's display and organic-listing settings. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_feed_productsB

List products in a feed that match ad group product filters. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_custom_audiencesA

List the account's custom audiences. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_custom_audienceB

Read one custom audience and its matched count. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_audience_operationsB

List the accepted operations of a custom audience. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_audience_operationB

Read the lifecycle state of one custom audience operation. Native fields and pagination are preserved. See openai_ads_get_write_schema for nested request fields.

openai_ads_get_bulk_jobA

Read one Bulk API job (limited preview, enabled per account). Only completed, partially_failed and failed are terminal. A completed job still requires reading every operation result and the native entities.

openai_ads_get_bulk_job_operationsA

Read one page of Bulk API operation outcomes: created, updated, validated, failed or skipped. Pass the last operation_id as after only when has_more is true. A partial failure never rolls back earlier operations; do not resubmit an uncertain job.

openai_ads_get_write_schemaA

Read the pinned native request definitions, paths and parameters of every operation, the upload and bulk limits, and what this server leaves out. Schema support does not imply that the account is eligible for a feature.

openai_ads_get_write_contextA

Read the account, its conversion settings and its product feeds before proposing a campaign. Lists the native objective, billing and bid strategy combinations and the missing prerequisites. It grants no eligibility and creates nothing.

openai_ads_get_mutationA

Read a write preview or receipt held by this server process: its state, the native state it was approved against and the result. Receipts live in memory and a restart forgets them. Never resubmit a write whose state is UNKNOWN or APPLYING.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
openai-ads-guideHow this server scopes the account, previews writes and reports units, with the supported metrics, levels and attribution options.

TDQS

A3.5/5.0

Scored across 30 tools

Disambiguation4/5

Most tools target a clearly distinct resource/action, and list-vs-singular pairs are explicitly separated. Minor overlap remains around ad/creative reads and performance vs conversion insights, but the descriptions mostly resolve the boundaries.

Naming Consistency5/5

Every tool follows the openai_ads_{verb}_{noun} snake_case pattern. The use of get, list, and search is intentional and consistent with each tool's read behavior.

Tool Count3/5

Thirty tools is heavy for an MCP surface, especially with many list/singleton pairs and meta read tools. The broad ads domain justifies some breadth, but the set is borderline and could be consolidated.

Completeness2/5

Read coverage is broad across campaigns, ads, feeds, audiences, conversions, and bulk jobs. However, there are no create, update, delete, or apply-write tools; the write schema/context/mutation tools only inspect or read receipts, leaving core management workflows as dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues