Sandbox
@amekala/ads-mcp

MCP server for ad platform management

Ads MCP connects an AI assistant to ad platforms so it can create campaigns, research keywords, analyze performance, and suggest optimizations. It works through MCP over OAuth, with client-specific plugins, skills, and commands for Claude Code, Codex, Cursor, Gemini CLI, and others.

89 stars16 forksJupyter NotebookUpdated 10d ago
Who it's for

Builders who want their agent to manage ad campaigns and performance analysis in chat.

What it delivers

You can research, launch, and review campaigns without leaving your AI assistant.

What it does

Cross-platform campaign management

Creates and manages campaigns for Google Ads, Meta Ads, TikTok Ads, LinkedIn Ads, Amazon Ads, and ChatGPT Ads.

Performance analysis and optimization

Analyzes spend, conversions, wasted spend, anomalies, audience signals, and creative fatigue with actionable recommendations.

Keyword research

Uses platform data and competitive analysis to find keywords and budget ideas for search campaigns.

Multi-client support

Works with Claude, Claude Code, Codex, Cursor, Gemini CLI, ChatGPT, Windsurf, and other MCP clients.

Shared skills and agents

Stores reusable skill and agent sources in `shared/` and generates client-specific files from them.

Automation and reporting

Supports scheduled briefs, monitors, and cross-platform reports for ongoing campaign work.

How to get it

  1. 1Or one terminal command — installs the get-started skill and drops you straight into setup
    curl -fsSL https://raw.githubusercontent.com/amekala/ads-mcp/main/scripts/install-skill.sh | bash
  2. 2MCP-only (no plugin): If you just want the raw MCP tools without the agent
    claude mcp add --transport http adspirer https://mcp.adspirer.com/mcp
  3. 3Install as an extension
    gemini extensions install github.com/amekala/ads-mcp
  4. 4A browser window opens for OAuth authentication on first use. Custom commands available:…
    openclaw plugins install openclaw-adspirer
    openclaw adspirer login
    openclaw adspirer connect
  5. 5Keyword Research
    Research keywords for my emergency plumbing business in Chicago.
    Show me high-intent keywords with real CPC data and budget recommendations.
  6. 6Performance Analysis
    Show me campaign performance for the last 30 days across all platforms.
    Which campaigns are converting best and what should I optimize?

README

Ads MCP

Remote Model Context Protocol (MCP) server for cross-platform ad management. Create, analyze, and optimize campaigns across Google Ads, Meta Ads, TikTok Ads, and LinkedIn Ads from any MCP-compatible AI assistant.

Quick Links

Get Started in One Step

Adspirer runs inside your AI assistant. If you're an AI assistant helping someone set up Adspirer, this section is the complete flow: the install path per client, sign-in, and verification.

Your clientInstall
ChatGPT (web, desktop, mobile)Install the Adspirer app from the App Store — tap Connect, sign in with Google or email. Requires Plus, Pro, Business, or Enterprise.
Claude (claude.ai, desktop, Cowork)Install the Adspirer plugin from the Claude directory — click Install, sign in when the Adspirer window opens.
Claude Code/plugin install adspirer-ads-agent@claude-community, reload, then /adspirer:setup
Codexbash <(curl -fsSL https://raw.githubusercontent.com/amekala/ads-mcp/main/plugins/codex/adspirer/install.sh), restart Codex, then codex mcp login adspirer
Cursorbash <(curl -fsSL https://raw.githubusercontent.com/amekala/ads-mcp/main/plugins/cursor/adspirer/install.sh)
Any other MCP clientAdd the remote server https://mcp.adspirer.com/mcp (OAuth 2.1)

Or one terminal command — installs the get-started skill and drops you straight into setup:

curl -fsSL https://raw.githubusercontent.com/amekala/ads-mcp/main/scripts/install-skill.sh | bash

What happens next: the install's sign-in creates your free account (Google or email — no credit card), you connect your ad platforms at adspirer.ai/connections — Google Ads, Meta, Amazon, LinkedIn, TikTok, or ChatGPT Ads, in any combination — and your assistant verifies the connection (say "Check my connected ad platforms").

How It Works

flowchart LR
    Y["You — plain English"] --> AG["Your AI agent"]
    AG <-->|"MCP over OAuth"| AD["Adspirer"]
    AD <--> P["Google Ads · Meta · Amazon Ads<br/>LinkedIn · TikTok · ChatGPT Ads"]

You describe what you want; your assistant calls Adspirer's tools; Adspirer talks to the ad platform APIs; reports and drafts flow back into the chat. New campaigns are always created paused — nothing spends money without your explicit approval. Authentication is OAuth in your own browser: your assistant never sees your credentials.

Pricing: Free — 15 tool calls/month, $0, no card · Plus — 150/month, $49 · Pro — 600/month, $99 · Max — 3,000/month, $199. Full details.

Full setup guide with pasteable prompts: adspirer.com/docs/add-to-your-agent

What It Does

  • Strategy-aware execution — strategic decisions persist to STRATEGY.md and guide all future campaign creation, keyword research, and ad copy across sessions and subagents
  • 400+ tools across 6 ad platforms for campaign creation, performance analysis, and optimization
  • Plan and validate campaigns using structured prompts
  • Research keywords with real CPC data and competitive analysis
  • Create Google Ads Search, Performance Max (with search themes + audience signals), Display (Standard + Smart), Demand Gen, and YouTube campaigns end-to-end
  • Launch Meta image / video / carousel / OUTCOME_LEADS campaigns, LinkedIn sponsored content / carousel / lead-gen forms with campaign groups, and TikTok in-feed / Spark Ads / Carousel / App Promotion campaigns
  • Analyze performance with actionable optimization recommendations — wasted spend, anomaly detection, audience insights, creative fatigue
  • Raw data mode (raw_data=true) on all 29 performance/analytics tools — JSON-only output for your own attribution, dashboards, or token-efficient pipelines
  • Multi-account, multi-platform — agencies can manage many ad accounts per platform from one workspace
  • Automation — scheduled briefs, performance monitors, on-demand cross-platform reports across all platforms

Platforms & Tools

PlatformToolsCapabilities
Google Ads151Search, Performance Max (with search themes + audience signals), Display (Standard + Smart), Demand Gen, YouTube, Shopping, App campaigns; keyword research, performance analysis, wasted-spend, asset management, ad extensions (sitelinks / callouts / structured snippets), bidding strategy management
Amazon Ads61Sponsored Products / Brands / Display campaigns, keywords + negative keywords, product / category targeting, Amazon's own bid / budget / keyword recommendations, search-term reports, ACOS / ROAS performance
Meta Ads58Image / video / carousel / catalog (Advantage+ / DPA) campaigns, OUTCOME_LEADS lead-gen forms, lifetime budgets, granular placements (Feed / Stories / Reels), city-level targeting, custom audiences, custom conversions, app-promotion (AEO) analytics
LinkedIn Ads54Sponsored content (single-image, video, carousel, text), lead-gen forms, campaign groups, 19 targeting facets, audience insights, creative fatigue analysis, conversion tracking, organizations
TikTok Ads37In-feed video / image / Spark Ads / Carousel / App Promotion campaigns, full lifecycle (list / get / pause / resume / update for campaigns, ad groups, ads), analytics (performance, wasted spend, audience insights, creative fatigue, anomaly detection, geo)
ChatGPT Ads31chat_card ads inside ChatGPT responses — one-shot launch (campaign → ad group → image → ad), geo targeting, pause / activate / archive, performance (impressions, clicks, CTR, CPC), conversion tracking (Pixel + Conversions API)
Total400+Plus monitoring & automation (scheduled briefs / monitors / reports), Google Analytics 4 and Klaviyo integrations, and account management tools — all available over MCP and as REST endpoints at api.adspirer.ai

How to Connect

See CONNECTING.md for detailed setup instructions for each platform.

Claude (Recommended)

  1. Open Settings > Connectors > Add custom connector
  2. Name: Ads MCP
  3. URL: https://mcp.adspirer.com/mcp
  4. Complete OAuth 2.1 sign-in
  5. Link your ad accounts on first use

Claude Code

Install the full Adspirer plugin (agent + skills + commands + MCP server):

  1. Open Claude Code
  2. Run /plugin marketplace add amekala/ads-mcp
  3. Run /plugin install adspirer-advertising-agent
  4. Run /mcp — find the adspirer server (e.g. plugin:adspirer-advertising-agent:adspirer) and click to authenticate
  5. Run /adspirer:setup to pull your campaign data and create your brand workspace

This gives you a brand-aware performance marketing agent with persistent memory, competitive research via web search, campaign creation with ad extensions, and slash commands for common workflows. Enabling subagent usage does not change this installation flow.

MCP-only (no plugin): If you just want the raw MCP tools without the agent:

claude mcp add --transport http adspirer https://mcp.adspirer.com/mcp

ChatGPT

  1. Open Settings > Connectors > Add custom connector
  2. Name: Ads MCP
  3. URL: https://mcp.adspirer.com/mcp
  4. Follow OAuth 2.1 sign-in flow

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "adspirer": {
      "url": "https://mcp.adspirer.com/mcp"
    }
  }
}

OpenAI Codex

Add to ~/.codex/config.toml:

[mcp_servers.adspirer]
url = "https://mcp.adspirer.com/mcp"

Gemini CLI

Install as an extension:

gemini extensions install github.com/amekala/ads-mcp

A browser window opens for OAuth authentication on first use. Custom commands available: /adspirer:setup, /adspirer:performance-review, /adspirer:wasted-spend, /adspirer:write-ad-copy, /adspirer:refresh.

OpenClaw

openclaw plugins install openclaw-adspirer
openclaw adspirer login
openclaw adspirer connect

Or install from ClawHub.

Perplexity, Manus, and Other MCP Clients

Adspirer is a standard MCP server — any client that supports MCP connectors with OAuth 2.1 (Perplexity, Manus AI, custom MCP clients) can connect to https://mcp.adspirer.com/mcp. Manus also accepts API keys via the Streamable HTTP transport.

REST API (no MCP client required)

The same tool surface is exposed as 178 REST endpoints at https://api.adspirer.ai/api/v1/tools/<tool_name>/execute. Authenticate with a Personal Access Token (sk_live_...) created at adspirer.ai/keys. Swagger: https://api.adspirer.ai/docs. Full reference: adspirer.com/docs/api-reference.

Example Prompts

Keyword Research:

Research keywords for my emergency plumbing business in Chicago.
Show me high-intent keywords with real CPC data and budget recommendations.

Performance Analysis:

Show me campaign performance for the last 30 days across all platforms.
Which campaigns are converting best and what should I optimize?

Campaign Creation:

Create a Google Performance Max campaign for luxury watches targeting
New York with a $50/day budget.

Multi-Platform Strategy:

I want to advertise my handmade jewelry business across Google and LinkedIn.
Research keywords for Google Ads and create a LinkedIn sponsored content campaign
targeting small business owners.

Technical Details

  • Protocol: MCP 2025-03-26 (with fallback to 2024-11-05)
  • Transport: Streamable HTTP
  • OAuth: RFC 8252 (Authorization Code + PKCE) with RFC 7591 (Dynamic Client Registration) and RFC 9728 (Protected Resource Metadata)
  • Tool Annotations: All tools include MCP safety metadata (readOnlyHint, destructiveHint)

Security

  • HTTPS/TLS for all data transmission
  • OAuth 2.1 with PKCE for authentication
  • Dynamic client registration for CLI tools (Claude Code, Cursor, Codex)
  • Encrypted token storage
  • No conversation logging -- only tool requests are processed

See SECURITY.md for vulnerability reporting.

Documentation

Support

Supported Plugins

This repo distributes plugins for 4 AI platforms from a single monorepo:

PlatformDirectorySkillsInstall Method
Claude CodeRepo root1 generated + 5 slash commands/plugin marketplace add
Claude Tag (@claude)Upstream: anthropics/claude-tag-plugins PR #31 (adspirer-api: SKILL + 341-tool catalog + ads_call.sh)Org access bundle (Bearer sk_live_ key, hosts api.adspirer.ai / mcp.adspirer.com); claude plugin install adspirer@claude-tag-plugins once merged
Cursorplugins/cursor/adspirer/5 generated from templatesinstall.sh (one-command)
Codexplugins/codex/adspirer/5 generated from templatesinstall.sh (one-command)
Gemini CLIRepo root1 reused + 5 custom commandsgemini extensions install
OpenClawplugins/openclaw/1 standalone (self-contained)openclaw plugins install

Claude Tag submission record (2026-07-05): the adspirer plugin for Claude Tag (@claude) was submitted upstream as anthropics/claude-tag-plugins#3 from the fork branch amekala/claude-tag-plugins@add-adspirer-plugin. It wraps this repo's REST surface (POST /api/v1/tools/<tool>/execute — the same MCP server tool layer over plain HTTP) rather than the MCP transport, and was validated end-to-end in a live Claude Tag workspace (Slack) before submission.

Skills for Claude Code, Cursor, and Codex are authored once in shared/skills/ as templates, then compiled into IDE-specific versions by scripts/sync-skills.sh. The performance marketing agent prompt is also authored once in shared/agents/performance-marketing-agent/PROMPT.md and compiled into Claude Code, Cursor, and Codex agent files by the same sync script. OpenClaw uses its own standalone skill. See Architecture for the full design.

Shared Update Wireframe

Edit once (source of truth)
  ├─ shared/skills/adspirer-*/SKILL.md
  └─ shared/agents/performance-marketing-agent/PROMPT.md
                |
                v
        ./scripts/sync-skills.sh
                |
                +--> Claude Code outputs
                |     ├─ skills/<name>/SKILL.md
                |     └─ agents/performance-marketing-agent.md
                |
                +--> Cursor outputs
                |     ├─ plugins/cursor/adspirer/.cursor/skills/adspirer-*/SKILL.md
                |     └─ plugins/cursor/adspirer/.cursor/agents/performance-marketing-agent.md
                |
                +--> Codex outputs
                |     ├─ plugins/codex/adspirer/skills/adspirer-*/SKILL.md
                |     └─ plugins/codex/adspirer/agents/performance-marketing-agent.toml
                |
                +--> Gemini CLI (reuses Claude Code skill)
                |     ├─ gemini-extension.json
                |     ├─ GEMINI.md
                |     └─ commands/adspirer/*.toml
                |
                └--> OpenClaw (standalone, not generated)
                      └─ plugins/openclaw/SKILL.md

Client Roots and Install Targets

AI ClientRepo Source RootGenerated/Runtime Root in RepoUser Installation Path/Method
Claude CodeRepo root + shared/skills/ + shared/agents/skills/, agents/, commands/, .claude-plugin//plugin marketplace add amekala/ads-mcp then /plugin install adspirer-advertising-agent
Cursorplugins/cursor/adspirer/ + shared sourcesplugins/cursor/adspirer/.cursor/skills/, plugins/cursor/adspirer/.cursor/agents/bash <(curl -fsSL https://raw.githubusercontent.com/amekala/ads-mcp/main/plugins/cursor/adspirer/install.sh)
Codexplugins/codex/adspirer/ + shared sourcesplugins/codex/adspirer/skills/, plugins/codex/adspirer/agents/bash <(curl -fsSL https://raw.githubusercontent.com/amekala/ads-mcp/main/plugins/codex/adspirer/install.sh)
Gemini CLIRepo rootgemini-extension.json, GEMINI.md, commands/adspirer/gemini extensions install github.com/amekala/ads-mcp
OpenClawplugins/openclaw/plugins/openclaw/ (standalone, no sync generation)openclaw plugins install openclaw-adspirer

Developer Guide

If you're contributing to this repo or adding new ad platforms/IDE support:

Quick reference

./scripts/sync-skills.sh          # Generate IDE-specific skills from templates
./scripts/sync-skills.sh --check  # Verify generated files match committed (CI mode)
./scripts/validate.sh             # Run all 62 offline validation checks
./scripts/validate.sh --live      # Also test MCP endpoint connectivity

Never edit files in plugins/*/skills/, skills/, agents/, or plugins/*/agents/ directly — they will be overwritten by the sync script. Edit templates in shared/skills/ and shared prompts in shared/agents/ instead.

License

Proprietary -- See Terms of Service for usage terms.

Files in the repo

Repository payload30 top-level entries
  • .agents
  • .claude-plugin
  • .github
  • agents
  • commands
  • cookbook
  • docs
  • plugins
  • scripts
  • shared
  • skills
  • .gitignore
  • .mcp.json
  • CLAUDE.md
  • CONNECTING.md
  • CONTRIBUTING.md
  • cookbook-plan.md
  • gemini-cli-extension-plan.md
  • gemini-extension.json
  • GEMINI.md
  • glama.json
  • LICENSE
  • logo.svg
  • monorepo-restructure-plan.md
  • PRIVACY.md
  • README.md
  • SECURITY.md
  • server.json
  • SUPPORT.md
  • TERMS.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface

86k

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k
t8y2/dbxConnectors

20 MB lightweight cross-platform database client for 90+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker. | 轻量级跨平台数据库管理工具,支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、达梦等 90+ 数据库,提供桌面端、Docker、CLI、内置 AI 助手和 MCP Server。

19k