Skip to main content
Glama
649,985 tools. Updated 2026-10-08 20:04

"Facebook" matching MCP tools:

  • Aggregated analytics broken down by dimension and/or time. Fast — hits the pre-aggregated reporting endpoint, not the raw events table. USE WHEN the user asks for counts, values, or trends grouped by anything: - by event name ("how many Purchases vs Leads?") → dimensions=['event_name'] - by traffic source ("top sources?", "Google vs Facebook?") → dimensions=['source'] - by day / week / month ("daily conversions", "weekly trend") → granularity + read daily_series in response - by hour, device, or browser → dimensions=['hour'|'device'|'browser'] - first-click vs last-click attribution → attribution='first_click' - filtered to one delivery integration ("events delivered to Facebook CAPI") → connector='facebook' Prefer this over list_events / list_sessions for ANY question that resolves to a number, a chart, or a ranking — it is orders of magnitude faster. For a single-period overall snapshot (no dimension breakdown), use get_summary instead. Date range required, max 30 days. Call get_container first if you need the list of valid event names for this container.
    ConnectorOAuth
  • Set the channel-level Meta placement default of an existing DRAFT wizard campaign's Facebook or Instagram channel: automatic placements (Meta decides where ads serve) or a manual list of surfaces (Feed, Stories, Reels, ...). Placements are where the ads serve inside Meta's networks. This is the same "Placements" control the platform UI shows in the Facebook/Instagram section of the campaign draft page. The campaign MUST already have the channel enabled (via create_campaign / add_and_edit_campaign_elements). WARNING: DRAFT-ONLY: the platform rejects the edit once the campaign is Launching/Launched. KEYWORDS: meta, facebook, instagram, threads, placements, placement, feed, stories, reels, explore, search results, profile feed, automatic placements, manual placements, advantage+ placements, where ads serve, surfaces, channel settings, campaign settings WHEN TO USE: - Serve ads only on specific surfaces (e.g. Instagram Reels and Stories) - Switch a channel back to automatic placements (Meta optimizes delivery) - The user asks where their Facebook/Instagram ads will appear PARAMETERS: - campaign_id: the wizard campaign ID (required) - channel: FACEBOOK | INSTAGRAM (required — the campaign channel to edit) - mode: AUTO | MANUAL (required). AUTO = automatic placements, clears any manual set. MANUAL = serve only on the placements listed. - placements: array of placement codes, required when mode=MANUAL, ignored for AUTO. Facebook surfaces: FB_FEED, FB_STORIES, FB_REELS, FB_SEARCH_RESULTS. Instagram surfaces: IG_FEED, IG_PROFILE_FEED, IG_EXPLORE, IG_EXPLORE_HOME, IG_STORIES, IG_REELS, IG_SEARCH_RESULTS. Threads: TH_THREADS_STREAM. PLACEMENT RULES (enforced; violations return a descriptive error): - Companion rules: FB_STORIES and FB_SEARCH_RESULTS require FB_FEED; IG_PROFILE_FEED, IG_SEARCH_RESULTS and IG_EXPLORE require IG_FEED; IG_EXPLORE_HOME requires IG_EXPLORE; TH_THREADS_STREAM requires IG_FEED. - An INSTAGRAM channel accepts IG_* placements only. - A FACEBOOK channel always accepts FB_* placements. IG_* / TH_* placements on a FACEBOOK channel additionally need the account's unified-placement rollout (feature flag CORE_META_IG_PLACEMENT_ON_FB) — the platform rejects them on accounts without it. - IG_PROFILE_FEED is not available on Lead Gen (CPL) campaigns. - AUTO is rejected while the channel has ad groups (per-ad-group setups keep manual placements). This tool sets the campaign-wide default for the channel. Per-ad-group placement overrides exist in the platform UI but are not editable through chat yet — send users to the campaign page for per-ad-group customization. EXAMPLES: Instagram channel, Reels + Stories + Feed only: update_meta_placements({"campaign_id": 12345, "channel": "INSTAGRAM", "mode": "MANUAL", "placements": ["IG_FEED", "IG_STORIES", "IG_REELS"]}) Facebook channel back to automatic placements: update_meta_placements({"campaign_id": 12345, "channel": "FACEBOOK", "mode": "AUTO"}) RESPONSE: {success, campaign_id, channel_id, channel, campaign_status, applied:{mode, placements}, previous?, errors?} `previous` echoes the channel's placement state before the edit. INTEGRATION WITH OTHER TOOLS: - Use search_campaigns_by_names / get_campaign_by_wizard_id to find the campaign - The channel is enabled by create_campaign or add_and_edit_campaign_elements - Reddit placements (feed/conversations) are a different system: use update_reddit_channel_settings for those
    Connector
    Destructive
    API key
  • Remove specific audiences from one or more channels in an existing campaign. Use this tool when you need to detach a named audience/group from a particular channel (e.g. remove "European Digital Nomad Investors" from FACEBOOK). Channel and audience IDs are resolved internally — you only need the human-readable channel type and audience name. Works on both campaign structures. On a Channel-First / Native (N×N×N) campaign the audience is cleared from its WizNativeAdContainer(s); any container then left with no asset at all (no audience, target group, keyword, ad or offer) is dropped, and on a draft the audience's group is deleted from the channel, so the campaign no longer lists it. A container left holding ads with nothing to target them is named in the removal message. KEYWORDS: remove, delete, audience, group, channel, campaign, targeting WHEN TO USE: - User wants to remove a specific audience from a channel - User wants to clean up audiences from one or more channels (targeting groups: remove_target_groups_from_campaign) - Multiple audiences across multiple channels can be removed in a single call RESPONSE: - Returns the refreshed campaign state plus a removal_results list with one entry per requested removal recording its success or error. ALWAYS check removal_results — a partial failure (e.g. one of two names not found) still returns normally, so report only what actually came back successful. REQUIRED PARAMETERS: - campaign_id: Campaign ID (numeric identifier) - channel_audiences: Object mapping channel type → list of audience names to remove CHANNEL TYPES: FACEBOOK, INSTAGRAM, GOOGLE_ADS, LINKEDIN, MICROSOFT_ADS, REDDIT, TWITTER EXAMPLES: Remove one audience from FACEBOOK: remove_audiences_from_campaign({ "campaign_id": 42545, "channel_audiences": { "FACEBOOK": ["European Digital Nomad Investors_p2w8"] } }) Remove audiences from multiple channels at once: remove_audiences_from_campaign({ "campaign_id": 42545, "channel_audiences": { "FACEBOOK": ["Audience A", "Audience B"], "LINKEDIN": ["Audience C"] } }) INTEGRATION WITH OTHER TOOLS: - Use get_campaign_by_wizard_id to inspect current audiences per channel before removing - Use search_campaigns_by_names to find the campaign ID
    Connector
    Destructive
    API key
  • Disconnect a specific advertising channel from the Metadata platform. USAGE INSTRUCTIONS FOR LLM: Use this tool to disconnect/remove integration connections for advertising channels. This is useful when users need to remove a channel integration or reconnect with different credentials. WHEN TO USE THIS TOOL: - User asks to "disconnect [channel name]" - User wants to "remove [channel] integration" - User needs to "unlink [channel] account" - User wants to "revoke [channel] access" - User asks to "disconnect my Facebook/LinkedIn/Twitter/Reddit/Google account" - User needs to "reset [channel] connection" - Preparing to reconnect a channel with different credentials SUPPORTED CHANNELS: - facebook: Disconnect Facebook advertising account - instagram: Disconnect Instagram advertising account - linkedin: Disconnect LinkedIn advertising account - twitter: Disconnect Twitter/X advertising account - reddit: Disconnect Reddit advertising account - google: Disconnect Google Ads account IMPORTANT NOTES: - This action will disconnect the channel immediately - Any active campaigns on this channel may be affected - The user will need to reconnect the channel to resume advertising - Always confirm with the user before disconnecting a channel - Check integration status first using get_integrations_status to verify the channel is connected COMMON SCENARIOS: Scenario 1 - Disconnect single channel: "Disconnect my LinkedIn account" → Call disconnect_channel with channel="linkedin" Scenario 2 - Reconnect workflow: "I want to reconnect Facebook with a different account" → First call disconnect_channel with channel="facebook", then guide user to reconnect Scenario 3 - Remove access: "Remove Google Ads integration" → Call disconnect_channel with channel="google" RESPONSE FORMAT: Returns a success/failure status indicating whether the channel was disconnected successfully. EXAMPLE: "Disconnect Facebook" → disconnect_channel(channel="facebook")
    Connector
    Destructive
    API key
  • Hide (or unhide) a comment someone left on one of the workspace's posts, on the platform, as the post owner. Facebook, Instagram, TikTok, YouTube and Threads comments. On YouTube, hide sets the comment to 'rejected' (removed from public view together with its replies) and unhide publishes it again. Takes the message id (the #id shown by get_inbox_conversation and get_next_unanswered), not the conversation id. A hidden comment no longer counts as unanswered. If the comment was already deleted on the platform (its author removed it, etc.), this still succeeds — the response says so — and the item is marked handled; do not retry it. A 403 reconnect_required means the account was connected without the comment-moderation permission and must be reconnected in the dashboard; relay that to the user rather than retrying. A 422 cannot_hide means Facebook does not let the Page hide this particular comment (the commenter blocked the Page, their account is deactivated or restricted, or the comment sits on a shared copy of the post): retrying never changes it — tell the user, and use mark_inbox_read on the conversation if it should stop coming up. A 502 hide_not_applied means Instagram accepted the call but still reports the comment as visible (this happens with comments shown under 'Comments from Facebook' on a reel shared to Facebook; they live on Facebook and Instagram's hide does not reach them): nothing changed in the inbox, tell the user to hide it in the Instagram or Facebook app, do not retry.
    ConnectorOAuth

Matching MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to manage Facebook Pages through Meta's Graph API, including posting, scheduling, drafts, reading insights, and moderating comments.
    15
    21 npm
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A TypeScript MCP server for the Meta Graph API focused on Facebook Pages, enabling publishing, reading, insights, and moderation tasks.
    30
    46 npm
    1
    MIT

Matching MCP Connectors

  • Facebook data for AI agents: pages, posts, groups. Brand, market + competitor research JSON.

  • Public Facebook pages and profiles with likes, followers, contact details and posts, as JSON.

  • Send an outbound direct message. Provide EXACTLY ONE of body (text), media (a single attachment), or — on WhatsApp — template, interactive, location or contacts. The message is queued and delivered asynchronously (returns status: pending). Outside Meta's 24h messaging window, a human agent replying to the participant's own inquiry can pass tag: HUMAN_AGENT (Facebook/Instagram only) — never for promotional or automated content. On WhatsApp the window is re-opened only by sending an approved template (or a text with category: utility); free-form sends outside it return 422. reply_markup is Telegram-only; reply_to_external_id works on Telegram and WhatsApp; quick_replies, buttons and card are the Facebook/Instagram interactive primitives and are rejected elsewhere — WhatsApp uses interactive (Meta-shaped) instead.
    Connector
    Destructive
    OAuth
  • Fetch public Facebook Marketplace listing rows for a location, with titles, prices, and thumbnails. Only the initial server-rendered page is available; further pagination requires login and is unsupported. Omit query and category for a browse feed. Price, sort, age, and condition filters normally require query or category; property_rentals uses its own filtered page. Retries can take roughly a minute. Use facebook_page for a public page profile.
    ConnectorNo auth
  • Fetch public Facebook Marketplace listing rows for a location, with titles, prices, and thumbnails. Only the initial server-rendered page is available; further pagination requires login and is unsupported. Omit query and category for a browse feed. Price, sort, age, and condition filters normally require query or category; property_rentals uses its own filtered page. Retries can take roughly a minute. Use facebook_page for a public page profile.
    ConnectorNo auth
  • Check whether ONE Facebook UID (numeric) is live or dead via the public profile-picture endpoint (server-side). Read-only, free, no api_key required. Facebook blocks datacenter IPs, so if it cannot verify it returns status "needs_proxy" — pass your own "proxy" to check reliably. WHEN TO USE: a single Facebook UID. PREFER INSTEAD: check_health_bulk for many accounts at once or for Instagram/Telegram/TikTok, deep_inspect for a detailed profile (followers, bio, media). Kiểm tra 1 UID Facebook (số) sống/chết; FB chặn IP máy chủ nên nếu không check được sẽ trả "needs_proxy" — truyền "proxy" riêng để check chuẩn.
    ConnectorNo auth
  • Check whether ONE Facebook UID (numeric) is live or dead via the public profile-picture endpoint (server-side). Read-only, free, no api_key required. Facebook blocks datacenter IPs, so if it cannot verify it returns status "needs_proxy" — pass your own "proxy" to check reliably. WHEN TO USE: a single Facebook UID. PREFER INSTEAD: check_health_bulk for many accounts at once or for Instagram/Telegram/TikTok, deep_inspect for a detailed profile (followers, bio, media). Kiểm tra 1 UID Facebook (số) sống/chết; FB chặn IP máy chủ nên nếu không check được sẽ trả "needs_proxy" — truyền "proxy" riêng để check chuẩn.
    ConnectorNo auth
  • Disable one or more entire channels from an existing campaign. Use this tool when the goal is to turn off a whole channel (e.g. stop running ads on FACEBOOK entirely). To remove a specific audience from a channel instead, use remove_audiences_from_campaign. KEYWORDS: remove, delete, disable, channel, campaign WHEN TO USE: - Disable/remove an entire channel from a campaign (e.g. remove FACEBOOK or GOOGLE_ADS) - Multiple channels can be disabled in a single call - Returns the campaign state before and after the change RESPONSE: - Returns the refreshed campaign state plus a removal_results list with one entry per requested removal recording its success or error. ALWAYS check removal_results — a partial failure (e.g. one of two names not found) still returns normally, so report only what actually came back successful. REQUIRED PARAMETERS: - campaign_id: Campaign ID (numeric identifier) - channels: Array of channel types to disable CHANNEL TYPES: FACEBOOK, INSTAGRAM, GOOGLE_ADS, LINKEDIN, MICROSOFT_ADS, REDDIT EXAMPLES: Disable a single channel: remove_channels_from_campaign({ "campaign_id": 12345, "channels": ["FACEBOOK"] }) Disable multiple channels at once: remove_channels_from_campaign({ "campaign_id": 12345, "channels": ["FACEBOOK", "GOOGLE_ADS", "INSTAGRAM"] }) INTEGRATION WITH OTHER TOOLS: - Use search_campaigns_by_names to find the campaign ID - Use get_campaign_by_wizard_id to inspect active channels before removal - Use remove_audiences_from_campaign to remove a specific audience from a channel
    Connector
    Destructive
    API key
  • Start (or restart) connecting the merchant's Meta (Facebook/Instagram) Business catalog to Pollen. Returns an authUrl that the HUMAN must open in a browser to approve via Facebook Login - an agent cannot click it. Afterwards call get_meta_connect_status; the flow may pause on a business or catalog picker (resume with pick_meta_business / pick_meta_catalog). Once active, Pollen publishes the enriched catalog automatically.
    ConnectorOAuth
  • Get a link that connects a new Instagram, Facebook or TikTok account to the user's Post Bridge account without them opening the dashboard. Give the link to the person who owns the social account (the user themselves, or a client of theirs): they approve on the platform's own consent screen and are sent back. In Claude and ChatGPT a connect button renders right in the chat and the new account is reported back to you once it is connected. Optional external_ref tags the connected accounts with the user's own reference (a client name or id) so list_social_accounts can be filtered by it later. Each connected account counts against the plan's account cap; when the cap is reached this returns an error pointing at the billing page. Instagram uses Instagram's own login (one professional account, no Facebook Page needed); Facebook connects every Page the login manages.
    ConnectorOAuth
  • List the Facebook Pages, Instagram Business accounts, X accounts and TikTok accounts connected in Multichannel Boost, with channel id, platform, name, handle and status. Use the ids with publish_to_channels, or with schedule_post / set_post_channels to add them to a LinkedIn post. Facebook and Instagram can publish today.
    ConnectorOAuth
  • Check whether the video at a public link (TikTok, Instagram, X, YouTube, Facebook or a direct file URL) was generated by AI. Spends credits: one per started minute of video. Waits up to about a minute; if the check is not done by then, returns its id for get_check.
    ConnectorNo auth
  • Start connecting an Instagram, Facebook, TikTok, YouTube, X or Bluesky account. For Bluesky, handle (such as alice.bsky.social) starts at the account's own server; leave it out for accounts hosted on bsky.social. X returns 402 x_billing_required unless X is enabled for your account. Past the workspace's three free connected accounts with no card on file, any platform returns 402 billing_required with details.billingUrl, where the workspace owner adds a card. For Instagram, authMethod picks Instagram Login (the default) or facebook_login, which connects through the Facebook Page linked to the account; a profile's Instagram uses one of the two. Returns an authUrl that the account owner must open in a browser; then poll get_connect_session until the status is connected, failed or expired.
    ConnectorAPI key
  • Fetch public business page information from Facebook. Returns page details including name, category, address, phone, website, ratings, reviews, followers, and cover/profile photos. Provide exactly one of page_id, username, or url — prefer url when the user pasted any Facebook link (including mobile share links), since the tool resolves the canonical page automatically.
    ConnectorOAuth
  • Comments / replies on one post as the unified Comment[] schema, tagged with its platform. Provide url OR postId. Keyless on TikTok, YouTube, and Threads (and a single tweet via syndication on Twitter/X). Instagram, Reddit, and Facebook need operator-side credentials; Snapchat comments are not supported keyless; LinkedIn is quarantined.
    ConnectorNo auth
  • Delete a post from the channel for good. This is not reversible, so confirm with the person first. Daily delete limits differ per channel: Threads 100 a day, Instagram only on accounts connected via Facebook, with no documented daily cap, YouTube 20 a day, Facebook 50 a day, Bluesky 35000 a day, Telegram only within 48 hours of publishing, with no documented daily cap, Naver Blog through the browser extension, with no documented daily cap, TikTok has no delete API; posts can only be removed in the app. On a scheduled or draft post nothing is on any channel yet, so this simply cancels it and removes our record. A Naver draft (target externalId starting with draft:) is only in Naver's draft box: this cancels our record and, with extension 0.7.2 or later, removes that draft too. On Threads and YouTube this also works on posts written in the channel's own app, given the link. Instagram only lets us delete on accounts connected via Facebook: an account connected with Instagram login cannot be deleted through us at all, so tell the person to delete it in the Instagram app. Facebook only lets us delete Page posts this app published, so a post made in the Facebook app cannot be deleted through us. If the account that published the post was disconnected, this returns 409 account_disconnected and deletes nothing on any channel; reconnect the same account and the post id comes back. If the response carries `bridge`, `bridge.nextStep` says what is needed: `run_wake` means Chrome with the extension is closed, so tell the person `bridge.userMessage` with the `bridge.wake` command for their OS and retry once after they say Chrome is open; `ask_user_login` / `ask_user_update` mean tell the person `bridge.userMessage`. Do not retry more than twice.
    Connector
    Destructive
    No auth
  • Bulk live/dead check for MANY accounts at once (max 20 per call): Facebook UID (numeric) or Instagram/Telegram/TikTok usernames. Returns per-item status + a summary. Read-only, free, no api_key required. IG/FB items that cannot be verified (datacenter IP blocked) are moved to "skipped" — pass your own "proxy" to check them reliably. WHEN TO USE: a list of 2-20 accounts, or any non-Facebook platform. PREFER INSTEAD: check_live_facebook for a single Facebook UID, deep_inspect for one detailed profile. Kiểm tra sống/chết HÀNG LOẠT (tối đa 20/lần): UID Facebook hoặc username IG/TG/TikTok; mục IG/FB không check được bị đưa vào "skipped" — truyền "proxy" riêng để check chuẩn.
    ConnectorNo auth