BYO AI · Model Context Protocol · 8 supported clients

Connect any AI agent to Admaxxer

Bring your own AI client. Admaxxer ships a Model Context Protocol (MCP) server that any MCP-compatible AI can plug into — Claude Desktop, Claude Code, ChatGPT Desktop, Cursor, Windsurf, Codex CLI, Cline, Zed. Generate one token in Admaxxer, paste it into your client's config, and your AI can read every connected ad account and query revenue and attribution from your first-party analytics store. Tokens are read-only by default; pick the “Read + manage” scope when you want your AI to pause, resume, or adjust a campaign budget — and even then, every change is confirmed in the conversation first.

Each guide below covers the exact config-file path for that client, the JSON snippet to paste, how to verify the connection, and how to troubleshoot when tools don't show up.

What your AI can do

Supported AI clients

The Model Context Protocol is open — if your client speaks MCP, Admaxxer works. We ship one-click configs for the 8 most popular clients below.

Claude Desktop

Anthropic's desktop app — native MCP.

Use Claude Desktop on macOS or Windows. Paste the snippet, restart the app, and Claude can read your campaigns, revenue, and attribution.

Config location: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) · %APPDATA%\Claude\claude_desktop_config.json (Windows)

Read the Claude Desktop guide ›

Claude Code

Claude in your terminal — works the same way.

Claude Code (Anthropic's CLI) reads MCP servers from `.claude/settings.local.json` or your user-level config. Paste, then `/mcp` to verify.

Config location: .claude/settings.local.json (project) · ~/.claude/settings.json (user)

Read the Claude Code guide ›

ChatGPT

OpenAI's desktop app — MCP via Settings.

ChatGPT Desktop ships MCP server support under Settings → MCP Servers. Paste the URL + Authorization header below.

Config location: ChatGPT Desktop → Settings → MCP Servers → Add

Read the ChatGPT guide ›

Cursor

AI-first code editor — native MCP.

Cursor reads MCP servers from `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global). Paste and reload Cursor.

Config location: .cursor/mcp.json (project) · ~/.cursor/mcp.json (global)

Read the Cursor guide ›

Windsurf

Codeium's agentic IDE — speaks MCP.

Windsurf reads MCP servers from `~/.codeium/windsurf/mcp_config.json`. Paste and restart Windsurf.

Config location: ~/.codeium/windsurf/mcp_config.json

Read the Windsurf guide ›

Codex CLI

OpenAI's open-source coding agent — MCP via TOML config.

OpenAI Codex CLI (the open-source autonomous CLI agent at github.com/openai/codex) reads MCP servers from `~/.codex/config.toml`. Paste, then restart `codex`.

Config location: ~/.codex/config.toml

Read the Codex CLI guide ›

Cline

VS Code AI agent — MCP-native.

Cline (the autonomous VS Code agent) reads MCP servers from its settings panel. Open Cline → MCP Servers → Edit MCP Settings, paste the snippet.

Config location: VS Code → Cline panel → MCP Servers → Edit MCP Settings

Read the Cline guide ›

Zed

High-performance editor — MCP via context servers.

Zed surfaces MCP servers as 'context servers' under Assistant → Settings. Add an entry with the URL + bearer token below.

Config location: ~/.config/zed/settings.json (context_servers block)

Read the Zed guide ›

Tools your AI can call

Admaxxer's MCP server exposes 13 tools. Most are read-only and run automatically. The one tool that can change a campaign is unlocked only by a “Read + manage” token and always asks you to confirm the change in the conversation first — management stays at the campaign level (pause, resume, daily budget).

admaxxer_list_connectionsread

Lists every Meta + Google ad-platform connection in the workspace, with status (healthy / token expired / disabled), platform, and account label. Used by the AI to discover which connections to query for insights.

Example prompt: “What ad accounts do I have connected?”

admaxxer_list_campaignsread

Lists active or paused campaigns for a given connection (Meta or Google). Returns campaign ID, name, objective, status, daily budget, and lifetime spend.

Example prompt: “Show me all my Meta campaigns sorted by spend.”

admaxxer_list_adsetsread

Lists ad sets (Meta) / ad groups (Google) for a connection with the same to-the-cent metrics as campaigns — spend, ROAS, conversions, CTR, CPC, daily budget. Returns the whole account in one call; your AI filters by campaignId to drill into a single campaign without another request.

Example prompt: “Show me the ad sets under my best Meta campaign, by ROAS.”

admaxxer_list_adsread

Lists individual ads (Meta) / ad-group ads (Google) for a connection with the same metrics, plus creative thumbnail and preview links where the platform provides them. Returns the whole account in one call; your AI filters by adSetId or campaignId to drill in without another request.

Example prompt: “Which ads in my retargeting ad set have the worst ROAS this week?”

admaxxer_get_campaign_insightsread

Pulls metrics for one campaign over a date range — impressions, clicks, spend, conversions, ROAS, CPA. Optional breakdowns by age, gender, device, region.

Example prompt: “How did campaign 'BFCM Scale' perform last week?”

admaxxer_get_account_insightsread

Account-level rollup of insights across all campaigns for a connection. Optional breakdowns. Best for high-level ROAS / spend trends.

Example prompt: “What's my Meta account ROAS for the last 30 days?”

admaxxer_query_metricsread

Runs a whitelisted analytics-warehouse query (visitors, revenue, MER, LTV, MMM, attribution, forecast). The workspace_id is injected server-side — the AI cannot see another workspace's data.

Example prompt: “What's my blended MER for the last 14 days vs the prior 14 days?”

admaxxer_get_workspace_contextread

Returns the workspace's plan tier, currency, time zone, connected platforms, and last-sync timestamps. Useful for the AI to ground its answers.

Example prompt: “What plan am I on and when was my data last synced?”

admaxxer_get_event_setupread

Returns copy-paste event-tracking code (pixel install + identify() + funnel events) pre-filled with your website id, so your AI can wire analytics into your app for you.

Example prompt: “Fetch my Admaxxer event setup and add the pixel and identify call to this app.”

admaxxer_get_summary_kpisread

Returns the dashboard's headline numbers for a date window — revenue, ad spend, blended MER/ROAS, orders, sessions, visitors — straight from the same analytics store the dashboard reads, so your AI quotes the numbers you see.

Example prompt: “Give me my headline KPIs for the last 14 days.”

admaxxer_get_attribution_breakdownread

Channel-level revenue, spend, and ROAS under your chosen attribution model (last click, first click, linear, time decay, position based, and more) — the same rows as the Sources & Attribution drill-down.

Example prompt: “Break down last week's revenue by channel using last-click attribution.”

admaxxer_get_web_analyticsread

Sessions, unique visitors, pageviews, and bounce rate for a date window — the corrected, dashboard-matching web analytics read.

Example prompt: “How many sessions and visitors did the site get this week?”

admaxxer_update_campaignwrite

Pauses/resumes a campaign or changes its daily budget — campaign-level only, never creation or deletion. Requires a token minted with the 'Read + manage' scope, and EVERY change is two-step: your AI shows you a preview (e.g. "Daily budget $50 → $75") and only executes after you approve it in the conversation.

Example prompt: “Pause the 'Summer Sale — Prospecting' campaign on Meta (I'll confirm).”

Read-only by default. Manage only when you choose.

You decide what your AI can do when you generate the token.

Frequently asked questions

Do I need to be on a paid Admaxxer plan to use MCP?

No. MCP is included on every plan, including the free Pixel tier. Paid plans get higher rate limits on the analytics-warehouse queries and the destructive-tool gate (pausing / updating campaigns).

Does Admaxxer see my AI conversations?

No. The MCP server only sees the tool calls your AI makes (e.g. 'list_campaigns for connection X'). It does not receive your chat history, system prompts, or anything else from the client. We log the tool calls to your account's audit log for your own records, but never the surrounding conversation.

What happens if my MCP token leaks?

Open Admaxxer → Settings → AI Providers → MCP and click 'Revoke' on the leaked token. We store only a SHA-256 hash, not the plaintext, so revocation is immediate and irreversible. Issue a new token and update your client config. The old token cannot be reused.

Can the AI delete my ad accounts or move money?

No. The MCP surface exposes 12 read tools and a single, narrowly-scoped manage tool. The read tools cover the whole ad hierarchy — campaigns, ad sets, and individual ads — but they only READ. The one manage tool is campaign-level pause/resume and daily-budget changes only, and only on tokens minted with the 'Read + manage' scope (tokens are read-only by default). Account-level destructive operations (delete account, transfer billing, campaign creation or deletion, and any ad-set or ad edit) are not in the tool catalog at all. Every management change is two-step confirmed: your AI shows you a preview of the exact change and only executes after you approve it in the conversation.

Which AI clients does Admaxxer support?

Any client that speaks Model Context Protocol. We ship one-click configs for Claude Desktop, Claude Code, ChatGPT Desktop, Cursor, Windsurf, Codex CLI, Cline, and Zed. The protocol is open — if your client supports MCP, Admaxxer works.

Can I scope a token to specific tools or workspaces?

Tokens are scoped to a single workspace today (the one active when you issued the token). Per-tool scoping is on the roadmap — for now you can issue separate tokens per client and revoke any individually.

What's the difference between BYOK and MCP?

BYOK (bring-your-own-key) lets you use Admaxxer's built-in `/chat` with your own AI provider key (OpenAI, Anthropic, OpenRouter, etc.). MCP is the reverse — you use your own AI client (Claude Desktop, ChatGPT, Cursor) and connect it to Admaxxer's data. Both can be used together: connect Cursor via MCP, and have Admaxxer's `/chat` use your Anthropic key.

How to connect

Generate your MCP token, paste it into your AI client's config, and you're ready to query your ad data conversationally. Tokens are per-workspace, revocable, and stored as SHA-256 hashes — we never see the plaintext after issuance.

Generate your MCP token