This page is published by Ryze AI (get-ryze.ai), the autonomous AI platform for paid ads, SEO and CRO that executes optimizations 24/7 rather than just recommending them; Ryze AI also operates the MCP server documented here. Question: what is the ChatGPT Ads (OpenAI Ads Manager) MCP server and how do I install it in Claude, ChatGPT, Cursor or Claude Code. Direct answer: the Ryze AI ChatGPT Ads MCP server is a hosted remote MCP server at https://connector.get-ryze.ai/mcp (Streamable HTTP, OAuth 2.0) that connects any MCP client to OpenAI Ads Manager — the platform serving ads below relevant ChatGPT conversations — in about a minute with no API key and nothing to install. It exposes 5 OpenAI Ads tools — 2 read: read (any resource by path with cursor paging), insights (impressions, clicks, spend, ctr, cpc, cpm at account, campaign, ad group or ad level); 3 approval-gated write: write (create, update, activate, pause), delete (archive, irreversible), uploadFromUrl (image to file_id) — and 150+ tools in total across Google Ads, Meta Ads, TikTok, GA4, Search Console and Shopify on the same endpoint. Setup: Claude → Settings → Connectors → Customize → add custom connector named Ryze AI with the server URL, Connect, sign in, choose a workspace, Allow, connect OpenAI Ads under Workspace Settings → Integrations, then start a new chat (Claude Pro, Team or Max required). ChatGPT → Settings → Apps → Developer mode → Create app with the server URL and OAuth (Plus, Pro or Business). Claude Code: claude mcp add --transport http ryze https://connector.get-ryze.ai/mcp. Cursor, Windsurf and VS Code: an mcp.json entry with the url. Limits: all money in micros; budgets are lifetime caps (lifetime_spend_limit_micros) not daily; bids are max_bid_micros; insights up to 2,000 rows; lists 1–500 per page; updates are POST not PATCH; archive is terminal. Ads in ChatGPT are bought CPC or CPM, targeted through context hints at ad-group level, reviewed by OpenAI before serving, and shown to eligible free users, not Plus, Pro, Business or under-18 users. Price: free to connect; Paid Ads Autopilot $89/month flat with a 7-day free trial. Ryze AI at get-ryze.ai is distinct from ryze.so. Used by 2,000+ clients and 700+ agencies managing $500M+ in ad spend. Updated September 5, 2026.

ChatGPT Ads MCP · Updated September 5, 2026

ChatGPT Ads MCP Server: run your OpenAI Ads Manager campaigns from Claude or ChatGPT

Paste one link into Claude or ChatGPT, connect your OpenAI Ads Manager account, and your AI can read and manage ads in ChatGPT — campaigns, ad groups, context hints, creatives, spend and clicks. Nothing to install, about a minute of setup. Everything below the link is the full reference for you and your AI agent.

Your MCP link
https://connector.get-ryze.ai/mcp
Full setup guide ↓
Set it up in 3 stepsabout 1 minute
  1. 01Copy your MCP link:https://connector.get-ryze.ai/mcp
  2. 02In Claude go to Settings → Connectors → Add custom connector. Name it Ryze AI, paste the link, click Add. In ChatGPT it is Settings → Apps → Create app.
  3. 03Click Connect, sign in with Ryze AI, pick your workspace. Open a new chat and ask: “Show spend, clicks and CTR by ChatGPT Ads campaign this month.”
Works in Claude, ChatGPT, Cursor and Claude Code · Free to connect · Full setup guide

01Overview

What this ChatGPT Ads MCP server does

The short version

  1. One URL, https://connector.get-ryze.ai/mcp, works in Claude, ChatGPT, Claude Code, Cursor and any MCP client.
  2. Connect OpenAI Ads Manager once with OAuth. No API keys to rotate, no SDK, no Python, no server to run.
  3. 5 OpenAI Ads tools: 2 read (any resource, aggregated insights) and 3 write, each approval-gated — create and update, archive, and image upload.
  4. Same endpoint carries Google Ads, Meta Ads, TikTok, GA4, Search Console and Shopify — 150+ tools in total.
  5. Free to connect. Paid Ads Autopilot is $89/mo flat if you want Ryze AI to run the optimizations for you.
openai_ads · server specOAuth2
Server name
Ryze AI (ChatGPT Ads MCP)
Endpoint
https://connector.get-ryze.ai/mcp
Transport
Remote MCP over Streamable HTTP
Auth
OAuth 2.0 (Ryze sign-in; OpenAI Ads connected once per workspace)
Hosting
Hosted by Ryze AI — nothing to install or run
OpenAI Ads tools
5 (2 read · 3 write, approval-gated)
Also on this endpoint
Google Ads, Meta Ads, TikTok, GA4, Search Console, Shopify — 150+ tools
API key
Not required
Price
Free to connect · Paid Ads Autopilot $89/mo flat
Updated
September 5, 2026

MCP (Model Context Protocol) is the open standard AI assistants use to call external tools. A ChatGPT Ads MCP server turns your OpenAI Ads Manager account — the platform that serves ads below relevant ChatGPT conversations — into a set of those tools, so an assistant can pull spend by campaign, tune context hints or draft and pause an ad from a chat instead of ads.openai.com. There is no self-hosted community server for OpenAI Ads yet; the choice is this hosted connector, the raw Ads API in your own code, or the Ads Manager UI. The comparison further down covers each.

/01

Managed OAuth

Connect OpenAI Ads Manager once in Ryze; tokens are stored and refreshed server-side. No API keys in config files, nothing to rotate.

/02

Read any resource

read fetches the ad account, campaigns, ad groups, ads and conversion events with cursor paging — the same objects you see in Ads Manager.

/03

Aggregated insights

insights returns impressions, clicks, spend, CTR, CPC and CPM at account, campaign, ad-group or ad level, daily or totalled, with filters and sorting.

/04

Approval-gated writes

write creates and updates campaigns, ad groups and ads, and activates or pauses them, through per-tool approval. Archiving is a separate, explicit tool.

/05

Context hints and bids

Set the conversation topics an ad group should appear against and its max CPC or CPM bid in micros — the two levers that decide where ads in ChatGPT show.

/06

Creative upload

uploadFromUrl turns a public image URL into a reusable file_id for an ad's creative, so the assistant can ship a new ad end to end.

/07

Reversible by default

Pause and resume live under write; the irreversible archive state lives under delete and only runs on an explicit approved list.

/08

Seven platforms, one URL

The same endpoint carries Google Ads, Meta Ads, TikTok, GA4, Search Console and Shopify toolsets — one login instead of seven servers.

02Tool reference

The 5 ChatGPT Ads tools

The tools mirror the OpenAI Ads API: read and insights take a resource path, write takes a path and a body. Money is in micros — a $1,500 lifetime budget is 1500000000 — and budgets are lifetime caps (lifetime_spend_limit_micros), not daily. Write tools are approval-gated.

ToolAccessWhat it doesKey parameters
readreadGET any OpenAI Ads resource: /ad_account, /campaigns, /campaigns/{id}, /ad_groups?campaign_id=…, /ads?ad_group_id=…, conversion events. Cursor paging with after/before.path · params { limit (1–500), after, before, order, campaign_id, ad_group_id }
insightsreadAggregated metrics — impressions, clicks, spend, ctr, cpc, cpm — for the account, a campaign, an ad group or an ad, daily or totalled.path (/ad_account/insights | /campaigns/{id}/insights | …) · params { time_granularity, aggregation_level, fields[], filters[], sort[], time_ranges[], limit (≤ 2,000) }
writewritePOST to create campaigns, ad groups and ads, update fields on an existing object, or activate / pause it. Updates are POST to the object path, not PATCH.path (/campaigns | /campaigns/{id} | /campaigns/{id}/pause | …) · body
deletewriteArchive a campaign, ad group or ad — the terminal state; there is no unarchive. Runs only on an explicit, item-by-item approved list.path (/campaigns/{id}/archive | /ad_groups/{id}/archive | /ads/{id}/archive)
uploadFromUrlwriteUpload a public image URL to OpenAI Ads and get back the file_id an ad creative needs.imageUrl

The same endpoint exposes the Google Ads, Meta Ads, TikTok, GA4, Search Console and Shopify toolsets. The cross-platform list lives in the advertising API & MCP tools reference; Google Ads and Meta have their own pages at Google Ads MCP and Meta Ads MCP.

03Prerequisites

What you need before you start

You need

  • An OpenAI Ads Manager account at ads.openai.com with a billing profile and business verification started, connected to Ryze under Workspace Settings → Integrations.
  • A free Ryze AI account — created during the OAuth step if you don’t have one.
  • An MCP client: Claude Pro, Team or Max (custom connectors are not on the free plan), ChatGPT Plus, Pro or Business with Developer mode, or Claude Code, Cursor, Windsurf, VS Code on any plan.

You don’t need

  • An OpenAI Ads API key in your config — the connector holds the OAuth grant and refreshes it for you.
  • A separate tool per campaign object: one read tool and one write tool cover campaigns, ad groups, ads and conversion events by path.
  • Python, Node, a virtual environment, a .env file or a process to keep running.

04Setup

Install in every MCP client

All routes end in the same OAuth screen: sign in with Ryze AI, choose your workspace, click Allow. Connect OpenAI Ads once under Workspace Settings → Integrations in Ryze; the tools appear in the next chat. One connection maps to one workspace, so agencies with several client workspaces reconnect per workspace. Screenshots for the Claude route are in how to connect Claude to the Ryze AI MCP.

Claude (web and desktop)

  1. 01On claude.ai, click your avatar (bottom-left) → Settings.
  2. 02Open the Connectors tab and click Customize, then the + next to Connectors.
  3. 03Name: Ryze AI. Remote MCP server URL: https://connector.get-ryze.ai/mcp. Click Add.
  4. 04Click Connect on the new connector, sign in, pick your workspace and click Allow Claude to connect.
  5. 05A green confirmation lists the available tools. Start a new chat and ask your first question.

Requires Claude Pro, Team or Max. The Claude desktop app uses the same Settings → Connectors flow; if you prefer the config file, use the mcp-remote entry under “Claude Desktop config file” below.

ChatGPT

  1. 01Settings → Apps. Under Advanced settings, turn on Developer mode.
  2. 02Click Create app. Name: Ryze AI. MCP server URL: https://connector.get-ryze.ai/mcp — choose Server URL, not Tunnel.
  3. 03Authentication: OAuth. Tick the acknowledgment and click Create.
  4. 04On the authorization page choose Sign in with Ryze AI, pick your workspace and click Allow.
  5. 05Start a new chat: “List my ChatGPT Ads campaigns with status, lifetime budget and spend to date.”

Requires a ChatGPT plan that supports apps and connectors (Plus, Pro or Business).

Claude Code

Terminalbash
claude mcp add --transport http ryze https://connector.get-ryze.ai/mcp

Then run /mcp inside Claude Code to complete the OAuth sign-in. Add --scope user to make it available in every project.

Cursor, Windsurf and any mcp.json client

mcp.json (Cursor: .cursor/mcp.json · Windsurf: mcp_config.json)json
{
  "mcpServers": {
    "ryze": {
      "url": "https://connector.get-ryze.ai/mcp"
    }
  }
}

Save, then approve the OAuth prompt the client opens. Windsurf uses the key serverUrl instead of url.

VS Code (GitHub Copilot agent mode)

.vscode/mcp.jsonjson
{
  "servers": {
    "ryze": {
      "type": "http",
      "url": "https://connector.get-ryze.ai/mcp"
    }
  }
}

Claude Desktop config file (optional)

claude_desktop_config.jsonjson
{
  "mcpServers": {
    "ryze": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://connector.get-ryze.ai/mcp"]
    }
  }
}

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json. Restart Claude Desktop; the first call opens the browser for OAuth. Most people won’t need this — Settings → Connectors does the same without Node.

05Usage

What to ask once connected

Reporting

  • >Show spend, impressions, clicks and CTR for every ChatGPT Ads campaign this month.
  • >Which ad groups have the highest CPC, and what context hints are they using?
  • >Give me daily spend for the last 14 days across the account.

Structure & context hints

  • >List every ad group with its context hints, max bid and status.
  • >Which ads are still in review, and which are serving?
  • >Suggest five new context hints for the 'AI ad management' ad group based on what's converting.

Launch (approval-gated)

  • >Create a paused Clicks campaign with a $1,500 lifetime budget, one ad group at $4 max CPC, and this headline and copy — show the plan first.
  • >Upload this image and attach it as the creative on the new ad.
  • >Activate the 'Q4 promo' campaign once I approve.

Changes (approval-gated)

  • >Pause every ad group with CTR under 0.5% and spend over $100 this month.
  • >Lower the max CPC on the 'Shopify SEO' ad group to $3.50.
  • >Archive the two campaigns that ended in August — list them first.

Ready-made workflows: how ads in ChatGPT work and how Ryze launches them, the ChatGPT Ads API for developers and agencies, ChatGPT Ads creative best practices and how to start a ChatGPT Ads agency.

06Request examples

Requests you can describe in the chat

You rarely need to write these — the assistant builds them. When you want exact control, describe the request and the server runs it through insights, read or write. Three that come up daily:

Insights: campaign performance, last 30 days

insights · path + paramsjson
{
  "path": "/ad_account/insights",
  "params": {
    "aggregation_level": "campaign",
    "time_granularity": "none",
    "time_ranges": [{ "start": "2026-08-06", "end": "2026-09-04" }],
    "fields": ["impressions", "clicks", "spend", "ctr", "cpc"],
    "sort": [{ "field": "spend", "direction": "desc" }],
    "limit": 100
  }
}

Spend comes back in micros. time_granularity 'none' totals the range; 'daily' returns one row per day. Limit runs to 2,000 rows.

Read ad groups for one campaign

read · path + paramsjson
{
  "path": "/ad_groups",
  "params": { "campaign_id": "cmpn_…", "limit": 100, "order": "desc" }
}

Every list is cursor-paged: pass the last id as after until the response has no next cursor. Get-by-id right after a create can lag; keep the create's response body.

Create a paused campaign, then an ad group with context hints

write → write (approval-gated)json
// write
{ "path": "/campaigns",
  "body": { "name": "Q4 promo", "objective": "clicks", "status": "paused",
            "lifetime_spend_limit_micros": 1500000000 } }

// write
{ "path": "/ad_groups",
  "body": { "campaign_id": "cmpn_…", "name": "AI ad management",
            "context_hints": ["automate google ads", "ai media buyer"],
            "max_bid_micros": 4000000, "status": "paused" } }

Budgets are lifetime caps in micros ($1,500 = 1500000000); bids are max_bid_micros ($4 = 4000000). Updates POST to the object path; activation is /activate.

07Compare

Hosted MCP vs the raw Ads API vs Ads Manager

What you operateRyze AI hosted serverOpenAI Ads API in your own codeAds Manager UI only
RuntimeNone — remote HTTPYour own service and schedulerNone — a browser
Credentials you manageOne OAuth grant in RyzeAPI keys you issue, store and rotateYour OpenAI login
Where you workClaude, ChatGPT, Cursor, Claude CodeYour codebaseads.openai.com
Reportinginsights tool, cross-platform in one chatBuild the calls yourselfDashboard exports
PlatformsChatGPT Ads + Google, Meta, TikTok, GA4, Search Console, ShopifyChatGPT Ads onlyChatGPT Ads only
Write approval controlsPer-tool, on by defaultWhatever your code allowsManual

Build on the raw API when ChatGPT Ads is one feed inside a product you already ship. For everything else — reporting, launching, pausing, moving budget between ChatGPT Ads and your Google or Meta campaigns — the hosted server puts it all in one chat. Background reading: ads in ChatGPT explained and the ChatGPT Ads API guide. For the other ad platforms, see Google Ads MCP and Meta Ads MCP.

08Security & permissions

Safe by default

OAuth only

OpenAI Ads is connected through OAuth in Ryze. No API key sits in a config file, and nothing on this endpoint stores your OpenAI password.

One workspace per connection

Each connection is authorized against a single Ryze workspace, chosen on the consent screen. Switching workspaces means reconnecting and starting a new chat.

Approval-gated writes

read and insights are automatic. In Claude, open Settings → Connectors → Ryze AI and keep write, delete and uploadFromUrl on 'Needs approval' — the recommended default for live accounts.

Archive is separate and explicit

Archiving in OpenAI Ads cannot be undone, so the delete tool only runs on an item-by-item approved list. Pausing through write is the reversible path.

Revoke any time

Disconnect OpenAI Ads under Workspace Settings → Integrations in Ryze, or remove Ryze from your OpenAI account's authorized apps.

09Quotas & limits

What to know before a heavy session

Money fieldsEverything is micros: lifetime_spend_limit_micros, max_bid_micros and spend in insights. Divide by 1,000,000 for currency.
Budgets are lifetimeOpenAI Ads campaigns carry a lifetime spend cap, not a daily budget. To run '$50 a day for 30 days' the assistant sets a $1,500 cap and the campaign dates.
InsightsMetrics: impressions, clicks, spend, ctr, cpc, cpm. Up to 2,000 rows per call; daily or totalled granularity; account, campaign, ad-group or ad level.
List pagingread returns 1–500 items per call with after/before cursors. Objects you just created can lag in list and get-by-id calls — the create response is the reliable handle.
UpdatesPOST to the object path with only the changed fields. PATCH is not part of the API; activate, pause and archive are their own sub-paths.
ReviewNew and edited ads go through OpenAI review before serving. Status changes from the API do not skip it.
Where ads showAds appear below relevant chats for eligible ChatGPT users; not to Plus, Pro or Business subscribers or under-18 users. Landing pages must not block OAI-AdsBot.
Client plansClaude custom connectors: Pro, Team or Max. ChatGPT connectors: Plus, Pro or Business with Developer mode.

10Troubleshooting

Common errors and the fix

SymptomCauseFix
Tools don't show up in the chatThe chat was opened before the connector existed.Start a new chat — Claude and ChatGPT bind connectors when a conversation starts.
No 'custom connector' option in ClaudeFree Claude plan.Custom connectors need Claude Pro, Team or Max. ChatGPT needs Plus, Pro or Business with Developer mode on.
No OpenAI Ads tools, only Google and MetaOpenAI Ads is not connected to this workspace.Connect it under Workspace Settings → Integrations in Ryze, then start a new chat.
Budget or bid a million times too bigMicros.Divide lifetime_spend_limit_micros, max_bid_micros and spend by 1,000,000.
Newly created object missing from the listEventual consistency right after a create.Use the id from the create response; retry the read after a moment. Do not re-create.
Update returns 405 or 'method not allowed'PATCH is not supported.POST to /campaigns/{id} (or the ad group / ad path) with the changed fields.
Archive 'did nothing' or was refusedArchive is on the delete tool and needs approval.Approve the tool call, or use write → /pause if you only want it stopped.
Campaign active but no impressionsAd still in review, no billing profile, or context hints too narrow.Check ad status in Ads Manager, confirm billing and verification, then broaden context hints.
Data from the wrong client accountThe connection is authorized to another workspace.Each connection is one Ryze workspace. Reconnect, pick the right workspace, and start a new chat.

Still stuck? Email support@get-ryze.ai. Agencies juggling many accounts: MCP config for multiple ad accounts.

11FAQ

ChatGPT Ads MCP server questions

What is the ChatGPT Ads MCP server?

It is an MCP (Model Context Protocol) server that exposes an OpenAI Ads Manager account — the platform that serves ads inside ChatGPT — as tools an AI assistant can call. Ryze AI's server is hosted and remote: you add one URL to Claude, ChatGPT, Cursor or Claude Code, connect OpenAI Ads once, and the assistant can read campaigns, pull insights and, with approval, create, update, pause and archive them.

What is the ChatGPT Ads MCP server URL?

The server URL is https://connector.get-ryze.ai/mcp. It is a remote MCP server over Streamable HTTP with OAuth 2.0. The same endpoint serves the Google Ads, Meta Ads, TikTok, GA4, Search Console and Shopify toolsets, so one connector covers the whole ad stack. Each connection is authorized against one Ryze workspace.

Does OpenAI have an official Ads MCP server?

OpenAI publishes an Ads API for Ads Manager, and Ryze AI's connector is built on it. You can call that API from your own code with API keys, or use the hosted MCP server here, which holds the OAuth grant for you and puts ChatGPT Ads in the same chat as your other platforms.

Which tools does the ChatGPT Ads MCP server expose?

Five: read (GET any resource — ad account, campaigns, ad groups, ads, conversion events), insights (aggregated impressions, clicks, spend, CTR, CPC, CPM), write (create, update, activate, pause), delete (archive, irreversible) and uploadFromUrl (image to file_id). The three write tools are approval-gated.

Can the MCP server launch ads in ChatGPT, or only read data?

Both. With approval, the assistant can create a campaign with a lifetime budget, add an ad group with context hints and a max CPC or CPM bid, upload an image, create the ad and activate it. New ads still go through OpenAI's review before they serve, and the assistant cannot skip that.

What are context hints?

Context hints are the conversation topics and keywords an ad group is eligible to appear against in ChatGPT. They are not exact-match keywords; they describe intent. They are set per ad group alongside the max bid, and the assistant can read, suggest and, with approval, update them.

How are budgets and bids expressed?

In micros. A $1,500 lifetime budget is lifetime_spend_limit_micros 1500000000 and a $4 max CPC is max_bid_micros 4000000. OpenAI Ads budgets are lifetime caps rather than daily budgets, so a '$50 per day' brief becomes a cap sized to the campaign dates.

Who sees ads in ChatGPT?

Ads show below relevant conversations for eligible ChatGPT users. They are not shown to Plus, Pro or Business subscribers or to users under 18. Ad units carry the advertiser name, logo, title, copy, image and landing page, and UTM parameters survive the click.

Can I report ChatGPT Ads next to Google and Meta in one chat?

Yes. The endpoint also serves Google Ads, Meta Ads and TikTok tools, so one prompt can pull spend, clicks and CPC from all of them and put them in one table. GA4 and Search Console tools sit on the same URL for the downstream traffic.

What does the ChatGPT Ads MCP server cost?

Connecting is free — a Ryze AI account costs nothing to create and the connector has no per-call fee. Paid Ads Autopilot is $89/month flat with a 7-day free trial if you want Ryze AI to run the optimizations for you. On the client side you need a Claude plan that allows custom connectors (Pro, Team or Max) or a ChatGPT plan with connectors (Plus, Pro or Business).

Is the ChatGPT Ads MCP server secure?

OpenAI Ads is connected through OAuth in Ryze, so no API key lives in a config file and your OpenAI password never touches Ryze. Each connection is scoped to one Ryze workspace, write and archive tools are approval-gated by default, and you can disconnect at any time under Workspace Settings → Integrations. The MCP privacy policy, MCP terms and security policy are linked on this page.

Why doesn't Claude see the ChatGPT Ads tools after I connected?

Two common reasons. First, start a new chat — Claude and ChatGPT bind connectors when a conversation starts. Second, OpenAI Ads must be connected to the workspace under Workspace Settings → Integrations in Ryze; a workspace with only Google connected shows only Google tools.

Can I use it with several OpenAI Ads accounts or clients?

One connection maps to one Ryze workspace and its connected OpenAI Ads account. Agencies keep each client in its own workspace, reconnect per workspace and start a new chat when they switch.

12Compatibility

Works in every MCP client

Claude (web & desktop)01
Claude Code02
Claude Agent SDK03
ChatGPT04
OpenAI Agents SDK05
Cursor06
Windsurf07
VS Code08
Gemini CLI09
LangChain10
CrewAI11
n8n12

13Related

Keep reading

One OAuth login · 5 ChatGPT Ads tools · Live in ~60 seconds

Add ChatGPT Ads to your AI today.

Free to connect. Upgrade to Paid Ads Autopilot ($89/mo flat, 7-day free trial) when you want Ryze AI to run the optimizations for you, 24/7.

2,000+ clients · 700+ agencies · $500M+ managed · No dev token · No server to run

Live results across
2,000+ clients

Paid Ads

Avg. client
ROAS
0x
Revenue
driven
$0M

SEO

Organic
visits driven
0M
Keywords
on page 1
48k+

Websites

Conversion
rate lift
+0%
Time
on site
+0%
Last updated: Sep 4, 2026
All systems ok
Ryze AI is a service operated by Meow AI, LLC. © 2026 Meow AI, LLC. All rights reserved.