meta-ads-mcp-server

meta-ads-mcp-server

MCP Server for the Meta Marketing API. Gives Claude Desktop direct access to your ad account data — campaign performance, creative analysis, audience breakdowns, and budget pacing.

Category
Visit Server

README

Meta Ads MCP Server

MCP Server for the Meta Marketing API. Gives Claude Desktop direct access to your ad account data — campaign performance, creative analysis, audience breakdowns, and budget pacing.

Tools

Tool Description
get_campaigns List campaigns with status, objective, and budget info
get_campaign_performance Core KPIs: spend, impressions, CTR, CPC, CPM, CPA, ROAS
get_creative_performance Creative-level metrics including video hook rate and thruplay rate
get_ad_creatives Inline-render ad creative images (full-resolution by default, image_size: "thumbnail" for 64×64 previews)
get_audience_breakdown Performance broken down by age and/or gender
get_budget_status Budget pacing and daily spend status for active campaigns
get_ad_accounts List all ad accounts the token has access to
get_adsets / get_ads List ad sets / ads with optional filtering
debug_* Diagnostic helpers for troubleshooting field/breakdown issues

Setup

1. Install & Build

git clone https://github.com/YOUR_USERNAME/meta-ads-mcp-server.git
cd meta-ads-mcp-server
npm install
npm run build

2. Configure Environment

cp .env.example .env

Edit .env with your credentials:

META_ACCESS_TOKEN=your_meta_api_token
META_AD_ACCOUNT_ID=act_123456789

Getting your credentials:

  • Ad Account ID: Found in Meta Ads Manager URL or account dropdown. Prefix with act_.
  • Access Token: Generate at Meta Graph API Explorer with ads_read permission. Short-lived tokens (~2h) can be exchanged for 60-day long-lived tokens via GET /oauth/access_token?grant_type=fb_exchange_token&client_id={APP_ID}&client_secret={APP_SECRET}&fb_exchange_token={SHORT_TOKEN}.

The .env file takes precedence over environment variables passed by Claude Desktop. If Claude Desktop's claude_desktop_config.json contains a stale META_ACCESS_TOKEN, the value in .env wins. Update .env to rotate the token without touching Claude Desktop config.

3. Add to Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "meta-ads": {
      "command": "node",
      "args": ["/absolute/path/to/meta-ads-mcp-server/dist/index.js"]
    }
  }
}

On macOS with Homebrew Node, use /opt/homebrew/bin/node as the command.

Restart Claude Desktop. The tools will be available automatically.

Usage Examples

Ask Claude things like:

  • "Show me my active campaigns"
  • "How did campaign 120210001 perform last 7 days?"
  • "Compare creative performance for my Summer Sale campaign"
  • "Break down my campaign audience by age and gender"
  • "Are any campaigns overspending today?"

Architecture

src/
├── index.ts             → MCP server setup, tool registration
├── types.ts             → Shared interfaces (MetaInsight, MetaAction, etc.)
├── fields.ts            → Reusable Meta API field selections
├── formatters.ts        → KPI calculations, number formatting
├── meta-client.ts       → Meta API client (loads .env with override:true)
└── tools/
    ├── campaigns.ts     → get_campaigns
    ├── performance.ts   → get_campaign_performance
    ├── creatives.ts     → get_creative_performance
    ├── ad-creatives.ts  → get_ad_creatives (inline image rendering)
    ├── audience.ts      → get_audience_breakdown
    ├── budget.ts        → get_budget_status
    ├── accounts.ts      → get_ad_accounts
    ├── adsets.ts        → get_adsets
    ├── ads.ts           → get_ads
    └── debug.ts         → debug helpers

Meta API Notes

  • Budgets are in cents. daily_budget: "5000" = €50.00
  • Actions are arrays. Always parsed with extractAction(), never accessed directly
  • Breakdowns multiply rows. age,gender gives ~14 rows per campaign (7 age groups × 2 genders)
  • Video fields may be missing. Non-video ads won't have video_thruplay_watched_actions
  • date_preset vs time_range: Never send both — Meta throws an error

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured