facebook-pages-mcp
Provides tools for managing Facebook Pages, including publishing posts, retrieving page insights, analyzing post performance, and moderating comments via the Meta Graph API v25.0.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@facebook-pages-mcp show me last week's page insights"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
facebook-pages-mcp
MCP server for Facebook Pages organic analytics and management, powered by Meta Graph API v25.0.
Built for Claude Code and any MCP-compatible AI tool. Gives your AI assistant direct access to your Facebook Page data — posts, insights, comments, and more.
Part of The SEO Engine toolkit by Rex Jones — AI-powered SEO and social media tooling for agencies and businesses.
Why this exists
No good Facebook Pages MCP server existed. Instagram has several. Facebook Pages had none that worked on a current API version.
Meta deprecated legacy metrics on June 15, 2026.
page_impressions,page_reach, andpage_impressions_uniqueno longer return data. This server uses the replacement metrics from day one.Business Manager support. Most businesses manage Pages through Meta Business Manager, not personal accounts. This server works with both.
Related MCP server: instagram-mcp
Quick start
Option 1: npx (no install)
{
"mcpServers": {
"facebook-pages": {
"command": "npx",
"args": ["-y", "facebook-pages-mcp"],
"env": {
"FB_PAGE_ACCESS_TOKEN": "your_page_access_token",
"FB_PAGE_ID": "your_page_id"
}
}
}
}Option 2: Clone and build
git clone https://github.com/lanternrow/facebook-pages-mcp.git
cd facebook-pages-mcp
npm install
npm run buildThen add to your Claude Code MCP settings:
{
"mcpServers": {
"facebook-pages": {
"command": "node",
"args": ["/path/to/facebook-pages-mcp/dist/index.js"],
"env": {
"FB_PAGE_ACCESS_TOKEN": "your_page_access_token",
"FB_PAGE_ID": "your_page_id"
}
}
}
}Getting your Page Access Token
Step 1: Create a Meta App
Go to Meta for Developers and click Create App
Name your app and choose the "Manage everything on your Page" use case
Connect it to your Business Portfolio
Step 2: Generate a token in the Graph API Explorer
Open the Graph API Explorer
Select your app from the Meta App dropdown
Add permissions:
pages_show_list,pages_read_engagement,business_managementClick Generate Access Token and complete the OAuth flow
When asked about Pages, select "Opt in to all current and future Pages"
Step 3: Get your Page Access Token
If your Pages are managed through Business Manager (most businesses):
# First, find your business ID
GET /me/businesses?fields=id,name
# Then get Page tokens for that business
GET /{business-id}/owned_pages?fields=id,name,access_tokenIf your Pages are on your personal account:
GET /me/accounts?fields=id,name,access_tokenCopy the access_token and id for the Page you want.
Step 4: Exchange for a long-lived token (recommended)
Short-lived tokens expire in ~1 hour. Exchange for a long-lived token (~60 days):
GET /oauth/access_token
?grant_type=fb_exchange_token
&client_id={your-app-id}
&client_secret={your-app-secret}
&fb_exchange_token={short-lived-token}Tip: For Pages you admin, Page tokens derived from a long-lived User Token never expire.
Tools
Read tools
Tool | Description |
| Page metadata: name, category, follower count, contact info, cover photo |
| Page-level analytics with date ranges and period aggregation (day/week/28-day) |
| Paginated list of posts authored by the Page |
| Per-post engagement: impressions, clicks, reactions by type |
| Paginated comments with author info and like/reply counts |
| Video performance: views, watch time, reactions |
| Full feed including visitor posts |
Write tools
Tool | Description |
| Publish text, link, or photo posts to the Page |
Utility tools
Tool | Description |
| Check token validity, expiration, and granted scopes |
Metrics and the June 2026 deprecation
Meta deprecated these page-level metrics on June 15, 2026:
Deprecated | Replacement |
|
|
| Page Viewer metric (rolling out) |
| Media Viewers metric (rolling out) |
This server uses only non-deprecated metrics: page_views_total, page_fans, page_fan_adds, page_fan_removes, page_actions_post_reactions_total.
Architecture
src/
index.ts # MCP server entry point, tool registration
client.ts # Graph API HTTP client (native fetch, no dependencies)
types.ts # TypeScript interfaces for API responses
tools/
pages.ts # get_page_info, get_page_feed
insights.ts # get_page_insights, get_video_insights
posts.ts # get_published_posts, get_post_insights, get_post_comments, create_post
utils.ts # refresh_token_infoZero external HTTP dependencies — uses Node 18+ native
fetchRate limit tracking — captures
x-app-usageandx-page-usageheadersCursor-based pagination — all list endpoints support
aftercursor and configurable limitsZod validation — all tool inputs validated with descriptive error messages
Environment variables
Variable | Required | Description |
| Yes | Long-lived Page Access Token |
| Yes | Default Facebook Page ID (numeric) |
Development
npm run dev # Watch mode — recompiles on save
npm run build # Production build
npm start # Run the serverContributing
Issues and PRs welcome. If Meta changes the API (they will), please open an issue.
License
MIT — see LICENSE.
Built as part of The SEO Engine by Rex Jones.
Available Tools
9 toolscreate_postA
Create a new post on the Facebook Page. Supports text posts, link posts, and photo posts. Returns the new post ID.
Inputs: link, message, page_id, photo_url.
get_page_feedA
Retrieve the full page feed including visitor posts (unlike published_posts which only returns page-authored posts).
Inputs: after, limit, page_id.
get_page_infoA
Retrieve Facebook Page metadata: name, category, follower count, contact info, location, hours, and cover photo.
Inputs: page_id.
get_page_insightsB
Retrieve page-level analytics (page_views_total, page_fans, page_fan_adds, page_fan_removes, page_actions_post_reactions_total). Supports day/week/days_28 periods and date ranges. NOTE: Legacy metrics page_impressions and page_reach are deprecated as of June 2026.
Inputs: since, until, period, metrics, +2 more.
get_post_commentsA
Retrieve paginated comments on a specific post, including author, timestamp, like count, and reply count.
Inputs: post_id (required), after, limit.
get_post_insightsA
Retrieve engagement metrics for a specific post: impressions, engaged users, clicks, reactions by type, and activity by action type.
Inputs: post_id (required), metrics.
get_published_postsB
Retrieve a paginated list of posts published by the page, including message, image, permalink, shares, and type.
Inputs: after, limit, page_id.
get_video_insightsB
Retrieve performance metrics for a specific video: views, impressions, average watch time, total watch time, and reactions by type.
Inputs: video_id (required), metrics.
refresh_token_infoA
Inspect the current access token to check validity, expiration date, and granted scopes. Useful for diagnosing auth issues.
Inputs: token.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Tool purposes are mostly distinct, but 'get_published_posts' and 'get_page_feed' both retrieve posts with the difference being inclusion of visitor posts. While descriptions clarify, they could cause confusion. Similarly, separate insight tools for page, post, and video are clear. Overall minor overlap.
Most tools use 'get_' prefix, but 'create_post' and 'refresh_token_info' use different verbs. Among 'get_', suffixes vary between 'info', 'insights', 'posts', 'comments', 'feed', without a strict pattern. This mixed convention is noticeable but still understandable.
9 tools is appropriate for a Facebook Pages API covering essential operations: page info, insights, post retrieval (two flavors), post interactions, video analytics, post creation, and token management. Neither too few nor too many.
The tool set covers reading page data, posts, comments, and insights, and creating posts. However, it lacks update and delete operations for posts, comment management beyond reading, and other page management features. These gaps are notable for a complete page management surface.
Related MCP Connectors
Meta Ads MCP server: run Facebook and Instagram campaigns, ad sets, ads and reports from AI.
Instagram MCP for DM and comment automation, AI Agent and content publishing via Meta's official API
Instagram and Facebook Pages for AI agents: publish, comments, DM by keyword, inbox, insights.
Agent-first social media publishing, scheduling, analytics, and unified inbox API + 16-tool MCP server across 18 social platforms (X, LinkedIn, Instagram, YouTube, TikTok, Threads, Bluesky, Reddit, Telegram, Discord, Mastodon, Facebook, Pinterest).
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server to safely publish posts to multiple Facebook Pages via Meta Graph API, with built-in guardrails for brand voice, banned topics, image requirements, and anti-duplication.422 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for organic Instagram analytics via the Meta Graph API, providing read-only tools for profiles, media, insights, audience, and optional publishing.GPL 3.0
- AlicenseAqualityBmaintenanceA TypeScript MCP server for the Meta Graph API focused on Facebook Pages, enabling publishing, reading, insights, and moderation tasks.53383 npm2MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for Instagram Graph API integration, enabling AI applications to manage Instagram Business accounts: fetch profiles, media, insights, publish content, and handle DMs.MIT