
Meta Marketing
STDIOHTTP-SSEComprehensive MCP server for Facebook/Instagram advertising via Meta Marketing API integration
Comprehensive MCP server for Facebook/Instagram advertising via Meta Marketing API integration
A comprehensive Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with Facebook/Instagram advertising data through the Meta Marketing API. This server provides full campaign lifecycle management, analytics, audience targeting, and creative optimization capabilities.
npm install -g meta-ads-mcp
git clone https://github.com/your-org/meta-ads-mcp.git cd meta-ads-mcp npm install npm run build
# Clone the repository first git clone https://github.com/your-org/meta-ads-mcp.git cd meta-ads-mcp # Run the interactive setup npm run setup
The setup script will:
ads_read
and ads_management
permissions~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
If the file doesn't exist, create it with the following content:
{ "mcpServers": { "meta-ads": { "command": "npx", "args": ["-y", "meta-ads-mcp"], "env": { "META_ACCESS_TOKEN": "your_access_token_here" } } } }
{ "mcpServers": { "meta-ads": { "command": "npx", "args": ["-y", "meta-ads-mcp"], "env": { "META_ACCESS_TOKEN": "your_access_token_here", "META_APP_ID": "your_app_id", "META_APP_SECRET": "your_app_secret", "META_AUTO_REFRESH": "true", "META_BUSINESS_ID": "your_business_id" } } } }
If you've cloned the repository locally:
{ "mcpServers": { "meta-ads": { "command": "node", "args": ["/absolute/path/to/meta-ads-mcp/build/index.js"], "env": { "META_ACCESS_TOKEN": "your_access_token_here" } } } }
Cursor uses the same MCP configuration as Claude Desktop. Add the configuration to your Cursor settings:
# Run health check to verify everything is working npm run health-check # Or if installed globally npx meta-ads-mcp --health-check
# Install Node.js if not installed # macOS: brew install node # Windows: Download from nodejs.org # Linux: Use your package manager # Verify installation node --version npm --version npx --version
# Fix npm permissions (macOS/Linux) sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share} # Or install without sudo npm config set prefix ~/.npm-global echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc source ~/.bashrc
# Test your token manually curl -G \ -d "access_token=YOUR_ACCESS_TOKEN" \ "https://graph.facebook.com/v23.0/me/adaccounts"
~/Library/Logs/Claude/mcp*.log
%APPDATA%\Claude\logs\mcp*.log
# macOS/Linux - View logs tail -f ~/Library/Logs/Claude/mcp*.log # Windows - View logs type "%APPDATA%\Claude\logs\mcp*.log"
# Test the MCP server directly npx -y meta-ads-mcp # Or if installed locally node build/index.js
Enable debug logging by adding to your environment:
{ "mcpServers": { "meta-ads": { "command": "npx", "args": ["-y", "meta-ads-mcp"], "env": { "META_ACCESS_TOKEN": "your_access_token_here", "DEBUG": "mcp:*", "NODE_ENV": "development" } } } }
For web applications, this server is also available as a Vercel deployment with OAuth authentication:
https://your-project.vercel.app/api/mcp
{ "mcpServers": { "meta-ads-remote": { "url": "https://mcp.offerarc.com/api/mcp", "headers": { "Authorization": "Bearer your_session_token" } } } }
Note: You need to authenticate first at https://mcp.offerarc.com/api/auth/login
to get your session token.
For Vercel deployments, use mcp-remote
to bridge HTTP to stdio:
{ "mcpServers": { "meta-ads": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.offerarc.com/api/mcp", "--header", "Authorization:${META_AUTH_HEADER}" ], "env": { "META_AUTH_HEADER": "Bearer your_session_token_here" } } } }
This MCP server provides 25 comprehensive tools across all major Meta advertising categories:
get_insights
- Get detailed performance metrics (impressions, clicks, ROAS, CTR, CPC, etc.)compare_performance
- Side-by-side performance comparison of multiple campaigns/adsexport_insights
- Export performance data in JSON or CSV formatscreate_campaign
- Create new advertising campaigns with full configuration (includes special_ad_categories)update_campaign
- Modify existing campaigns (name, budget, status, etc.)pause_campaign
- Pause active campaignsresume_campaign
- Resume/activate paused campaignscreate_ad_set
- Create ad sets with detailed targeting, budgets, and optimization goalslist_ad_sets
- List and filter ad sets within campaignscreate_ad
- Create individual ads within ad sets using creative IDslist_ads
- List and filter ads by ad set, campaign, or accountlist_audiences
- List all custom audiences for an accountcreate_custom_audience
- Create custom audiences from various sourcescreate_lookalike_audience
- Generate lookalike audiences from source audiencesget_audience_info
- Get detailed information about specific audienceslist_ad_creatives
- List all ad creatives for an accountcreate_ad_creative
- Create new ad creatives with rich specifications (supports external image URLs)health_check
- Comprehensive authentication and server status checkget_ad_accounts
- List accessible Meta ad accountsget_campaigns
- List campaigns with filtering optionsget_token_info
- Token validation and information retrievaldiagnose_campaign_readiness
- Check campaign status and identify ad set creation issuescheck_account_setup
- Comprehensive account validation and setup verificationCheck the health of the Meta Marketing API server and authentication status
Get detailed performance insights for my Deal Draft campaign including impressions, clicks, ROAS, and CTR for the last 30 days
Compare the performance of my top 3 campaigns side-by-side for the last quarter
Export campaign performance data for all my campaigns last month in CSV format
Create a new traffic campaign named "Holiday Sale 2024" with a $50 daily budget and OUTCOME_TRAFFIC objective
Update my existing campaign budget to $100 daily and change the name to "Black Friday Special"
Pause all campaigns that have a CPC above $2.00
Resume my paused "Summer Collection" campaign
Create a complete "Test 3" campaign setup: 1) Create the campaign with OUTCOME_LEADS objective, 2) Create an ad set targeting US users aged 25-45 interested in entrepreneurship, 3) Create 4 different ads using my existing creatives
Create an ad set for my existing campaign targeting women aged 30-50 in major US cities with interests in business and personal development
Create a new ad in my ad set using creative ID 123456 and name it "Headline Test A"
Diagnose my "Test 3" campaign to see if it's ready for ad set creation and identify any potential issues
Check my account setup to verify payment methods, business verification, and ad account permissions
Check why my ad set creation failed and get specific recommendations for my account setup
List all my custom audiences and show their sizes and status
Create a custom audience named "Website Visitors" from people who visited my site
Create a 5% lookalike audience based on my "High Value Customers" audience targeting the US
Get detailed information about my "Newsletter Subscribers" audience including health status
List all my ad creatives and show their performance data
Create a new ad creative for my holiday campaign with external image URL from my website and specific messaging
Show me all my accessible Meta ad accounts with their currencies and time zones
Get my current access token information including permissions and expiration
The server provides rich contextual data through MCP resources:
meta://campaigns/{account_id}
- Campaign overviewmeta://insights/account/{account_id}
- Performance dashboardmeta://audiences/{account_id}
- Audience insightsmeta://audience-health/{account_id}
- Audience health reportMETA_ACCESS_TOKEN=your_access_token_here
META_APP_ID=your_app_id # For OAuth META_APP_SECRET=your_app_secret # For OAuth META_BUSINESS_ID=your_business_id # For business-specific operations META_API_VERSION=v23.0 # API version (default: v23.0) META_API_TIER=standard # 'development' or 'standard' META_AUTO_REFRESH=true # Enable automatic token refresh META_REFRESH_TOKEN=your_refresh_token # For token refresh
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Claude AI │◄──►│ MCP Server │◄──►│ Meta Marketing │
│ │ │ │ │ API │
│ - Natural │ │ - Authentication │ │ │
│ Language │ │ - Rate Limiting │ │ - Campaigns │
│ - Tool Calls │ │ - Error Handling │ │ - Analytics │
│ - Resource │ │ - Data Transform │ │ - Audiences │
│ Access │ │ - Pagination │ │ - Creatives │
└─────────────────┘ └──────────────────┘ └─────────────────┘
Run the test suite:
npm test
Test with example client:
npx tsx examples/client-example.ts
Health check:
# In Claude: Check the health of the Meta Marketing API server
git checkout -b feature/new-feature
npm test
MIT License - see LICENSE for details.
Built with ❤️ for the AI-powered advertising future