Facebook Pages organic analytics, post management, and insights via Meta Graph API v25.0.
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.
page_impressions, page_reach, and page_impressions_unique no longer return data. This server uses the replacement metrics from day one.{
"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"
}
}
}
}
git clone https://github.com/lanternrow/facebook-pages-mcp.git
cd facebook-pages-mcp
npm install
npm run build
Then 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"
}
}
}
}
pages_show_list, pages_read_engagement, business_managementIf 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_token
If your Pages are on your personal account:
GET /me/accounts?fields=id,name,access_token
Copy the access_token and id for the Page you want.
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.
| Tool | Description |
|---|---|
get_page_info | Page metadata: name, category, follower count, contact info, cover photo |
get_page_insights | Page-level analytics with date ranges and period aggregation (day/week/28-day) |
get_published_posts | Paginated list of posts authored by the Page |
get_post_insights | Per-post engagement: impressions, clicks, reactions by type |
get_post_comments | Paginated comments with author info and like/reply counts |
get_video_insights | Video performance: views, watch time, reactions |
get_page_feed | Full feed including visitor posts |
| Tool | Description |
|---|---|
create_post | Publish text, link, or photo posts to the Page |
| Tool | Description |
|---|---|
refresh_token_info | Check token validity, expiration, and granted scopes |
Meta deprecated these page-level metrics on June 15, 2026:
| Deprecated | Replacement |
|---|---|
page_impressions | page_views_total |
page_reach | Page Viewer metric (rolling out) |
page_impressions_unique | 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.
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_info
fetchx-app-usage and x-page-usage headersafter cursor and configurable limits| Variable | Required | Description |
|---|---|---|
FB_PAGE_ACCESS_TOKEN | Yes | Long-lived Page Access Token |
FB_PAGE_ID | Yes | Default Facebook Page ID (numeric) |
npm run dev # Watch mode — recompiles on save
npm run build # Production build
npm start # Run the server
Issues and PRs welcome. If Meta changes the API (they will), please open an issue.
MIT — see LICENSE.
Built as part of The SEO Engine by Rex Jones.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y facebook-pages-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-lanternrow-facebook-pages-mcp": {
"command": "npx",
"args": [
"-y",
"facebook-pages-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencefacebook-pages-mcpnpmio.github.lanternrow/facebook-pages-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.