facebook_get_ messenger_ user_ profileLook up the public profile of someone who has messaged the Page, by their PSID.
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
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_ profileLook up the public profile of someone who has messaged the Page, by their PSID.
facebook_list_ conversation_ messagesList the messages inside one Messenger thread, newest first.
facebook_list_ conversationsList the Page's Messenger inbox threads, most recently updated first.
facebook_send_ messageSend a Messenger message from the Page to one person.
facebook_block_ usersBan one or more people from commenting on or messaging this Page.
facebook_get_ pageRead 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_ settingsList 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_ rolesList 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_ pageUpdate the connected Page's profile.
facebook_update_ page_ settingTurn one Page setting on or off.
facebook_create_ postPublish a post to the Page's timeline: plain text, a link, a multi-photo post, or a scheduled/draft post.
facebook_delete_ postPermanently delete a post from the Page.
facebook_get_ postRead one post in full, including its attachments and its comment/reaction totals.
facebook_like_ objectLike a post, photo, video or comment AS THE PAGE.
facebook_list_ page_ feedRead 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_ attachmentsRead 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_ reactionsList who reacted to a post and with which reaction.
facebook_list_ post_ sharesList the posts that re-shared this post.
facebook_list_ published_ postsOnly the posts the Page has actually PUBLISHED — no drafts, no scheduled posts, no visitor posts.
facebook_list_ scheduled_ postsList posts that are queued to publish later.
facebook_list_ tagged_ postsPosts by other people or Pages that @-mention this Page.
facebook_list_ visitor_ postsPosts other people have written ON this Page's timeline (only present when the Page allows visitor posts).
facebook_update_ postEdit a post the Page owns: change its text, hide or unhide it, reschedule it, or publish a scheduled post immediately.
facebook_delete_ videoPermanently delete a video and its timeline post.
facebook_get_ videoRead one video, including its processing `status` (check status.video_status == "ready" before sharing a link), its permalink and its view counts.
facebook_list_ live_ videosList the Page's live broadcasts, past and present.
facebook_list_ page_ videosList the Page's videos.
facebook_update_ videoEdit a video's title, description, thumbnail or embeddability.
facebook_upload_ videoPost 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_ albumAdd a photo to an existing album from a public image URL.
facebook_create_ albumCreate a new photo album on the Page.
facebook_delete_ photoPermanently delete a photo and the timeline post that carries it.
facebook_get_ photoRead one photo, including every stored resolution in `images` and the id of the timeline post it produced.
facebook_list_ albumsList the Page's photo albums (including the automatic ones such as Timeline Photos, Profile Pictures and Cover Photos).
facebook_list_ page_ photosList photos on the Page.
facebook_update_ photoEdit a photo's caption or its accessibility alt text.
facebook_upload_ photoPost 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_ commentComment 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_ commentPermanently delete a comment (and its replies).
facebook_get_ commentRead one comment in full, including whether the Page may hide it or reply privately to it.
facebook_list_ commentsRead the comments on any object — a post, photo, video, live video, or ANOTHER COMMENT.
facebook_send_ private_ replyReply 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_ commentEdit or MODERATE a comment.
facebook_get_ leadRead a single lead by id — the shape a leadgen webhook hands you.
facebook_list_ form_ leadsDownload the leads submitted through one lead form, newest first.
facebook_list_ leadgen_ formsList the lead ad forms attached to this Page, with each form's question set and how many leads it has collected.
facebook_list_ page_ storiesList the Page's Stories from the last 24 hours (Facebook deletes them after that).
facebook_publish_ photo_ storyPublish a PHOTO Story to the Page.
facebook_get_ page_ insightsPage-level analytics: reach, impressions, engagement, follows, views and audience demographics.
facebook_get_ post_ insightsPer-post analytics: impressions, engagement, clicks, reactions and video performance for a single post.
facebook_get_ video_ insightsPer-video performance: views, minutes viewed, average watch time, retention and reactions.
facebook_list_ granted_ permissionsList every permission the user granted or declined at login, as { permission, status } rows with status "granted" or "declined".
facebook_list_ my_ pagesList every Facebook Page the authorizing user manages, with the tasks they hold on each.
facebook_list_ reelsList the Page's Reels (vertical short-form videos).
facebook_list_ page_ eventsList the events hosted by this Page, past and upcoming.
facebook_list_ page_ ratingsRead the recommendations (reviews) left on this Page.
facebook_add_ label_ to_ userApply a Messenger custom label to one person, identified by their PSID.
facebook_create_ custom_ labelCreate a Messenger custom label.
facebook_create_ personaCreate a Messenger persona.
facebook_delete_ custom_ labelDelete a Messenger custom label and remove it from everyone it was applied to.
facebook_delete_ messenger_ profileRemove one or more Messenger profile properties, reverting them to Facebook's defaults.
facebook_delete_ personaDelete a Messenger persona.
facebook_get_ conversationRead one Messenger thread's metadata, including who is in it and whether the Page may still reply.
facebook_get_ messageRead one Messenger message in full, including its attachments.
facebook_get_ messaging_ feature_ reviewCheck which Messenger features this Page is APPROVED to use, as { feature, status } rows with status "approved", "pending" or "rejected".
facebook_get_ messenger_ profileRead 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_ personaRead one Messenger persona.
facebook_get_ thread_ ownerAsk which app currently owns a Messenger thread under the handover protocol.
facebook_list_ custom_ labelsList the Messenger custom labels (inbox tags) defined for this Page.
facebook_list_ label_ usersList the people a Messenger custom label has been applied to.
facebook_list_ messenger_ lead_ formsList the lead-generation forms that run inside Messenger conversations for this Page.
facebook_list_ personasList the Messenger personas configured for this Page.
facebook_list_ secondary_ receiversList the other apps that may receive this Page's Messenger threads under the handover protocol.
facebook_pass_ thread_ controlHand a Messenger thread over to another app — most often to the Page Inbox so a human can take over.
facebook_request_ thread_ controlAsk the app that currently owns a Messenger thread to hand it over.
facebook_send_ sender_ actionShow a typing indicator or mark a thread as read, without sending any text.
facebook_set_ messenger_ profileSet the Page's Messenger experience: greeting, Get Started button, persistent menu, ice breakers and whitelisted domains.
facebook_set_ nlp_ configTurn Facebook's built-in natural-language detection on or off for this Page's Messenger threads.
facebook_take_ thread_ controlTake a Messenger thread back from a secondary receiver app.
facebook_upload_ message_ attachmentUpload 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_ actionAdd or replace the Page's call-to-action button.
facebook_delete_ call_ to_ actionRemove the Page's call-to-action button.
facebook_get_ page_ businessRead the business portfolio (Business Manager) that owns this Page, if any.
facebook_get_ page_ pictureGet the Page's profile picture as JSON ({ data: { url, width, height, is_silhouette } }) rather than a redirect to the image bytes.
facebook_list_ agenciesList the partner businesses (agencies) that have been granted access to this Page, and which tasks each may perform.
facebook_list_ assigned_ usersList the Business Manager users assigned to this Page and the tasks each one holds.
facebook_list_ blocked_ usersList the users currently banned from interacting with this Page.
facebook_list_ call_ to_ actionsRead 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_ canvasesList the Instant Experiences (Canvas documents) owned by this Page — the full-screen mobile experiences used as ad landing destinations.
facebook_list_ page_ likesList the other Pages that this Page has liked (its 'Pages liked by this Page' list), not the people who like it.
facebook_list_ page_ locationsList the child location Pages under this Page, for brands that run a store-locator structure.
facebook_list_ page_ tabsList the tabs installed on the Page (Home, Photos, Videos, Shop, Events, plus any app tabs) with their order.
facebook_list_ product_ catalogsList the commerce product catalogs owned by or shared with this Page (used by Shops, dynamic ads and Messenger product templates).
facebook_list_ subscribed_ appsList the apps subscribed to this Page's webhooks and the fields each one receives.
facebook_subscribe_ appSubscribe this app to the Page's webhooks.
facebook_unblock_ usersLift a ban and let the person interact with the Page again.
facebook_unsubscribe_ appRemove this app's webhook subscription from the Page.
facebook_list_ page_ postsThe Page's OWN posts only.
facebook_list_ post_ likesList the people and Pages that liked a post.
facebook_list_ promotable_ postsList posts that can be boosted or used as an ad creative, INCLUDING unpublished 'dark' posts created with published:false.
facebook_unlike_ objectRemove the Page's like from a post, photo, video or comment.
facebook_create_ live_ videoCreate a live broadcast and get back the RTMP `stream_url` an encoder should publish to, plus the `id` of the broadcast.
facebook_delete_ live_ videoDelete a live broadcast and its recording.
facebook_get_ live_ videoRead one live broadcast: its current status, viewer count, permalink and the resulting VOD video id.
facebook_list_ video_ captionsList the caption/subtitle tracks attached to a video, with their locales.
facebook_list_ video_ thumbnailsList the auto-generated thumbnail frames for a video.
facebook_update_ live_ videoUpdate a live broadcast, or END it.
facebook_get_ albumRead one album's details.
facebook_list_ album_ photosList the photos inside one album.
facebook_list_ photo_ tagsList the people and Pages tagged in a photo, with the tag's x/y position as a percentage of the image.
facebook_create_ test_ leadGenerate a fake lead against a form so you can test an end-to-end lead workflow without spending ad budget.
facebook_get_ leadgen_ formRead 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_ uploadStep 3 of the raw 3-step video Story flow: publish a video Story whose bytes have already been uploaded.
facebook_start_ video_ story_ uploadStep 1 of the raw 3-step video Story flow: open an upload session and get back { video_id, upload_url }.
facebook_finish_ reel_ uploadStep 3 of the raw 3-step Reel flow: publish (or schedule) a Reel whose bytes have already been uploaded.
facebook_get_ my_ userRead the Facebook USER who authorized this connection (not the Page).
facebook_start_ reel_ uploadStep 1 of the raw 3-step Reel flow: open an upload session and get back { video_id, upload_url }.
facebook_get_ eventRead one event's full details including RSVP counts.
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.
1234567890123456••••••••••••3f7aRun it read-only for reporting, or full access to publish. Turn on the full catalog for the long tail, and hold writes for approval so deleting a post, banning a commenter or replying in Messenger needs a yes.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Facebook credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Give me a rundown of last week's Page posts and which ones got shared most
facebook_list_published_postsok
Then just ask for the work
“Give me a rundown of last week's Page posts and which ones got shared most”
“Push all our scheduled posts for Friday back to next Monday morning”
“Post the hero image at this URL to the Page and drop the launch link in a comment”
“Who reacted to our top post this week, and have any of them messaged the Page?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Facebook behind an AI client.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Launch a hosted MCP endpoint for Facebook, keep tool access under control, and start testing real workflow prompts right away.