ChatGPT Ads MCP server: manage the OpenAI Ads API from Claude, Codex or Cursor
ChatGPT Ads has no MCP server published by OpenAI that we could find at the time of writing (November 2026); community-built servers wrap the same API with your own key. This guide covers a hosted setup: connect the ad account once on Integrations, then any MCP client reaches it with an Agent Planners key, with creates always paused and spend decisions held for a person.
What already exists for this platform
ChatGPT Ads is managed through the OpenAI Ads API (api.ads.openai.com/v1), authenticated with an Ads API key created in ChatGPT Ads Manager. At the time of writing we found no MCP server published by OpenAI itself; open-source servers built by third parties wrap the API and run with your key on your own machine.
- One key, one ad account. Each request names its ad account; a key reaches only the account it was made for (our live check: another account's id answered 403).
- Spend is real from the first call that turns something on. The API's own defaults are not a safety layer — what a wrapper sends is what runs.
What a hosted layer adds
| A direct API wrapper | Agent Planners MCP | |
|---|---|---|
| ChatGPT Ads tools | Whatever the wrapper exposes | 21 reads, 16 writes |
| Where the key lives | In your client's config | Encrypted on our server; your MCP key never carries it |
| Account binding | Your own discipline | Every request carries the selected ad account |
| Creates | As sent | Campaigns, ad groups and ads always created paused |
| Turning spend on, archiving, audience members, spend limits | Applied when called | Held for a person on every key mode |
| Money | Whatever unit you send | Whole account currency in and out; a raw micro value is refused |
| Other platforms in the same session | No | Every other platform the workspace connected, on one endpoint |
tools:write; a key that lists tools on demand reaches them through search_tools and call_tool.How to configure it
- 1In ChatGPT Ads Manager, open Settings → API keys and create a key for the ad account.
- 2On Integrations, press Connect with an API key on the ChatGPT Ads card, paste the key and press Check and save. It is checked with OpenAI first and stored encrypted.
- 3Create a key in API & MCP:
tools:readfor reporting, addtools:writefor changes. - 4Add the server to Claude Code, Claude Desktop, Codex or Cursor with the snippet below, run
describe_permissions, thenchatgpt_ads__list_ad_accountsand scope each call with that account.
claude mcp add --transport http agent-planners https://www.agentplanners.com/api/mcp \
--header "Authorization: Bearer ap_live_…"What waits for a person, whatever the key allows
A tools:write key's ordinary writes — budgets, bids, targeting, ad copy, a paused build — either run inside the workspace's guardrails or queue for an admin, depending on how the key was minted. These never run on the key's say-so: they are held in the approval queue and an admin or editor is emailed.
- Turning a campaign, ad group or ad on — that is when spend starts.
- Archiving, which the API cannot undo.
- Adding or removing audience members (hashed on our server before they are sent).
- Spend-limit changes through the generic gateway.
What we measured on a live account
- The minimum daily budget was $25 on the account we connected; a lower value is refused by the API.
- Insights report spend as decimals, and ad rows do not carry their ad group id — read ads per ad group when you need the pairing.
- A new audience is not ready for members at once; adding members right after creating it can fail for a while.
Frequently asked questions
- Is there an official ChatGPT Ads MCP server?
- We could not find one published by OpenAI at the time of writing (November 2026). Community-built servers wrap the OpenAI Ads API with your own key; a hosted server like this one stores the key encrypted and holds spend decisions for a person.
- How do I connect Claude to ChatGPT Ads?
- Connect the ad account with an Ads API key on Integrations, create an Agent Planners API key, add the MCP endpoint to Claude Code or Claude Desktop, and call chatgpt_ads__list_ad_accounts to get the account to scope each call with.
- Can an MCP client turn on spend in ChatGPT Ads?
- Not on its own. Everything is created paused, and turning a campaign, ad group or ad on is held for a person on every key mode.