MCP server
Run ChatGPT Ads from OpenClaw, Hermes or Claude.The newest ad platform, with its rules checked before the API ever sees a request.
ChatGPT Ads is new and its API is strict: a $25 a day minimum, two ad formats with their own prerequisites, body text with a length limit, and no delete. Toffu is an MCP server with a marketing agent that checks those rules locally. Ask for a campaign from the agent you already use; Toffu builds the campaign and ad group paused, explains what the ad needs, and asks you once before it writes.
No credit card · 500 credits on signup · Results in 60 seconds
you › Create a paused ChatGPT Ads campaign for signups at toffu.ai. US only, the lowest daily budget the platform allows, one ad group and one ad. Pick sensible defaults and tell me what you chose.toffu › Waiting for approval to write to ChatGPT Ads: Create campaign "Dogfood MCP v2 | ChatGPT Ads | US | Oct26". Reply "approve" to run it, or "skip" to cancel.you › approvetoffu › Creating campaign and ad group. Checking what the ad needs...toffu › Campaign and ad group are created and paused. No ad yet; you have two formats to pick from and each needs something I do not have. 1. Campaign Dogfood MCP v2 | ChatGPT Ads | US | Oct26, id cmpn_6ac37b11268881a1bfb67a266ceff0d1, paused 2. Ad group id adgrp_95108050409081a18ea8d2c57d1721c5, paused, $25/day, US, clicks bidding, $2.00 max CPC Defaults I chose: $25/day, which is the platform minimum. Clicks bidding with a $2.00 max CPC. US only. The ad: a chat_card ad needs an uploaded image file. A product_ad_template ad only works inside a product-feed campaign, and this one is not. Send me an image, or tell me which file to use, and I will create a chat_card ad, paused. The body text has a length limit I check before sending anything.
Connect
Add Toffu to your MCP client
Copy this to your agent
Onboard onto Toffu as my AI marketing agent. Read https://toffu.ai/llms.txt and follow it: sign up at https://mcp.toffu.ai/agent/signup (no email needed), then add https://mcp.toffu.ai/mcp as an MCP server in your client with the key you get back and reload so its tools load. Don't hand-roll JSON-RPC. Then use the send_message tool to create a paused ChatGPT Ads campaign for signups on my site: US only, $25 a day, one ad group, and read it back.
Paste it into your agent. It does discovery, signup and connection; you don’t run anything yourself. It is the same flow as our agent onboarding.
Or add the server URL directly
$ https://mcp.toffu.ai/mcpClients that take a server URL (Claude, ChatGPT, Cursor, Claude Code): add this one and sign in with OAuth. See the full MCP guide.
Then connect ChatGPT Ads inside Toffu once, at toffu.ai, Integrations. Toffu holds the OAuth token; your MCP client never sees it.
What you can do
A strict new API, with the strictness handled for you
Minimums enforced before the API
ChatGPT Ads requires at least $25 a day. Toffu rejects a lower budget locally, with the reason, before any API call, so you never end up with a campaign written and an ad group refused.
Two ad formats, explained
chat_card needs an uploaded image file. product_ad_template works only inside a product-feed campaign. When neither is ready, Toffu creates the campaign and ad group, explains both options, and waits for you instead of failing.
Body text checked locally
Ad body text has a length limit. Toffu checks it before sending and tells you how far over you are, instead of relaying the API's error.
Approve once per request
The first write asks for approval. The rest of that request runs on the same approval, so campaign plus ad group is one "approve". A new request asks again.
Query performance across platforms
One call returns spend, impressions, clicks and conversions per campaign for ChatGPT Ads alongside Google, Meta, Microsoft, Reddit and TikTok Ads, normalized into one table.
Safe by default
Campaigns and ad groups are created paused. There is no delete or archive on the platform, so a campaign you are done with stays paused. Budget and status changes are a plain request plus one approval card.
How it works
Connect. Ask. Approve.
Connect Toffu as an MCP server
Paste the onboarding prompt into your agent. It signs up, registers https://mcp.toffu.ai/mcp and loads the tools. Connect ChatGPT Ads inside Toffu once.
Ask in plain language
"Create a paused campaign for signups, US, lowest budget allowed." Toffu checks the budget against the $25 minimum, plans the structure, and asks you before the first write.
Approve, then read back
Reply "approve". Toffu builds the campaign and ad group, reads each back from ChatGPT Ads, reports the cmpn_ and adgrp_ ids, and tells you what the ad needs.
After it is built
Keep running it from the same chat
The campaign is a normal ChatGPT Ads campaign. The ChatGPT Ads dashboard still works. Toffu is the faster hand.
Add the image and the ad
Upload an image in the ChatGPT Ads dashboard, then: "Create a chat_card ad with that image." Toffu checks the body text length, creates the ad paused, and reads it back.
Change budgets with one approval
"Raise it to $40 a day." Toffu shows one approval card with the change, writes it after you approve, and reads the new value back. Anything under $25 is refused before the card.
Pause instead of delete
The platform has no delete or archive. "Pause the campaign" is one request and one approval, and the campaign stays in the account, paused.
Same agent in Toffu's own chat
Everything you build from OpenClaw, Hermes or Claude shows up in your Toffu workspace, with the same history and the same account rules.
FAQ
Common questions
What is MCP?
Model Context Protocol, the open standard that lets agents like OpenClaw, Hermes, Claude and ChatGPT call outside tools. Toffu is a hosted MCP server, so there is nothing to install.
Which clients work?
Any client that supports remote MCP servers over streamable HTTP with OAuth: OpenClaw, Hermes, Claude (web, desktop, Claude Code), ChatGPT apps, Cursor, and most agent frameworks. Yes, you can run ChatGPT Ads from inside ChatGPT.
Will it spend money without asking?
No. The first write in a request asks for approval, and Toffu creates campaigns and ad groups paused unless you say otherwise. Budget and status changes are one request and one approval card each.
Why $25 a day?
That is the platform minimum for a daily budget. Toffu checks it locally and refuses a lower number before any API call, with the minimum in the message, so you can pick a budget that will be accepted.
Why was no ad created?
A chat_card ad needs an uploaded image file, and a product_ad_template ad only works inside a product-feed campaign. Neither was available, so Toffu created the campaign and ad group, explained both options, and left the ad for your next request.
Can I delete a campaign?
No. ChatGPT Ads has no delete or archive, so campaigns stay in the account paused. Undo exists on Google Ads and Meta Ads; on ChatGPT Ads, setting a value back is one more request and one approval.
Your next ChatGPT Ads campaign is one sentence away.
Connect Toffu to the client you already use. Ask for the campaign. Approve once.
No credit card · 500 credits on signup · Results in 60 seconds