OpenAI Ads MCP logo

OpenAI Ads MCP

Connects MCP clients to OpenAI Ads for account data, insights, campaign creation, creatives, audiences, and conversion events.

Install OpenAI Ads MCP

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "openai-ads-mcp-2": {
      "command": "uvx",
      "args": [
        "openai-ads-mcp"
      ],
      "env": {
        "OPENAI_ADS_API_KEY": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

uvx openai-ads-mcp

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 14d ago.

Overview

OpenAI Ads MCP MCP server connects MCP clients to OpenAI Ads, ChatGPT Ads, and the OpenAI Advertiser API. It exposes tools for account checks, performance insights, campaign and ad workflows, creative uploads, audience operations, and conversion events. Python and Node runtimes support stdio, while the Node runtime also supports Streamable HTTP. Use it when an assistant needs to inspect or cautiously manage OpenAI advertising data, with readonly mode available for initial access.

Use cases

  • Inspect OpenAI Ads account and campaign performance
  • Create paused campaigns and ads from an assistant
  • Upload creatives for chat card ads
  • Send validated conversion events
  • Review audiences and geographic targeting data

Key features

  • OpenAI Ads account and resource tools
  • Insight queries with filters and pagination
  • Guarded paused campaign workflows
  • Creative upload with file ID output
  • Conversion event validation and sending
  • Python, Node, and Streamable HTTP runtimes

Tools8

What OpenAI Ads MCP lets your agent do. Expand a tool for its parameters.

Self-reported~216 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

7/7 checks healthy over the last 44d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 7d ago via OSV.dev · openai-ads-mcp (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars3Stargazers on the source repository.
Last commit3mo agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Tools exposed8Callable tools this server registers over MCP.
Directory activity4 viewsConfig copies, upvotes, and views on AllMCPs.

How OpenAI Ads MCP works

What OpenAI Ads MCP MCP server does

OpenAI Ads MCP MCP server provides typed MCP access to OpenAI Ads, ChatGPT Ads, and OpenAI's Advertiser API. It is intended for assistants that need to inspect advertising accounts, analyze delivery data, prepare campaigns, work with creatives and audiences, or submit conversion events.

The server exposes 27 tools across account, campaign, ad group, ad, insight, audience, conversion, and helper functions. Read operations include account checks, resource listing and retrieval, geographic search, and segmented insight queries. Write operations cover campaign and ad group changes, ad creation and state changes, creative uploads, audience management, and conversion submission.

How it works

The package is available in Python and Node forms. Both runtimes use the same tool names, arguments, defaults, safety behavior, and vendored OpenAPI reference. They normally run over stdio, using uvx, pip, npx, or npm installation commands.

A client supplies an OpenAI Ads API key through the environment for requests to https://api.ads.openai.com/v1. The get_account tool can check the account and confirm that the key works. get_insights supports account, campaign, ad group, and ad scopes, with fields, filters, sorting, segments, and cursor pagination.

The server is designed to make writes deliberate. Campaigns and ads created by the documented creation tools start paused. Campaign creation includes a lifetime-budget guard, and build_campaign creates a paused campaign, ad group, and ads as a guarded workflow. draft_context_hints produces API-shaped hints deterministically without an internal LLM call. send_conversions validates events locally before sending them to the documented conversion endpoint and supports validation-only requests, obref, and mobile app lifecycle events.

Setup and configuration

Install the Python runtime with uvx openai-ads-mcp or pip, or run the Node runtime with npx -y openai-ads-mcp or npm. Set OPENAI_ADS_API_KEY before starting the server. The optional OPENAI_ADS_API_BASE_URL supports HTTPS test or proxy endpoints, and OPENAI_ADS_BUDGET_CEILING_USD changes the budget guard from its default of 100 USD.

Set OPENAI_ADS_MCP_READONLY=1 or true for the recommended first connection. In this mode, write tools are not registered and cannot be called. Remove the setting only after confirming the account and reviewing available data.

The Node runtime can serve Streamable HTTP with --http. It defaults to port 8080 and the /mcp path, supports bearer protection through OPENAI_ADS_MCP_HTTP_TOKEN, and can accept an API key per request with X-OpenAI-Ads-API-Key. Remote mode keeps readonly behavior unless write access is explicitly enabled. The hosted public mode requires caller-supplied API keys and refuses a server-side Ads key.

Tools and capabilities

  • Inspect account access and retrieve campaigns, ad groups, ads, and audiences.
  • Query insights with filtering, sorting, segmentation, and pagination.
  • Create paused campaigns, ad groups, and ads, including a combined campaign workflow.
  • Upload an image URL or local image and receive a file_id for ad creation.
  • Search geographic data and manage audiences.
  • Send validated conversion events or run conversion validation without sending.
  • Produce deterministic context_hints and bulk A/B test hints.

Limitations and notes

OpenAI Ads MCP MCP server does not make created campaigns or ads active by default. A chat_card ad requires both target_url and file_id. The hosted endpoint supports anonymous initialization and tool discovery, but Ads API calls still require the caller's API key. Public hosted deployments should keep writes disabled and avoid placing shared Ads credentials in browser-visible configuration.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about OpenAI Ads MCP

OpenAI Ads MCP is an MCP server that connects AI clients to OpenAI Ads, ChatGPT Ads, and the OpenAI Advertiser API. Its main tools inspect accounts and insights, create paused campaigns and ads, upload creatives, manage audiences, and send validated conversion events.

Install it with `uvx openai-ads-mcp` for Python or `npx -y openai-ads-mcp` for Node. Set `OPENAI_ADS_API_KEY` before starting it, and set `OPENAI_ADS_MCP_READONLY=1` for a read-only first connection.

Yes, OpenAI Ads MCP works with Cursor through a standard MCP configuration.

Set `OPENAI_ADS_MCP_READONLY` to `1` or `true` before starting the server. Readonly mode omits every write tool from `tools/list`, so those tools cannot be called until the setting is removed.

Yes, the Node runtime supports Streamable HTTP with `npx -y openai-ads-mcp --http`. It uses `/mcp` on port 8080 by default, supports bearer protection with `OPENAI_ADS_MCP_HTTP_TOKEN`, and keeps remote mode readonly unless writes are explicitly allowed.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewOpenAI Ads MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/openai-ads-mcp-2?style=directory)](https://allmcps.com/mcp/openai-ads-mcp-2)
HTML Embed
<a href="https://allmcps.com/mcp/openai-ads-mcp-2"><img src="https://allmcps.com/api/badge/openai-ads-mcp-2?style=directory" alt="OpenAI Ads MCP on AllMCPs" /></a>