MCP server
Run TikTok Ads from OpenClaw, Hermes or Claude.Campaign and ad group with placement, optimization and billing chosen for you. Ads wait for a video.
Toffu is an MCP server with a marketing agent behind it. Ask for a campaign from the agent you already use. Toffu builds the campaign and ad group in your TikTok Ads account with settings that fit the goal, puts the budget where $20 a day is allowed, and refuses to create an ad TikTok would reject. Everything is created DISABLE, which is TikTok's word for paused, and you approve once before the first write.
No credit card · 500 credits on signup · Results in 60 seconds
you › Create a paused TikTok campaign for traffic to toffu.ai. US only, $20 a day, one ad group and one ad. Pick sensible defaults and tell me what you chose.toffu › Waiting for approval to write to TikTok Ads: Create campaign "Dogfood MCP v2 | TikTok | US | Oct26". Reply "approve" to run it, or "skip" to cancel.you › approvetoffu › Creating campaign and ad group. Checking the account for an uploaded video...toffu › Campaign and ad group are created, both DISABLE (TikTok's word for paused). No ad yet, and here is why. 1. Campaign Dogfood MCP v2 | TikTok | US | Oct26, id 1878205030689153, Traffic objective, DISABLE 2. Ad group US | Broad | Traffic, id 1878205034467506, DISABLE, $20/day, US, TikTok placement only, landing page destination, optimizes for clicks, billed per click, no bid cap Why no ad: TikTok placement needs a video and your account has none uploaded. An image-only ad would be rejected, so I did not send it. Upload a video, or tell me which one to use, and I will create the ad with operation_status DISABLE so it stays paused. Budget note: the $20/day sits on the ad group. TikTok's campaign-level daily budgets start around $50, so a campaign budget would have forced you higher.
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 TikTok Ads campaign for signups on my site: US only, $20 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 TikTok Ads inside Toffu once, at toffu.ai, Integrations. Toffu holds the OAuth token; your MCP client never sees it.
What you can do
TikTok's settings picked for you, TikTok's rejections avoided
Campaign and ad group with the right settings
Traffic objective, landing page destination, TikTok placement only, optimized for clicks and billed per click, no bid cap. Toffu picks the set that fits the goal, tells you, and reads both objects back with ids.
Budget where $20 a day is allowed
TikTok's campaign-level daily budgets start around $50. Toffu sets the daily budget on the ad group instead, so a small test campaign stays small.
No doomed ads
An ad on TikTok placement needs a video. If the account has none uploaded, Toffu refuses an image-only ad before calling the API and tells you what to upload, instead of returning TikTok's error.
Paused means DISABLE
Campaigns and ad groups are created with operation_status DISABLE, and so is each creative inside an ad. Nothing serves until you say enable.
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 TikTok alongside Google, Meta, Microsoft, Reddit and ChatGPT Ads, normalized into one table.
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 TikTok Ads inside Toffu once.
Ask in plain language
"Create a paused campaign for traffic to toffu.ai, US, $20 a day." Toffu plans the structure, picks placement and bidding, and asks you before the first write.
Approve, then read back
Reply "approve". Toffu builds the campaign and ad group, checks the account for video before touching ads, reads each object back from TikTok, and reports ids and statuses.
After it is built
Keep running it from the same chat
The campaign is a normal TikTok Ads campaign. TikTok Ads Manager still works. Toffu is the faster hand.
Add the video and the ad
Upload a video in TikTok Ads Manager, then: "Create the ad with the video I just uploaded." Toffu creates it with operation_status DISABLE and reads it back.
Change budgets with one approval
"Raise the ad group to $30 a day." Toffu shows one approval card with the change, writes it after you approve, and reads the new value back.
Enable when ready
"Enable the campaign and ad group." One request, one approval, and the read-back shows ENABLE at both levels.
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.
Will it spend money without asking?
No. The first write in a request asks for approval, and Toffu creates campaigns, ad groups and ads with operation_status DISABLE unless you say otherwise. Budget and status changes are one request and one approval card each.
Why was no ad created?
Your account had no uploaded video. TikTok placement rejects image-only ads, so Toffu stopped before the API call and said what to upload. Once a video is in the account, one more request creates the ad, paused.
Why is the budget on the ad group and not the campaign?
TikTok's minimum for a campaign-level daily budget is around $50. Ad group budgets accept $20 a day, so that is where Toffu puts a small budget. Ask for a campaign budget explicitly if you want one.
Can I undo a change?
Undo exists on Google Ads and Meta Ads. On TikTok Ads every change is one approval card, and the read-back shows the value you replaced, so "set it back to $20" is one more request.
Your next TikTok 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