Facebook-mcp Server

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

Local serverstdio

What is the Facebook-mcp Server?

Facebook-mcp is an MCP integration. Facebook Pages MCP server for the Meta Graph API — publishing, insights, moderation, messaging.

Packages and local setup

The published npm package is @ivanbaev/facebook-mcp, version 0.7.0. Its declared MCP transport is stdio.

The package declares FB_SYSTEM_TOKEN: System-user access token (Business Manager). Takes precedence over FB_ACCESS_TOKEN and FB_PAGE_TOKEN when several are set.; FB_ACCESS_TOKEN: Primary user access token. At least one of FB_SYSTEM_TOKEN, FB_ACCESS_TOKEN or FB_PAGE_TOKEN must be set.; FB_PAGE_TOKEN: Long-lived Page access token used as a fallback credential when no user or system-user token is configured.; FB_APP_ID: Meta app ID; combined with FB_APP_SECRET it forms the app access token used to authorize /debug_token inspection.; FB_APP_SECRET: Meta app secret. When set, appsecret_proof is attached to every call so a stolen bare token cannot be used on its own.; FB_PAGE_ID: Default Facebook Page ID, used when a tool call omits an explicit profile argument.; FB_API_VERSION: Graph API version to target. Defaults to the tested pinned version; other values are accepted verbatim as an escape hatch but are not tested.; FB_REQUEST_TIMEOUT_MS: Per-request timeout in milliseconds; integer in [1, 600000].; FB_HOST_CONCURRENCY: Maximum number of in-flight requests per Graph host; integer in [1, 64].; FB_MAX_RESULT_CHARS: Character budget applied by the result shaper before a tool result is truncated; integer in [500, 10000000].; FB_WRITE_MODE: Write gating mode: plan (validating dry-run preview, the default) or apply. It never covers the irreversible and spend tiers, which always need a per-call apply plus a plan_id.; FB_CONFIRM_TOKEN: Operator confirmation token for out-of-band approval of irreversible or spend actions. The server prompts through MCP elicitation where the client supports it; otherwise the caller passes this value as the confirm_token tool argument.; FB_MEDIA_DIR: Directory permitted for local media uploads. Unset means URL-only uploads and no local file access at all.; FB_JOURNAL_PATH: Path to the append-only write journal. Defaults to the XDG/%APPDATA% state path; the file is created owner-only (0600) and rotates by size.; FB_TOOL_PACKAGES: Comma-separated tool packages or profiles to expose (e.g. core,posts,reader, or the profiles core|all|reader|publisher|moderator|ads). Omit for the default profile, which excludes ads.; FB_PACKAGES_DENY: Comma-separated packages to exclude even when FB_TOOL_PACKAGES enables them. Deny wins over allow.; FB_PACKAGES_READONLY: Comma-separated packages whose write tools are not registered at all; the read tools of those packages stay available.; FB_TRANSPORT: Transport protocol: stdio (default) or http. The http transport binds 127.0.0.1 only and fails closed without FB_HTTP_TOKEN.; FB_HTTP_TOKEN: Bearer token guarding the HTTP transport; required when FB_TRANSPORT=http (the server refuses to start without it).; FB_HTTP_PORT: Port for the HTTP transport (loopback only); used when FB_TRANSPORT=http. Integer in [1, 65535].; FB_AD_ACCOUNT_ID: Default ad account ID (act_… or the bare numeric id) for the opt-in ads package.; FB_ADS_BUDGET_CEILING: Hard ceiling for any ads budget write, in minor currency units (e.g. cents). Non-negative integer; a write above it is refused.; FB_LOG_LEVEL: Stderr log verbosity: debug, info, warn or error. Logs never go to stdout — that is the stdio protocol channel..

Before connecting

Check the maintainer’s instructions for account access, authentication and the supported client configuration. Once connected, inspect the tools your client receives and try a small task that matches the server’s stated purpose. The registry description does not include a verified, complete tool list.

Project and source

View the publisher’s registry entry · Project repository · Project website. This profile uses version 0.7.0 from the registry. Registration identifies the publisher namespace; it does not establish that this is a first-party integration for every service it connects.

Browse related social media & marketing MCP servers for tools that cover the same kind of work.

Configuration

VariableDescriptionRequired
FB_SYSTEM_TOKENSystem-user access token (Business Manager). Takes precedence over FB_ACCESS_TOKEN and FB_PAGE_TOKEN when several are set.Optional
FB_ACCESS_TOKENPrimary user access token. At least one of FB_SYSTEM_TOKEN, FB_ACCESS_TOKEN or FB_PAGE_TOKEN must be set.Optional
FB_PAGE_TOKENLong-lived Page access token used as a fallback credential when no user or system-user token is configured.Optional
FB_APP_IDMeta app ID; combined with FB_APP_SECRET it forms the app access token used to authorize /debug_token inspection.Optional
FB_APP_SECRETMeta app secret. When set, appsecret_proof is attached to every call so a stolen bare token cannot be used on its own.Optional
FB_PAGE_IDDefault Facebook Page ID, used when a tool call omits an explicit profile argument.Optional
FB_API_VERSIONGraph API version to target. Defaults to the tested pinned version; other values are accepted verbatim as an escape hatch but are not tested.Optional
FB_REQUEST_TIMEOUT_MSPer-request timeout in milliseconds; integer in [1, 600000].Optional
FB_HOST_CONCURRENCYMaximum number of in-flight requests per Graph host; integer in [1, 64].Optional
FB_MAX_RESULT_CHARSCharacter budget applied by the result shaper before a tool result is truncated; integer in [500, 10000000].Optional
FB_WRITE_MODEWrite gating mode: plan (validating dry-run preview, the default) or apply. It never covers the irreversible and spend tiers, which always need a per-call apply plus a plan_id.Optional
FB_CONFIRM_TOKENOperator confirmation token for out-of-band approval of irreversible or spend actions. The server prompts through MCP elicitation where the client supports it; otherwise the caller passes this value as the confirm_token tool argument.Optional
FB_MEDIA_DIRDirectory permitted for local media uploads. Unset means URL-only uploads and no local file access at all.Optional
FB_JOURNAL_PATHPath to the append-only write journal. Defaults to the XDG/%APPDATA% state path; the file is created owner-only (0600) and rotates by size.Optional
FB_TOOL_PACKAGESComma-separated tool packages or profiles to expose (e.g. core,posts,reader, or the profiles core|all|reader|publisher|moderator|ads). Omit for the default profile, which excludes ads.Optional
FB_PACKAGES_DENYComma-separated packages to exclude even when FB_TOOL_PACKAGES enables them. Deny wins over allow.Optional
FB_PACKAGES_READONLYComma-separated packages whose write tools are not registered at all; the read tools of those packages stay available.Optional
FB_TRANSPORTTransport protocol: stdio (default) or http. The http transport binds 127.0.0.1 only and fails closed without FB_HTTP_TOKEN.Optional
FB_HTTP_TOKENBearer token guarding the HTTP transport; required when FB_TRANSPORT=http (the server refuses to start without it).Optional
FB_HTTP_PORTPort for the HTTP transport (loopback only); used when FB_TRANSPORT=http. Integer in [1, 65535].Optional
FB_AD_ACCOUNT_IDDefault ad account ID (act_… or the bare numeric id) for the opt-in ads package.Optional
FB_ADS_BUDGET_CEILINGHard ceiling for any ads budget write, in minor currency units (e.g. cents). Non-negative integer; a write above it is refused.Optional
FB_LOG_LEVELStderr log verbosity: debug, info, warn or error. Logs never go to stdout — that is the stdio protocol channel.Optional