io.github.anthonyjbolo/mcp-fb-publisher
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FAL_KEY | No | Optional API key for fal.ai image generation | |
| OPENAI_API_KEY | No | Optional API key for OpenAI image generation | |
| META_USER_TOKEN | Yes | Your long-lived Meta page/user token | |
| MCP_FB_PUBLISHER_CONFIG | Yes | Path to the config.yaml file |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fb_publish_postA | Publish a post on a Facebook Page via Meta Graph API. Args: page_id: Numeric Meta Page ID. message: Post message body. image_url: Optional public URL of an image. If config requires images, this MUST be provided (validation will block otherwise). scheduled_at: Optional unix timestamp (seconds). If set, the post is scheduled instead of published immediately. Meta requires 10 minutes <= delta <= 6 months. page_access_token: Optional page-scoped token. Required by Meta in production for posting on a Page (the env-level token is usually a user token; you can derive a page token from /me/accounts). skip_validation: If True, bypasses the pre-publish validator (image required, banned topics, anti-duplicate). Default False — strongly recommended to keep validation on. Returns:
Dict with |
| fb_validate_pre_publishA | Run all guard-rails BEFORE publishing. Checks: - image_required (per-page config) - banned_topics (substring, accent-insensitive) - length (10..63206 chars) - anti_duplicate (Jaccard 4-grams vs recent posts, lookback per config) Args: page_id: Numeric Meta Page ID. message: Candidate post text. image_url: Optional candidate image URL. fetch_recent: If True (default), fetches recent posts from Meta to run the anti-duplicate check. Set False to skip network. page_access_token: Optional page-scoped token (used only if fetch_recent). Returns:
Dict with |
| fb_anti_duplicate_checkA | Compare a candidate message against recent posts on the page. Args: page_id: Numeric Meta Page ID. message: Candidate text to score. lookback_days: Max age of posts to compare against (default 14). similarity_threshold: Jaccard threshold above which it's "too similar" (default 0.5; 0.0=identical, 1.0=nothing in common — careful, that's inverted intuitively. 0.5 = ~half the 4-grams overlap). page_access_token: Optional page-scoped token. Returns:
Dict with |
| fb_generate_post_with_imageA | Generate an image for a candidate post and return a usable URL. Does NOT publish. Caller is expected to take the returned image_url and
pass it to Args: page_id: Numeric Meta Page ID (used only to resolve provider defaults). prompt: Image generation prompt (English recommended). image_provider: "openai" | "fal". Defaults to config.image_providers.default. Returns:
Dict with |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/anthonyjbolo/mcp-fb-publisher'
If you have feedback or need assistance with the MCP directory API, please join our Discord server