MCP.Market

Facebook MCP server

by IvanBBaev·io.github.IvanBBaev/facebook-mcp·v0.8.0·2 stars

Facebook Pages MCP server for the Meta Graph API — publishing, insights, moderation, messaging

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

2 stars326 downloads/wk

Reviews

Write one

Nobody has reviewed Facebook yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Facebook tools (49, 17 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • facebook_ads_insights

    Read performance numbers (impressions, clicks, spend, reach, cpc, ctr) for

  • facebook_ads_report_status

    Probe one async insights report run and, with fetch_results:true, read its

  • facebook_comment_on_postwrite action

    Post a PUBLIC top-level comment as the Page on a post — e.g. a first comment

  • facebook_create_photo_postwrite action

    Publish ONE photo to a Page, optionally with a caption, as a draft, or

  • facebook_create_postwrite action

    Create a Page post: plain text, a link, a multi-link card carousel, or a

  • facebook_create_reelwrite action

    Publish a Facebook Reel through the three-phase upload (start → transfer

  • facebook_create_storywrite action

    Publish a photo or video story on the Page. A story is public at once for

  • facebook_create_video_postwrite action

    Upload a video to a Page. A local path inside FB_MEDIA_DIR is streamed

  • facebook_delete_commentwrite action

    PERMANENTLY delete up to 50 comments. This cannot be undone — prefer

  • facebook_delete_postwrite action

    Permanently delete a Page post the app itself created — including a

  • facebook_duplicate_ad_object

    Copy one campaign, ad set or ad into a new PAUSED copy (an ad set copy stays in its campaign,

  • facebook_edit_comment

    Replace the text of a comment the Page itself wrote — e.g. fix a typo in a

  • facebook_get_activity_since

    What is new on a Page since a point in time, in one call: new comments

  • facebook_get_ad_object

    Read one campaign, ad set or ad by id. Pass `level` when you know it — the

  • facebook_get_ad_preview

    Show how an existing ad, an existing ad creative, or a Page post used as an

  • facebook_get_ad_set_targeting

    Read one ad set's audience and summarise it in plain terms: countries, counts of regions / cities / locales, age range, genders, placements, and flags for detailed targeting, custom audiences, exclusions and Advantage+ audience. `editable_by_this_server` says whether facebook_update_ad_set_targeting can change it, and `not_editable_because` says why not. Pass include_raw:true to also get the raw t

  • facebook_get_comment

    Read one comment by ID, optionally with its replies, and report whether a

  • facebook_get_page

    Fetch metadata for one Page — name, category, follower/fan counts, publish

  • facebook_get_page_report

    One-call Page performance report over a window (default last 28 days,

  • facebook_get_postwrite action

    Fetch ONE post by its composite id ("{page-id}_{post-id}" as returned by

  • facebook_get_posts_insights

    Lifetime insights for several posts in one call, as a compact table: one

  • facebook_get_reactions

    Read the reactions on one post: a `totals` map per reaction type

  • facebook_get_video_status

    Poll where one video stands in Meta's pipeline: uploading, processing,

  • facebook_hide_comment

    Hide or unhide up to 50 comments in one call (`hidden:true` hides,

  • facebook_like_comment

    Like up to 50 comments as the Page, or unlike them with `unlike:true`.

  • facebook_list_ads

    List individual ads under one ad account, a cursor page at a time. This is

  • facebook_list_adsets

    List ad sets under one ad account, a cursor page at a time. Ad sets are

  • facebook_list_albums

    List a Page's photo albums, one cursor page at a time: `id`, `name`,

  • facebook_list_campaigns

    List campaigns under one ad account, a cursor page at a time. Each record

  • facebook_list_comments

    List the comments on a post, photo, video or another comment, newest-first

  • facebook_list_pages

    List the Facebook Pages the operator administers (via /me/accounts): id,

  • facebook_list_photos

    List photos, one cursor page at a time: an album's photos when `album_id`

  • facebook_list_posts

    List a Page's posts, one cursor page at a time. `edge` selects WHICH posts:

  • facebook_list_reels

    List a Page's Reels via the /video_reels edge — the ONLY place Reels are

  • facebook_list_scheduled_posts

    List the Page posts that are queued to publish later, each with its publish

  • facebook_list_stories

    List a Page's Stories via the /stories edge, one cursor page at a time:

  • facebook_page_insights

    Read Graph insights for one Page in a compact flat shape: one row per

  • facebook_post_insightswrite action

    Read Graph insights for one published post (post_media_view, post_clicks,

  • facebook_private_replywrite action

    Send a private message to the author of a comment, or of a visitor post on

  • facebook_reel_insights

    Read Graph insights for one Reel from /{video-id}/video_insights — the

  • facebook_reply_and_hide_commentwrite action

    Post a PUBLIC reply under a comment and then hide that comment, in one

  • facebook_reply_to_commentwrite action

    Post a PUBLIC reply under a comment — visible to everyone who can see the

  • facebook_triage_comments

    A moderation queue in one call: the comments on the Page's most recent

  • facebook_update_ad_objectwrite action

    Pause or resume an ads object, change its budget, or set a campaign spend cap. Plan-first: without

  • facebook_update_ad_set_targetingwrite action

    Change only the countries and/or the age range of one ad set's audience; everything else in its targeting is kept exactly as it is. Refused when the audience is more complex than that (custom audiences, detailed targeting, regions/cities/zips, exclusions, Advantage+ audience on) — check editable_by_this_server with facebook_get_ad_set_targeting first. Adding EU countries to an audience that had no

  • facebook_update_postwrite action

    Edit a Page post the app itself created, or move it through the scheduled-post

  • facebook_upload_ad_imagewrite action

    Upload one local image (JPEG, PNG, GIF, BMP, TIFF or WEBP, at most 30 MB, inside FB_MEDIA_DIR) to the ad account's image library and return its hash, which creatives reference it by. Creates no ad and changes no delivery. Plan-first: without apply:true this returns a preview (file, size, account) and uploads NOTHING; applying requires apply:true plus the plan_id from that preview. Uploads are dedu

  • facebook_usage

    Report the most recent Graph rate-limit signals (X-App-Usage,

  • facebook_whoami

    Report the identity behind the configured token (type, validity, granted

Public scan report

scanner v0.1.10 · 2026-10-30 · same rubric, same numbers if you re-run it

no findings
  • Code scan154 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 1 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Facebook compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
83/100
higher than 65% of 48,243 servers
Tools
49
the typical server has 7
Tools that change things
35%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
2
more than 75% of 28,706 servers
Downloads a week
326
more than 82% of 12,306 servers with a package

What its tools let an agent do: 32 read · 17 change

Release history: 2 versions in the registry since 2026-08-27, latest 2026-10-28, typically one every 62 days.

Install Facebook in Claude Code, Cursor or VS Code

Runs npx -y @ivanbaev/facebook-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add facebook-mcp -- npx -y @ivanbaev/facebook-mcp
Add to Cursor

What the publisher says

From the Facebook repository's README, as published. We do not edit it. Read it on GitHub

facebook-mcp — Facebook Pages MCP Server

📖 Documentation site →

A local-first TypeScript Model Context Protocol (MCP) server for the Meta Graph API, focused on Facebook Pages — publishing, reading & insights, and comment/message moderation — driven from an MCP client (Claude, VS Code, the Inspector…) and operated locally by a Page admin using their own Meta developer app. Least-privilege tokens, plan-and-apply write safety, and no telemetry.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Facebook: common questions

Is Facebook MCP server safe?
Mostly: it is graded B (83/100). Read the Facebook safety report
How do I install Facebook?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Facebook need an API key?
Yes. The registry entry asks for FB_SYSTEM_TOKEN, FB_ACCESS_TOKEN, FB_PAGE_TOKEN, FB_APP_SECRET and 2 more.
Is Facebook maintained?
The last commit was 7 days ago (2026-10-29). The latest release is v0.8.0.
How does Facebook compare with other MCP servers?
safety score 83/100 (higher than 65% of 48,243 servers); tools 49 (the typical server has 7); tools that change things 35% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

More from IvanBBaev →