anthonyjbolo avatar

Facebook Publisher

anthonyjbolo/mcp-fb-publisher

Wraps the Meta Graph API to let Claude publish to Facebook Pages with guardrails baked in. You get four tools: publish (with optional scheduling), pre-publish validation, anti-duplicate checking via Jaccard similarity over word n-grams, and AI image generation through OpenAI or fal.ai. The validator runs offline and checks against per-page config (banned topics, image requirements, brand voice notes, lookback windows). Built to handle multi-page scenarios where you need different rules per brand and can't afford silent token expiry or accidentally posting the same angle twice in two weeks. All validation is pure Python, so you can run it in CI without API credentials.

tools
4
auth
Secret needed
transport
STDIO
env vars
5
last updated
May 9, 2026

Tools

4 tools

Public tool metadata for what this MCP can expose to an agent.

fb_publish_postPublishes (or schedules) a post on a configured page. Runs full validation by default; pass `skip_validation=True` to bypass.

Publishes (or schedules) a post on a configured page. Runs full validation by default; pass `skip_validation=True` to bypass.

No parameter schema in public metadata yet.

fb_validate_pre_publishDry-run all guardrails. Returns `verdict: go|block` plus per-check details. Network-optional.

Dry-run all guardrails. Returns `verdict: go|block` plus per-check details. Network-optional.

No parameter schema in public metadata yet.

fb_anti_duplicate_checkCompares a candidate message against the page's recent posts using Jaccard similarity over word 4-grams.

Compares a candidate message against the page's recent posts using Jaccard similarity over word 4-grams.

No parameter schema in public metadata yet.

fb_generate_post_with_imageGenerates an image via OpenAI (`gpt-image-1`) or fal.ai (`flux-pro`) and returns a URL ready for `fb_publish_post`.

Generates an image via OpenAI (`gpt-image-1`) or fal.ai (`flux-pro`) and returns a URL ready for `fb_publish_post`.

No parameter schema in public metadata yet.

Sponsors

Configuration

META_USER_TOKEN*secret

Long-lived Meta Graph API user or page token. Required for publishing.

MCP_FB_PUBLISHER_CONFIG

Absolute path to your config.yaml (per-page brand voices, banned topics, image policy).

MCP_FB_PUBLISHER_CONFIG_JSON

Inline JSON config (alternative to file path, useful for serverless deploys).

OPENAI_API_KEYsecret

OpenAI API key for image generation via gpt-image-1 (optional).

FAL_KEYsecret

fal.ai API key for image generation via Flux Pro (optional).

Readme

mcp-fb-publisher

An MCP server that lets Claude (or any MCP-compatible LLM) safely publish posts to multiple Facebook Pages through the Meta Graph API, with built-in guardrails: brand-voice config, banned-topic blocklists, image-required enforcement, and anti-duplication checks across recent feed posts.

Tests License: MIT Python 3.12+ #BuiltOnClaudeCode

Why this exists

Letting an LLM agent post directly to your Facebook Pages is a footgun unless you put guardrails in front. Common failure modes I have hit running 5+ pages:


View the full README on GitHub

Details

Repository
github.com/anthonyjbolo/mcp-fb-publisher
Website
github.com/anthonyjbolo/mcp-fb-publisher
Package
mcp-fb-publisher
Transport
STDIO
Auth
Required
Registry
MCP registry, active