100+ integrations are ready to connect to your AI.Connect your first MCP

Facebook MCP server for your AI

Publish and schedule posts, photos and videos, reply to comments as the Page, work the Messenger inbox, pull lead form submissions, and track how each post performed.

PopMCPFacebook

Give me a rundown of last week's Page posts and which ones got shared most

Supported Facebook tools

Every publishing, messaging, moderation, insights and lead tool the connection exposes, plus the webhooks and polled checks you can trigger workflows on.

facebook_get_messenger_user_profile

Look up the public profile of someone who has messaged the Page, by their PSID.

facebook_list_conversation_messages

List the messages inside one Messenger thread, newest first.

facebook_list_conversations

List the Page's Messenger inbox threads, most recently updated first.

facebook_send_message

Send a Messenger message from the Page to one person.

facebook_block_users

Ban one or more people from commenting on or messaging this Page.

facebook_get_page

Read the connected Facebook Page's own profile: name, username, vanity link, about/description, category, follower and fan counts, star rating, contact details, address, opening hours, publish state, verification, profile picture, cover photo, and the linked Instagram professional account (if any).

facebook_get_page_settings

List the Page's controllable settings as { setting, value } rows — for example USERS_CAN_POST, USERS_CAN_COMMENT, USERS_CAN_MESSAGE, MODERATE_CONTENT and the profanity filter.

facebook_list_page_roles

List the people who have a role on this Page, with the role name (ADMINISTRATOR, EDITOR, MODERATOR, ADVERTISER, ANALYST) and the New Page Experience task list.

facebook_update_page

Update the connected Page's profile.

facebook_update_page_setting

Turn one Page setting on or off.

facebook_create_post

Publish a post to the Page's timeline: plain text, a link, a multi-photo post, or a scheduled/draft post.

facebook_delete_post

Permanently delete a post from the Page.

facebook_get_post

Read one post in full, including its attachments and its comment/reaction totals.

facebook_like_object

Like a post, photo, video or comment AS THE PAGE.

facebook_list_page_feed

Read the Page's feed: everything that appears on the Page's timeline, including posts made by the Page and (where allowed) visitor posts.

facebook_list_post_attachments

Read a post's attachments — the image, video, shared link or album behind it, including the source URL of each media item and the sub-attachments of a multi-photo post.

facebook_list_post_reactions

List who reacted to a post and with which reaction.

facebook_list_post_shares

List the posts that re-shared this post.

facebook_list_published_posts

Only the posts the Page has actually PUBLISHED — no drafts, no scheduled posts, no visitor posts.

facebook_list_scheduled_posts

List posts that are queued to publish later.

facebook_list_tagged_posts

Posts by other people or Pages that @-mention this Page.

facebook_list_visitor_posts

Posts other people have written ON this Page's timeline (only present when the Page allows visitor posts).

facebook_update_post

Edit a post the Page owns: change its text, hide or unhide it, reschedule it, or publish a scheduled post immediately.

facebook_delete_video

Permanently delete a video and its timeline post.

facebook_get_video

Read one video, including its processing `status` (check status.video_status == "ready" before sharing a link), its permalink and its view counts.

facebook_list_live_videos

List the Page's live broadcasts, past and present.

facebook_list_page_videos

List the Page's videos.

facebook_update_video

Edit a video's title, description, thumbnail or embeddability.

facebook_upload_video

Post a video to the Page from a PUBLIC VIDEO URL — Facebook downloads the file itself, so there is no upload step.

facebook_add_photo_to_album

Add a photo to an existing album from a public image URL.

facebook_create_album

Create a new photo album on the Page.

facebook_delete_photo

Permanently delete a photo and the timeline post that carries it.

facebook_get_photo

Read one photo, including every stored resolution in `images` and the id of the timeline post it produced.

facebook_list_albums

List the Page's photo albums (including the automatic ones such as Timeline Photos, Profile Pictures and Cover Photos).

facebook_list_page_photos

List photos on the Page.

facebook_update_photo

Edit a photo's caption or its accessibility alt text.

facebook_upload_photo

Post a photo to the Page from a PUBLIC IMAGE URL — Facebook downloads the file itself, so there is no upload step and no file handling.

facebook_create_comment

Comment AS THE PAGE on a post, photo, video or live video — or REPLY to a comment by passing that comment's id as object_id.

facebook_delete_comment

Permanently delete a comment (and its replies).

facebook_get_comment

Read one comment in full, including whether the Page may hide it or reply privately to it.

facebook_list_comments

Read the comments on any object — a post, photo, video, live video, or ANOTHER COMMENT.

facebook_send_private_reply

Reply to a public COMMENT with a PRIVATE Messenger message from the Page — the standard way to move a complaint or an order question out of the comment thread.

facebook_update_comment

Edit or MODERATE a comment.

facebook_get_lead

Read a single lead by id — the shape a leadgen webhook hands you.

facebook_list_form_leads

Download the leads submitted through one lead form, newest first.

facebook_list_leadgen_forms

List the lead ad forms attached to this Page, with each form's question set and how many leads it has collected.

facebook_list_page_stories

List the Page's Stories from the last 24 hours (Facebook deletes them after that).

facebook_publish_photo_story

Publish a PHOTO Story to the Page.

facebook_get_page_insights

Page-level analytics: reach, impressions, engagement, follows, views and audience demographics.

facebook_get_post_insights

Per-post analytics: impressions, engagement, clicks, reactions and video performance for a single post.

facebook_get_video_insights

Per-video performance: views, minutes viewed, average watch time, retention and reactions.

facebook_list_granted_permissions

List every permission the user granted or declined at login, as { permission, status } rows with status "granted" or "declined".

facebook_list_my_pages

List every Facebook Page the authorizing user manages, with the tasks they hold on each.

facebook_list_reels

List the Page's Reels (vertical short-form videos).

facebook_list_page_events

List the events hosted by this Page, past and upcoming.

facebook_list_page_ratings

Read the recommendations (reviews) left on this Page.

facebook_add_label_to_user

Apply a Messenger custom label to one person, identified by their PSID.

facebook_create_custom_label

Create a Messenger custom label.

facebook_create_persona

Create a Messenger persona.

facebook_delete_custom_label

Delete a Messenger custom label and remove it from everyone it was applied to.

facebook_delete_messenger_profile

Remove one or more Messenger profile properties, reverting them to Facebook's defaults.

facebook_delete_persona

Delete a Messenger persona.

facebook_get_conversation

Read one Messenger thread's metadata, including who is in it and whether the Page may still reply.

facebook_get_message

Read one Messenger message in full, including its attachments.

facebook_get_messaging_feature_review

Check which Messenger features this Page is APPROVED to use, as { feature, status } rows with status "approved", "pending" or "rejected".

facebook_get_messenger_profile

Read the Page's Messenger experience settings: the greeting text new users see, the Get Started button, the persistent menu, the ice-breaker questions and the whitelisted domains.

facebook_get_persona

Read one Messenger persona.

facebook_get_thread_owner

Ask which app currently owns a Messenger thread under the handover protocol.

facebook_list_custom_labels

List the Messenger custom labels (inbox tags) defined for this Page.

facebook_list_label_users

List the people a Messenger custom label has been applied to.

facebook_list_messenger_lead_forms

List the lead-generation forms that run inside Messenger conversations for this Page.

facebook_list_personas

List the Messenger personas configured for this Page.

facebook_list_secondary_receivers

List the other apps that may receive this Page's Messenger threads under the handover protocol.

facebook_pass_thread_control

Hand a Messenger thread over to another app — most often to the Page Inbox so a human can take over.

facebook_request_thread_control

Ask the app that currently owns a Messenger thread to hand it over.

facebook_send_sender_action

Show a typing indicator or mark a thread as read, without sending any text.

facebook_set_messenger_profile

Set the Page's Messenger experience: greeting, Get Started button, persistent menu, ice breakers and whitelisted domains.

facebook_set_nlp_config

Turn Facebook's built-in natural-language detection on or off for this Page's Messenger threads.

facebook_take_thread_control

Take a Messenger thread back from a secondary receiver app.

facebook_upload_message_attachment

Upload a reusable Messenger attachment from a public URL and get back an `attachment_id` you can send to many people without re-uploading.

facebook_create_call_to_action

Add or replace the Page's call-to-action button.

facebook_delete_call_to_action

Remove the Page's call-to-action button.

facebook_get_page_business

Read the business portfolio (Business Manager) that owns this Page, if any.

facebook_get_page_picture

Get the Page's profile picture as JSON ({ data: { url, width, height, is_silhouette } }) rather than a redirect to the image bytes.

facebook_list_agencies

List the partner businesses (agencies) that have been granted access to this Page, and which tasks each may perform.

facebook_list_assigned_users

List the Business Manager users assigned to this Page and the tasks each one holds.

facebook_list_blocked_users

List the users currently banned from interacting with this Page.

facebook_list_call_to_actions

Read the Page's call-to-action button (Book Now, Shop Now, Contact Us, Sign Up, Call Now and so on) with its destination.

facebook_list_canvases

List the Instant Experiences (Canvas documents) owned by this Page — the full-screen mobile experiences used as ad landing destinations.

facebook_list_page_likes

List the other Pages that this Page has liked (its 'Pages liked by this Page' list), not the people who like it.

facebook_list_page_locations

List the child location Pages under this Page, for brands that run a store-locator structure.

facebook_list_page_tabs

List the tabs installed on the Page (Home, Photos, Videos, Shop, Events, plus any app tabs) with their order.

facebook_list_product_catalogs

List the commerce product catalogs owned by or shared with this Page (used by Shops, dynamic ads and Messenger product templates).

facebook_list_subscribed_apps

List the apps subscribed to this Page's webhooks and the fields each one receives.

facebook_subscribe_app

Subscribe this app to the Page's webhooks.

facebook_unblock_users

Lift a ban and let the person interact with the Page again.

facebook_unsubscribe_app

Remove this app's webhook subscription from the Page.

facebook_list_page_posts

The Page's OWN posts only.

facebook_list_post_likes

List the people and Pages that liked a post.

facebook_list_promotable_posts

List posts that can be boosted or used as an ad creative, INCLUDING unpublished 'dark' posts created with published:false.

facebook_unlike_object

Remove the Page's like from a post, photo, video or comment.

facebook_create_live_video

Create a live broadcast and get back the RTMP `stream_url` an encoder should publish to, plus the `id` of the broadcast.

facebook_delete_live_video

Delete a live broadcast and its recording.

facebook_get_live_video

Read one live broadcast: its current status, viewer count, permalink and the resulting VOD video id.

facebook_list_video_captions

List the caption/subtitle tracks attached to a video, with their locales.

facebook_list_video_thumbnails

List the auto-generated thumbnail frames for a video.

facebook_update_live_video

Update a live broadcast, or END it.

facebook_get_album

Read one album's details.

facebook_list_album_photos

List the photos inside one album.

facebook_list_photo_tags

List the people and Pages tagged in a photo, with the tag's x/y position as a percentage of the image.

facebook_create_test_lead

Generate a fake lead against a form so you can test an end-to-end lead workflow without spending ad budget.

facebook_get_leadgen_form

Read one lead form's full definition, including every question and its `key` — the keys are what appear in each lead's field_data.

facebook_finish_video_story_upload

Step 3 of the raw 3-step video Story flow: publish a video Story whose bytes have already been uploaded.

facebook_start_video_story_upload

Step 1 of the raw 3-step video Story flow: open an upload session and get back { video_id, upload_url }.

facebook_finish_reel_upload

Step 3 of the raw 3-step Reel flow: publish (or schedule) a Reel whose bytes have already been uploaded.

facebook_get_my_user

Read the Facebook USER who authorized this connection (not the Page).

facebook_start_reel_upload

Step 1 of the raw 3-step Reel flow: open an upload session and get back { video_id, upload_url }.

facebook_get_event

Read one event's full details including RSVP counts.

Connect Facebook to your AI

Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Facebook side.

Create an app at developers.facebook.com/apps, add Facebook Login, and add the callback URL to its Valid OAuth Redirect URIs. Paste the App ID and App Secret, authorize in-browser, then pick your Pages and workspace.

App ID1234567890123456
App Secret••••••••••••3f7a
Authorize PopMCP on FacebookAuthorize

Then just ask for the work

  • Give me a rundown of last week's Page posts and which ones got shared most

    • list_published_posts
    • list_post_shares
    • get_post
  • Push all our scheduled posts for Friday back to next Monday morning

    • list_scheduled_posts
    • update_post
  • Post the hero image at this URL to the Page and drop the launch link in a comment

    • upload_photo
    • create_comment
  • Who reacted to our top post this week, and have any of them messaged the Page?

    • list_published_posts
    • list_post_reactions
    • list_conversations
    • get_messenger_user_profile

Use Facebook from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Facebook MCP server questions

What teams ask before putting Facebook behind an AI client.

Do I need my own Facebook app, or does PopMCP provide one?

You bring your own. Create an app at developers.facebook.com/apps, add Facebook Login, then add the callback URL shown on the connect form to that app's Valid OAuth Redirect URIs. Paste the App ID and App Secret into the connect form and authorize in your browser from there — your Facebook password is never shared with us.

Which Pages does a connection cover, and will it stop working later?

After you authorize, you choose which Pages to connect and which workspace each one belongs in, so a connection is scoped to the Pages you picked rather than your whole account. Facebook then issues each Page its own access token, and that token does not expire. The connection keeps working without you re-authorizing on a schedule.

Can the agent upload a photo or video from my computer?

No — media goes in by URL. upload_photo and upload_video take a public image or video URL and Facebook downloads the file itself, so there is no upload step and no file handling; add_photo_to_album works the same way. For video, read get_video and wait for status.video_status to say "ready" before you share the permalink, because Facebook is still processing until then.

What can it actually do inside the Messenger inbox?

It lists the Page's threads with the most recently updated first, reads the messages inside a single thread, looks up the public profile of someone who messaged the Page from their PSID, and sends a reply as the Page. If a person is abusive, block_users bans them from messaging or commenting on the Page. Messaging is the largest module in this connection.

Can it see and moderate posts other people write on my Page?

Yes, within whatever the Page itself allows. Visitor posts only exist when the Page permits them, and get_page_settings shows the flags that decide it — USERS_CAN_POST, USERS_CAN_COMMENT, USERS_CAN_MESSAGE, MODERATE_CONTENT and the profanity filter — each of which update_page_setting can toggle. Posts that @-mention the Page are listed separately from posts written on its timeline, and get_comment tells you whether the Page may hide a given comment or reply to it privately.

How many operations are there, and how many load into my client by default?

118 operations across 13 API modules — 70 read and 48 write — plus 21 triggers PopMCP can watch. 56 load by default so your client's tool list stays workable, and the rest stay searchable on demand. Switch on the full catalog when you want every operation present from the start.

Do I have to run or host the Facebook MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 56 of the 118 tools load by default?

Loading 118 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 56-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 118 here. A trigger is something PopMCP watches for you: 21 Facebook events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Facebook.

Connect Facebook to your AI in minutes

Launch a hosted MCP endpoint for Facebook, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP