One MCP across platforms.
Wire your agent once. Add platforms without touching agent code.
One plugin gives your agent a marketing team: nine marketing agents, plus the connector they use to run ads on Reddit, Google Ads, and Meta. Every action logged.
/plugin marketplace add FlyWheelAgents/flywheel-marketing-plugin /plugin install flywheel@flywheel Run these one at a time — Claude Code takes slash commands individually.
Works in the terminal, the desktop app, or your IDE.
claude plugin marketplace add FlyWheelAgents/flywheel-marketing-plugin && claude plugin install flywheel@flywheel In any terminal, before you start a session.
FlyWheelAgents/flywheel-marketing-plugin In the Claude chat app (not Claude Code)? It can't install the plugin — add just the connector: Settings → Connectors.
https://connector.flywheelagents.com/api/mcp ChatGPT → Settings → enable Developer mode → add as a custom connector. Then ask it to get started — the connector walks you through the rest.
uxolioo0 · live $ claude plugin marketplace add FlyWheelAgents/flywheel-marketing-plugin ✓ Fetching marketplace $ claude plugin install flywheel@flywheel ✓ Installing flywheel ✓ Installed flywheel@0.2.0 (9 agents · 11 skills · 1 MCP server) $ /flywheel:get-started Opening browser to authorize Google Ads… → https://connector.flywheelagents.com/connect/google?state=… ✓ Connected: My Test Account (123-456-7890) $ google_campaigns_list NAMESTATUSBUDGET/DAYCOST 7D Brand · Search · UKENABLED$200$1,182 Performance Max · UKENABLED$500$3,041 Retargeting · DisplayPAUSED$50$0
Settings → Connectors → Developer mode: ON ✓ Adding custom connector connector.flywheelagents.com/api/mcp ✓ FlyWheel connected — browser sign-in: email + 6-digit code › Connect my Google Ads account Calling connect_service (google_ads)… → https://connector.flywheelagents.com/connect/google?state=… ✓ Connected: My Test Account (123-456-7890) › List my campaigns Calling google_campaigns_list… NAMESTATUSBUDGET/DAYCOST 7D Brand · Search · UKENABLED$200$1,182 Performance Max · UKENABLED$500$3,041 Retargeting · DisplayPAUSED$50$0
Platforms
How it works
Two commands inside Claude Code add the FlyWheel marketplace and install the plugin: nine marketing agents, guided onboarding, and the connector in one bundle.
/plugin marketplace add FlyWheelAgents/flywheel-marketing-plugin
/plugin install flywheel@flywheel claude plugin marketplace add FlyWheelAgents/flywheel-marketing-plugin && claude plugin install flywheel@flywheel No terminal? Install in the desktop app →
You need a paid ChatGPT plan (Plus, Pro, Business, or Enterprise) on the web. Enable Developer mode in Settings, then add FlyWheel as a custom connector with this URL.
https://connector.flywheelagents.com/api/mcp Run /flywheel:get-started. It walks you through defining your company and brand, then opens a browser sign-in: email, 6-digit code, done. New accounts are enabled by an admin. You'll get an email, usually within a business day, and the agents and skills work while you wait.
/flywheel:get-started ChatGPT discovers the OAuth flow from the URL and opens a browser sign-in: email, 6-digit code, done. A new account is created and waits for admin approval. You'll get an email, usually within a business day.
In chat: getting_started, then connect_service (reddit, google_ads, or meta) to link your ad account, then the platform's create tools — reddit_campaign_create and friends. Every call lands in your audit log first. Headless agents (CI, cron) use a fw_live_ API key from your dashboard instead of the browser flow.
connect_service (service="google_ads") Enable the connector, then ask ChatGPT to get started: it walks you through defining your brand and company, connecting an ad account, and building a first campaign — paused. It remembers your brand between chats. ChatGPT confirms each write; every call lands in your audit log.
connect_service (service="google_ads") The team
One install adds all nine to Claude Code, plus the connector they use to run your ads.
Sets the plan: positioning, budget split, what to do when growth stalls.
Turns an objective into a campaign: structure, targeting, budgets. Ships everything paused.
Goes deep on one platform at a time — Reddit, Google Ads, or Meta — and tells you which to add next.
Reads the numbers and tells you if it's working. Never invents a metric.
Writes headlines, ads, landing pages, and emails. Always three variants, with reasoning.
Checks copy against your brand voice and your claims before it ships.
Builds content calendars, briefs, and repurposing plans.
Runs keyword research and on-page fixes, sized for a small team.
Gets you cited by ChatGPT, Claude, and AI Overviews — the quoted source, not the ranked link.
The connector
Your agent signs in once, then reads and writes on every platform through the same tools. Every call goes to a log you can search and export.
Your agent calls connect_service. Browser opens, you authorize, agent's connected. Tokens encrypted at rest on our side.
reddit_campaigns_list, google_campaigns_list, meta_campaigns_list — same input shapes, one prefix apart. Your agent learns the schema once.
reddit_campaign_create, google_campaign_create, meta_campaign_create and their ad-group and ad tools. New entities ship paused. Inputs validated before the API call.
Agent capability surface
One tool surface, platform-prefixed: reddit_*, google_*, meta_*. Same input shapes, one prefix apart. All writes default to paused; deletion isn't exposed in v0.1.
| Tool | Inputs | Returns | Side effects |
|---|---|---|---|
connect_service | service | sign-in URL | starts OAuth |
{platform}_campaigns_list | account scope | array of campaigns | none (read) |
{platform}_stats | level, date range | metrics by entity | none (read) |
{platform}_campaign_create | name, budget, … | created campaign | creates PAUSED |
asset_upload_begin | filename, content type | upload slot | stores creative |
audit_query | tool?, status?, range? | every action taken | none (read) |
Features
Wire your agent once. Add platforms without touching agent code.
Every call logged with args, status, latency, actor. Filter in the UI, export to your warehouse.
One tool call opens the consent flow. No copy-pasting tokens out of dashboards.
New campaigns can't spend until a human says go. Opt in per call, or globally.
Standard MCP. Any client that speaks the protocol works.
Multiple ad accounts, multiple businesses, one audit log per client.
Why this exists
Google's tools don't look like Meta's. Meta's don't look like Reddit's. Your agent relearns the schema on every platform.
Agents spend real money. When something goes wrong, "check the agent's memory" is not an incident response plan.
Most MCPs ship campaign creation with live spend on by default. That's a budget overrun waiting for a Tuesday.
Why us
Others race to claim 50 integrations. We go deep on the platforms you buy on, and we log everything your agent does.
Frequently asked
FlyWheel gives your AI agent a marketing team and the tools to run ads. The Claude Code plugin installs nine marketing agents; the MCP (Model Context Protocol) connector gives any agent — Claude Code, ChatGPT, Cursor — read and write access to Reddit Ads, Google Ads, and Meta, with every call logged. TikTok, X, and LinkedIn are planned.
MCP is the open Model Context Protocol — a standard way for AI agents to discover and call tools. An MCP server exposes a set of tools (like google_campaigns_list or reddit_campaign_create) over HTTP that any MCP-compatible agent can invoke. FlyWheel is one server, many ad platforms behind it.
Two commands: /plugin marketplace add FlyWheelAgents/flywheel-marketing-plugin, then /plugin install flywheel@flywheel. That installs the marketing agents, the skills, and the connector together. Then run /flywheel:get-started for the guided setup. New accounts are enabled by an admin. You'll get an email, usually within a business day, and the agents and skills work while you wait. The plugin is open source on GitHub.
You need a paid ChatGPT plan (Plus, Pro, Business, or Enterprise) on the web. Enable Developer mode in Settings, then add a custom connector with the endpoint URL https://connector.flywheelagents.com/api/mcp. ChatGPT discovers the OAuth flow and opens a browser sign-in (email + 6-digit code). ChatGPT asks you to confirm each write. Every call still lands in your FlyWheel audit log.
The nine named subagents are Claude Code today. But the connector now carries the guided marketing workflow: in ChatGPT it walks you through defining your company and brand, then designing a first campaign, and remembers that context between chats. So ChatGPT gets the guided setup and every ad tool; the specialised subagent roster stays richest in Claude Code.
Builders, agencies, and ops teams already running paid media.
Reddit Ads, Google Ads, and Meta (Facebook/Instagram) are live in private beta — campaign, ad group/ad set, ad, creative, targeting, budget, and reporting tools on each. TikTok, X, and LinkedIn are on the roadmap. We add platforms based on customer demand.
Today, across Reddit, Google Ads, and Meta: list and inspect campaigns; pull cost, CPC, CTR, impressions, clicks, conversions; upload creatives; create and update campaigns, ad groups, and ads — all new entities ship paused. More tools every release.
Every tool call your agent makes — read or write — is recorded server-side with arguments, status, latency, and the actor identity. You view, filter, and export the audit log. Tokens and secrets are redacted before write.
Building one MCP for one platform takes a week and a developer token. Building five takes a quarter. Maintaining them as APIs version-bump (Google Ads alone moved v20→v22 in 2025) takes forever. FlyWheel handles that, plus the audit log, plus the OAuth-from-agent flow, plus the multi-business model.
Any MCP-compatible agent. Add the connector URL and your client walks you through a browser sign-in (email + 6-digit code) — no key to paste in Claude, ChatGPT, or Claude Code. New accounts are enabled by an admin before tools go live. Headless or programmatic agents (CI, cron, automation platforms) can't do the browser flow, so they use a fw_live_ API key you mint in your dashboard.
OAuth tokens are encrypted at rest with AES-256-GCM. We comply with the Google API Services User Data Policy and Limited Use requirements; ad data is never used to train models or serve ads. API keys are revocable. Read /privacy for the full disclosure.
No. The v0.1 write tools create entities only. Deletion is intentionally gated behind a future approval-workflow release.
Private beta with design partners is running now. Public beta this quarter. Get on the list below.
In Claude Code, install the flywheel plugin (marketing agents + skills + this connector):
/plugin marketplace add FlyWheelAgents/flywheel-marketing-plugin
/plugin install flywheel@flywheel Connector only, no agent team:
claude mcp add --transport http flywheel https://connector.flywheelagents.com/api/mcp Skip this if you installed the plugin; it registers the server itself. If you added the raw server before installing the plugin, run claude mcp remove flywheel first.
Any other MCP client: add this server and sign your principal in through the browser OAuth flow. New accounts are enabled by an admin before tools go live.
https://connector.flywheelagents.com/api/mcp For headless use, send a bearer-token API key your principal minted in the dashboard.
Acting for a ChatGPT user? They need a paid plan and web ChatGPT. Relay: Settings → enable Developer mode → add this URL as a custom connector → browser sign-in (email + 6-digit code) → ChatGPT confirms each write. Or send them to https://flywheelagents.com/?client=chatgpt
Read the machine-readable summary at /llms.txt.
Probe the agent-discovery manifest at /.well-known/mcp.json.
Get beta access
We're onboarding a small group of teams already spending real money through agents. Tell us what you're building — we'll reply within a business day.
Prefer to talk it through?
A 20-minute call with Ben about wiring agents into your ads and marketing.
Book an intro session