Remote MCP server to interact with Meta Ads API - access, analyze, and manage Facebook, Instagram, and other Meta platforms advertising campaigns.
A Model Context Protocol (MCP) server for interacting with Meta Ads API. This tool enables AI models to access, analyze, and manage Meta advertising campaigns through a standardized interface, allowing LLMs to retrieve performance data, visualize ad creatives, and provide strategic insights for Facebook, Instagram, and other Meta platforms.
DISCLAIMER: This is an unofficial third-party tool and is not associated with, endorsed by, or affiliated with Meta in any way. This project is maintained independently and uses Meta's public APIs according to their terms of service. Meta, Facebook, Instagram, and other Meta brand names are trademarks of their respective owners.
The fastest and most reliable way to get started is to 🚀 Get started with our Meta Ads Remote MCP. Our cloud service uses streamable HTTP transport for reliable, scalable access to Meta Ads data. No technical setup required - just connect and start analyzing your ad campaigns with AI!
https://mcp.pipeboard.co/meta-ads-mcp
That's it! You can now ask Claude to analyze your Meta ad campaigns, get performance insights, and manage your advertising.
Add the following to your ~/.cursor/mcp.json
. Once you enable the remote MCP, click on "Needs login" to finish the login process.
{
"mcpServers": {
"meta-ads-remote": {
"url": "https://mcp.pipeboard.co/meta-ads-mcp"
}
}
}
Use the Remote MCP URL: https://mcp.pipeboard.co/meta-ads-mcp
📖 Get detailed setup instructions for your AI client here
If you're a developer or need to customize the installation, you can run Meta Ads MCP locally. Most marketers should use the Remote MCP above instead! For complete technical setup instructions, see our Local Installation Guide.
Meta Ads MCP also supports streamable HTTP transport, allowing you to run it as a standalone HTTP API for web applications and custom integrations. See Streamable HTTP Setup Guide for complete instructions.
# Install via uvx (recommended)
uvx meta-ads-mcp
# Set your Pipeboard token
export PIPEBOARD_API_TOKEN=your_pipeboard_token
# Add to your MCP client configuration
For detailed step-by-step instructions, authentication setup, debugging, and troubleshooting, visit LOCAL_INSTALLATION.md.
✨ Get started with Remote MCP here - no technical setup required! Just connect your Facebook Ads account and start asking AI to analyze your campaigns.
For local installation configuration, authentication options, and advanced technical setup, see our Local Installation Guide.
mcp_meta_ads_get_ad_accounts
access_token
(optional): Meta API access token (will use cached token if not provided)user_id
: Meta user ID or "me" for the current userlimit
: Maximum number of accounts to return (default: 10)mcp_meta_ads_get_account_info
access_token
(optional): Meta API access token (will use cached token if not provided)account_id
: Meta Ads account ID (format: act_XXXXXXXXX)mcp_meta_ads_get_account_pages
access_token
(optional): Meta API access token (will use cached token if not provided)account_id
: Meta Ads account ID (format: act_XXXXXXXXX) or "me" for the current user's pagesmcp_meta_ads_get_campaigns
access_token
(optional): Meta API access token (will use cached token if not provided)account_id
: Meta Ads account ID (format: act_XXXXXXXXX)limit
: Maximum number of campaigns to return (default: 10)status_filter
: Filter by status (empty for all, or 'ACTIVE', 'PAUSED', etc.)mcp_meta_ads_get_campaign_details
access_token
(optional): Meta API access token (will use cached token if not provided)campaign_id
: Meta Ads campaign IDmcp_meta_ads_create_campaign
access_token
(optional): Meta API access token (will use cached token if not provided)account_id
: Meta Ads account ID (format: act_XXXXXXXXX)name
: Campaign nameobjective
: Campaign objective (AWARENESS, TRAFFIC, ENGAGEMENT, etc.)status
: Initial campaign status (default: PAUSED)special_ad_categories
: List of special ad categories if applicabledaily_budget
: Daily budget in account currency (in cents)lifetime_budget
: Lifetime budget in account currency (in cents)mcp_meta_ads_get_adsets
access_token
(optional): Meta API access token (will use cached token if not provided)account_id
: Meta Ads account ID (format: act_XXXXXXXXX)limit
: Maximum number of ad sets to return (default: 10)campaign_id
: Optional campaign ID to filter bymcp_meta_ads_get_adset_details
access_token
(optional): Meta API access token (will use cached token if not provided)adset_id
: Meta Ads ad set IDmcp_meta_ads_create_adset
account_id
: Meta Ads account ID (format: act_XXXXXXXXX)campaign_id
: Meta Ads campaign ID this ad set belongs toname
: Ad set namestatus
: Initial ad set status (default: PAUSED)daily_budget
: Daily budget in account currency (in cents) as a stringlifetime_budget
: Lifetime budget in account currency (in cents) as a stringtargeting
: Targeting specifications (e.g., age, location, interests)optimization_goal
: Conversion optimization goal (e.g., 'LINK_CLICKS')billing_event
: How you're charged (e.g., 'IMPRESSIONS')bid_amount
: Bid amount in account currency (in cents)bid_strategy
: Bid strategy (e.g., 'LOWEST_COST')start_time
, end_time
: Optional start/end times (ISO 8601)access_token
(optional): Meta API access tokenmcp_meta_ads_get_ads
access_token
(optional): Meta API access token (will use cached token if not provided)account_id
: Meta Ads account ID (format: act_XXXXXXXXX)limit
: Maximum number of ads to return (default: 10)campaign_id
: Optional campaign ID to filter byadset_id
: Optional ad set ID to filter bymcp_meta_ads_create_ad
account_id
: Meta Ads account ID (format: act_XXXXXXXXX)name
: Ad nameadset_id
: Ad set ID where this ad will be placedcreative_id
: ID of an existing creative to usestatus
: Initial ad status (default: PAUSED)bid_amount
: Optional bid amount (in cents)tracking_specs
: Optional tracking specificationsaccess_token
(optional): Meta API access tokenmcp_meta_ads_get_ad_details
access_token
(optional): Meta API access token (will use cached token if not provided)ad_id
: Meta Ads ad IDmcp_meta_ads_get_ad_creatives
access_token
(optional): Meta API access token (will use cached token if not provided)ad_id
: Meta Ads ad IDmcp_meta_ads_create_ad_creative
account_id
: Meta Ads account ID (format: act_XXXXXXXXX)name
: Creative nameimage_hash
: Hash of the uploaded imagepage_id
: Facebook Page ID for the adlink_url
: Destination URLmessage
: Ad copy/textheadline
: Single headline for simple ads (cannot be used with headlines)headlines
: List of headlines for dynamic creative testing (cannot be used with headline)description
: Single description for simple ads (cannot be used with descriptions)descriptions
: List of descriptions for dynamic creative testing (cannot be used with description)dynamic_creative_spec
: Dynamic creative optimization settingscall_to_action_type
: CTA button type (e.g., 'LEARN_MORE')instagram_actor_id
: Optional Instagram account IDaccess_token
(optional): Meta API access tokenmcp_meta_ads_update_ad_creative
creative_id
: Meta Ads creative ID to updatename
: New creative namemessage
: New ad copy/textheadline
: Single headline for simple ads (cannot be used with headlines)headlines
: New list of headlines for dynamic creative testing (cannot be used with headline)description
: Single description for simple ads (cannot be used with descriptions)descriptions
: New list of descriptions for dynamic creative testing (cannot be used with description)dynamic_creative_spec
: New dynamic creative optimization settingscall_to_action_type
: New call to action button typeaccess_token
(optional): Meta API access token (will use cached token if not provided)mcp_meta_ads_upload_ad_image
account_id
: Meta Ads account ID (format: act_XXXXXXXXX)image_path
: Path to the image file to uploadname
: Optional name for the imageaccess_token
(optional): Meta API access tokenmcp_meta_ads_get_ad_image
access_token
(optional): Meta API access token (will use cached token if not provided)ad_id
: Meta Ads ad IDmcp_meta_ads_update_ad
ad_id
: Meta Ads ad IDstatus
: Update ad status (ACTIVE, PAUSED, etc.)bid_amount
: Bid amount in account currency (in cents for USD)access_token
(optional): Meta API access token (will use cached token if not provided)mcp_meta_ads_update_adset
adset_id
: Meta Ads ad set IDfrequency_control_specs
: List of frequency control specificationsbid_strategy
: Bid strategy (e.g., 'LOWEST_COST_WITH_BID_CAP')bid_amount
: Bid amount in account currency (in cents for USD)status
: Update ad set status (ACTIVE, PAUSED, etc.)targeting
: Targeting specifications including targeting_automationaccess_token
(optional): Meta API access token (will use cached token if not provided)mcp_meta_ads_get_insights
access_token
(optional): Meta API access token (will use cached token if not provided)object_id
: ID of the campaign, ad set, ad or accounttime_range
: Time range for insights (default: maximum)breakdown
: Optional breakdown dimension (e.g., age, gender, country)level
: Level of aggregation (ad, adset, campaign, account)mcp_meta_ads_get_login_link
access_token
(optional): Meta API access token (will use cached token if not provided)mcp_meta-ads_create_budget_schedule
campaign_id
: Meta Ads campaign ID.budget_value
: Amount of budget increase.budget_value_type
: Type of budget value ("ABSOLUTE" or "MULTIPLIER").time_start
: Unix timestamp for when the high demand period should start.time_end
: Unix timestamp for when the high demand period should end.access_token
(optional): Meta API access token.mcp_meta_ads_search_interests
access_token
(optional): Meta API access token (will use cached token if not provided)query
: Search term for interests (e.g., "baseball", "cooking", "travel")limit
: Maximum number of results to return (default: 25)mcp_meta_ads_get_interest_suggestions
access_token
(optional): Meta API access token (will use cached token if not provided)interest_list
: List of interest names to get suggestions for (e.g., ["Basketball", "Soccer"])limit
: Maximum number of suggestions to return (default: 25)mcp_meta_ads_validate_interests
access_token
(optional): Meta API access token (will use cached token if not provided)interest_list
: List of interest names to validate (e.g., ["Japan", "Basketball"])interest_fbid_list
: List of interest IDs to validate (e.g., ["6003700426513"])mcp_meta_ads_search_behaviors
access_token
(optional): Meta API access token (will use cached token if not provided)limit
: Maximum number of results to return (default: 50)mcp_meta_ads_search_demographics
access_token
(optional): Meta API access token (will use cached token if not provided)demographic_class
: Type of demographics ('demographics', 'life_events', 'industries', 'income', 'family_statuses', 'user_device', 'user_os')limit
: Maximum number of results to return (default: 50)mcp_meta_ads_search_geo_locations
access_token
(optional): Meta API access token (will use cached token if not provided)query
: Search term for locations (e.g., "New York", "California", "Japan")location_types
: Types of locations to search (['country', 'region', 'city', 'zip', 'geo_market', 'electoral_district'])limit
: Maximum number of results to return (default: 25)mcp_meta_ads_search
(Enhanced)
access_token
(optional): Meta API access token (will use cached token if not provided)query
: Search query string (e.g., "Injury Payouts pages", "active campaigns")Meta Ads MCP follows security best practices with secure token management and automatic authentication handling.
Test your Meta Ads MCP connection with any MCP client:
mcp_meta_ads_get_ad_accounts
mcp_meta_ads_get_account_info
with your account IDmcp_meta_ads_get_campaigns
to see your ad campaignsFor detailed local installation testing, see Local Installation Guide.
The easiest way to avoid any setup issues is to 🎯 use our Remote MCP instead. No downloads, no configuration - just connect your ads account and start getting AI insights on your campaigns immediately!
For comprehensive troubleshooting, debugging, and local installation issues, see our Local Installation Guide which includes: