Meta (Facebook & Instagram) MCP server
Facebook Pages, Instagram and Meta Ads behind a single connection.
- Tools
- 92
- Read-only
- 54
- Write
- 38
- Off by default
- Destructive
- 11
- Flagged distinctly
Meta (Facebook & Instagram) through an assistant
An assistant can read what you published and what it earned: Page and Instagram posts, the comments underneath them, and ad performance broken down by campaign, ad set and ad. Discovery walks your Business Portfolios, so agency-managed accounts show up rather than only the handful attached directly to your login. Publishing, replying and campaign building are opt-in, budgets are checked against a per-connection ceiling, and new campaigns are created paused.
- Page and Instagram posts, comments and insights
- Ad performance across campaigns, ad sets and ads
- Creatives, custom audiences and product catalogues
- Pixel datasets, custom conversions and delivery-blocking errors
- Business Portfolio discovery -- the ad accounts a personal-edge lookup never returns
- Publish posts, reply to comments, build campaigns and audiences (opt-in)
What people actually ask
Real questions, answered from live Meta (Facebook & Instagram) data.
“Which ad sets spent money last week without a single purchase?”
meta_ads_insightsmeta_ads_get_entities“Show me every ad account this login can reach, including through Business Portfolios.”
meta_discover_assetsmeta_list_businesses“Are any of my ads blocked from delivering right now, and why?”
meta_ads_get_errorsmeta_ads_get_opportunity_score92 Meta (Facebook & Instagram) tools
Grouped by what they touch. Every tool is individually toggleable — you expose only what you want.
Catalogs & commerce
32 tools16 read-only · 16 writeShowing 10 of 10 tools
- meta_ads_connect_catalog_event_sourceWrite
Connect a pixel, app or offline event set to a catalog, enabling dynamic ads to retarget people who interacted with its products.
- meta_ads_create_catalogWrite
Create a new, empty product catalog on a Business Portfolio. Use vertical 'commerce' for a standard e-commerce product catalog, or 'test_vertical' for a catalog meant purely for testing.
- meta_ads_create_catalog_feedWrite
Register a recurring feed on a catalog: a URL Meta fetches on a schedule to keep the catalog's products in sync.
- meta_ads_create_catalog_feed_ruleWrite
Add a rule that transforms or maps an attribute during feed ingestion, e.g. set availability to 'out of stock' when inventory is 0. Applies to future imports, not products already loaded.
- meta_ads_create_catalog_feed_upload_sessionWrite
Trigger an immediate, one-time import from a feed's URL, without waiting for its next scheduled run. Useful right after fixing a feed problem.
- meta_ads_create_catalog_productWrite
Add a single product to a catalog. retailerId is your own SKU and must be unique within the catalog — re-using one updates that product instead of creating a duplicate. For bulk loading, use a product feed instead.
- meta_ads_create_catalog_product_setWrite
Create a product set from a filter rule, e.g. {and:[{category:{i_contains:'shoes'}}]}. The set stays live — products entering or leaving the catalog that match the filter join or drop automatically.
- meta_ads_delete_catalog_feedWriteDestructive
Permanently delete a product feed and its schedule. Products already imported through it are not removed — only the recurring sync stops.
- meta_ads_delete_catalog_feed_ruleWriteDestructive
Permanently delete a feed transformation rule. Future imports stop applying it; products already transformed by it are not reverted.
- meta_ads_delete_catalog_productWriteDestructive
Permanently remove a product from a catalog. Cannot be undone, and the product drops out of any product set or dynamic ad using it immediately.
+ 22 more catalogs & commerce tools — see the full catalogue
Pages & Instagram
15 tools10 read-only · 5 writeShowing 10 of 10 tools
- meta_ads_get_ad_account_pagesRead-only
List the Facebook Pages that have been used for ads on a specific ad account.
- meta_ads_get_ig_accountsRead-only
List the Instagram Business or Creator accounts linked to an ad account.
- meta_ads_get_pages_for_businessRead-only
List the Facebook Pages owned by a Business Portfolio. For pages shared with the business by another business or agency, use meta_discover_assets instead.
- meta_create_instagram_postWrite
Publish an image or reel to the Instagram Business account linked to a Page.
- meta_create_postWrite
Create a post on a Facebook Page, optionally with a link, image, or scheduled publish time.
- meta_delete_postWriteDestructive
Permanently delete a post from a Facebook Page. This cannot be undone.
- meta_get_instagram_insightsRead-only
Impressions, reach and engagement for a single Instagram media item.
- meta_get_page_insightsRead-only
Page-level metrics such as fans, impressions and engaged users.
- meta_get_post_insightsRead-only
Impressions, engaged users, clicks and reactions for a single Page post.
- meta_hide_commentWrite
Hide or unhide a comment. Reversible — pass hide: false to restore it.
+ 5 more pages & instagram tools — see the full catalogue
Campaigns & ad sets
14 tools6 read-only · 8 writeShowing 10 of 10 tools
- meta_ads_activate_entityWriteDestructive
Start delivery on a paused campaign, ad set or ad. THIS BEGINS SPENDING REAL MONEY immediately. Reports the entity's current budget back so the amount at risk is visible before and after.
- meta_ads_create_adWrite
Create an ad by attaching a creative to an ad set. Always created PAUSED — the ad set and campaign must also be active before anything delivers.
- meta_ads_create_ad_setWrite
Create an ad set under a campaign with targeting, budget, schedule and optimization goal. Always created PAUSED. For conversion optimization you must supply promotedObject naming the pixel and event.
- meta_ads_create_campaignWrite
Create a Meta ad campaign. Always created PAUSED - use meta_ads_activate_entity to start spending. Supports objective, daily or lifetime budget, bid strategy, spend cap and special ad categories.
- meta_ads_get_entitiesRead-only
List campaigns, ad sets or ads in an ad account with their configuration - budgets, status, objective, targeting, optimization goal and schedule. Use meta_ads_insights for performance metrics.
- meta_ads_update_entityWrite
Update fields on an existing campaign, ad set or ad - rename, change budget, adjust bid or pause it. Cannot activate a paused entity; use meta_ads_activate_entity for that.
- meta_create_ad_setWrite
Create an ad set. meta_ads_create_ad_set supports promoted objects, schedules and attribution, and enforces a spend ceiling.
- meta_create_campaignWrite
Create a campaign, paused by default. meta_ads_create_campaign supports more fields and enforces a spend ceiling.
- meta_discover_assetsRead-only
Discover every ad account, Page and Business Portfolio this connection can reach, across all businesses. Use this first to find the right account IDs — it sees accounts that List Ad Accounts cannot.
- meta_list_ad_accountsRead-only
List ad accounts directly attached to the connected user. Does NOT include accounts held in a Business Portfolio — use meta_discover_assets for those.
+ 4 more campaigns & ad sets tools — see the full catalogue
Audiences
7 tools3 read-only · 4 writeShowing 7 of 7 tools
- meta_ads_create_custom_audienceWrite
Create a custom audience. CUSTOM creates an empty customer list to populate with meta_ads_update_custom_audience_users. WEBSITE and ENGAGEMENT need a rule. LOOKALIKE needs an origin audience, country and ratio.
- meta_ads_delete_custom_audienceWriteDestructive
Permanently delete a custom audience. This cannot be undone, and any ad set targeting it stops delivering to that audience. Refuses while ad sets still reference it unless force is set.
- meta_ads_get_custom_audienceRead-only
Details for a single custom audience: size, status, subtype, and when it was created or last updated.
- meta_ads_get_custom_audience_adsetsRead-only
List the ad sets currently targeting a custom audience. Check this before deleting or shrinking an audience — those ad sets stop delivering to it.
- meta_ads_get_custom_audiencesRead-only
List custom audiences on an ad account with size, subtype and delivery status. Use to see which audiences exist before targeting them.
- meta_ads_update_custom_audienceWrite
Rename an audience, change its description, or update its rule. Does not change membership.
- meta_ads_update_custom_audience_usersWriteDestructive
Add or remove people on a customer-list audience. Supply plain values — email, phone, name, city and so on — and they are normalised and SHA-256 hashed before leaving this server; Meta never receives, and this server never stores or logs, the raw values. Returns counts only.
Creative
7 tools5 read-only · 2 writeShowing 7 of 7 tools
- meta_ads_boost_instagram_postWrite
Turn an existing organic Instagram post into an ad creative, ready to run. This creates only the creative -- pass its id to meta_ads_create_ad_set and meta_ads_create_ad to actually start delivery, the same two-step flow every other ad creation path in this integration uses. Not every post can be boosted (copyrighted music and interactive filters are excluded); check with meta_ads_get_ad_preview first if unsure.
- meta_ads_create_creativeWrite
Create an ad creative — either a link ad from an image plus copy, or a promotion of an existing Page or Instagram post. Returns a creative ID for meta_ads_create_ad.
- meta_ads_get_ad_imagesRead-only
List images uploaded to an ad account, for use as ad creative. Filter by name or hash, or by minimum dimensions.
- meta_ads_get_ad_previewRead-only
Render a preview of an ad, an existing creative, or a not-yet-created creative spec, in a specific placement. Returns an iframe HTML snippet valid for 24 hours. Use this before creating a creative to see how it will actually look.
- meta_ads_get_ad_videosRead-only
List videos uploaded to an ad account, for use as ad creative. Filter by length or aspect ratio.
- meta_ads_get_creative_adsRead-only
List the ads in an account that use a specific creative. Meta has no direct reverse-lookup edge for this, so it scans the account's ads and filters client-side -- on a very large account, ads outside the page window fetched may be missed; raise maxPages if the creative isn't found.
- meta_ads_get_creativesRead-only
List ad creatives in an account, to reuse an existing one rather than building another.
Pixels & datasets
6 tools6 read-only · 0 writeShowing 6 of 6 tools
- meta_ads_get_custom_conversionsRead-only
List the custom conversions defined on an ad account: the rule each one matches, the standard event category it reports as, its value, and which dataset feeds it. These are the conversion events available as ad set optimization goals.
- meta_ads_get_dataset_detailsRead-only
Full configuration for one dataset (pixel): automatic advanced matching and which fields it matches on, first-party cookie status, data use setting, owner, and when it last received an event. Set includeInstallCode to also return the pixel install snippet.
- meta_ads_get_dataset_event_rulesRead-only
List the event rules on a dataset — the rules created by the Event Setup Tool that derive a standard event such as Purchase from a page URL or a click, plus any domain-control rules that drop events. Pass ruleId instead for one rule's full condition set.
- meta_ads_get_dataset_qualityRead-only
Event Match Quality for a dataset: Meta's 0-10 composite score per event, the coverage of each identifier feeding it, and how much more conversion reporting each identifier could unlock. Adds Meta's own diagnostics, the browser/Conversions API split, events dropped for carrying unhashed PII, and time since last event. This is the tool for why conversions are under-reporting.
- meta_ads_get_datasetsRead-only
List the datasets — what Events Manager calls pixels — on an ad account or a Business Portfolio. Supply businessId to see every dataset the portfolio owns or is shared, which is usually more than the ad account edge returns. Returns configuration and last-fired time, not the install snippet.
- meta_ads_get_dataset_statsRead-only
Event volume received by a dataset, in hourly buckets, broken down by a dimension. Use aggregation 'event' for the event mix, 'event_source' to split browser from Conversions API, 'match_keys' for which identifiers arrive, 'url' for the pages firing. Meta keeps only the last 28 days.
Experiments & lift
6 tools3 read-only · 3 writeShowing 6 of 6 tools
- meta_ads_create_abtestWrite
Create a split test comparing two or more campaigns, ad sets, or (for a creative test) ads. Traffic is divided between cells by treatmentPercentage, which must sum to 100 across all cells.
- meta_ads_create_lift_studyWrite
Create a conversion lift study: a holdout-based measurement of the real incremental conversions your ads cause, as opposed to conversions that would have happened anyway.
- meta_ads_get_abtestRead-only
Details, status and results for an existing A/B (split) test — cells, allocation, and per-objective results once concluded.
- meta_ads_get_lift_studyRead-only
Details, status and results for an existing conversion lift study — cells, measurement objectives, and incrementality results once concluded.
- meta_ads_list_experimentsRead-only
List the A/B tests and conversion lift studies on a Business Portfolio or ad account, optionally filtered by type.
- meta_ads_update_experimentWriteDestructive
Rename an A/B test or lift study, extend or shorten its end time before it concludes, or cancel it early by setting endTime to now. start_time and cell allocations cannot change once a study has started — create a new study instead.
Insights & reporting
5 tools5 read-only · 0 writeShowing 5 of 5 tools
- meta_ads_get_activity_logsRead-only
Activity log entries for an ad account -- who changed what, and when. Filter by date range or category (e.g. BUDGET, STATUS, TARGETING).
- meta_ads_get_errorsRead-only
Delivery-blocking errors and issues for a campaign, ad set, ad, or the whole ad account. Check this when something isn't spending or delivering as expected.
- meta_ads_get_opportunity_scoreRead-only
The ad account's optimization score (0-100), with the specific recommendations behind it. Higher means campaigns, ad sets and ads are closer to Meta's own best-practice configuration.
- meta_ads_insightsRead-only
Full Meta Ads performance reporting at account, campaign, ad set or ad level. Supports explicit date ranges or presets, any Meta metric, breakdowns (platform, placement, age, gender, country, device), conversion-action breakdowns, server-side filtering, sorting and time bucketing. Use this for any question about spend, ROAS, CPA, CTR, conversions or trends.
- meta_get_campaign_insightsRead-only
Basic performance for a single campaign. meta_ads_insights is far more capable — explicit date ranges, any metric, breakdowns, filtering and sorting at any level.
Every tool name and description, machine-readable: /llms-full.txt
You decide what it can touch
The same model applies to every connector, and it defaults closed.
Authorize once
Connect Meta (Facebook & Instagram) through its own consent screen. Credentials are encrypted with AES-256-GCM and never returned by any API response or tool call.
Writes off by default
A new connection switches on a read-oriented default set only. Every write tool must be enabled deliberately before any client can call it.
Roles enforced server-side
READ, WRITE and ADMIN gate tool invocation on the server, not just in the UI. A READ member's token is refused any write tool.
Connect Meta (Facebook & Instagram) in minutes
No infrastructure to run. Copy one URL and one token into your client.
- 1Create a free workspace and connect Meta (Facebook & Instagram).
- 2Choose which tools to expose — writes stay off until you enable them.
- 3Copy your MCP endpoint URL and bearer token.
- 4Paste them into Claude, Cursor, or any MCP client.
{
"mcpServers": {
"serve-mcp": {
"url": "https://servemcp.com/api/mcp/your-workspace",
"transport": "http",
"headers": {
"Authorization": "Bearer smcp_..."
}
}
}
}More in Advertising & Social
Amazon Ads
Advertising & SocialSponsored Products, Brands and Display -- plus the analysis that explains a ROAS drop.
Microsoft Advertising
Advertising & SocialSearch campaigns and async reporting on the Microsoft Advertising API.
Threads
Advertising & SocialAlso Meta's, but a separate app and a separate login -- so it gets its own connection.
Put Meta (Facebook & Instagram) in front of your assistant
Free plan, no card required. Connect in minutes.