Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

Facebook Publisher

de anthonyjboloversión 0.1.1i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.anthonyjbolo/mcp-fb-publisher

Instalar

Resumen

Descripción del creador (original en inglés)

Safe Facebook Pages publishing with brand-voice, image-required & anti-duplication checks.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Marketing y redes sociales
  • Debes completar: META_USER_TOKEN, OPENAI_API_KEY, FAL_KEY

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

  • Revisiones básicas: 1 de 1 superadas
  • Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
  • Debes completar tú: META_USER_TOKEN, MCP_FB_PUBLISHER_CONFIG, MCP_FB_PUBLISHER_CONFIG_JSON, OPENAI_API_KEY, FAL_KEY

Los valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.

Necesitas

  • PyPIuv de Python instalado (para el comando uvx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "fb-publisher": {
      "command": "uvx",
      "args": [
        "mcp-fb-publisher"
      ],
      "env": {
        "META_USER_TOKEN": "your-value",
        "MCP_FB_PUBLISHER_CONFIG": "your-value",
        "MCP_FB_PUBLISHER_CONFIG_JSON": "your-value",
        "OPENAI_API_KEY": "your-value",
        "FAL_KEY": "your-value"
      }
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add fb-publisher --env META_USER_TOKEN=your-value --env MCP_FB_PUBLISHER_CONFIG=your-value --env MCP_FB_PUBLISHER_CONFIG_JSON=your-value --env OPENAI_API_KEY=your-value --env FAL_KEY=your-value -- uvx mcp-fb-publisher

Completa los valores vacíos antes de ejecutarlo.

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "fb-publisher": {
      "command": "uvx",
      "args": [
        "mcp-fb-publisher"
      ],
      "env": {
        "META_USER_TOKEN": "your-value",
        "MCP_FB_PUBLISHER_CONFIG": "your-value",
        "MCP_FB_PUBLISHER_CONFIG_JSON": "your-value",
        "OPENAI_API_KEY": "your-value",
        "FAL_KEY": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "fb-publisher": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-fb-publisher"
      ],
      "env": {
        "META_USER_TOKEN": "your-value",
        "MCP_FB_PUBLISHER_CONFIG": "your-value",
        "MCP_FB_PUBLISHER_CONFIG_JSON": "your-value",
        "OPENAI_API_KEY": "your-value",
        "FAL_KEY": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Valores que debes completar

  • META_USER_TOKEN secreto obligatorio env
    Long-lived Meta Graph API user or page token. Required for publishing.
  • MCP_FB_PUBLISHER_CONFIG env
    Absolute path to your config.yaml (per-page brand voices, banned topics, image policy).
  • MCP_FB_PUBLISHER_CONFIG_JSON env
    Inline JSON config (alternative to file path, useful for serverless deploys).
  • OPENAI_API_KEY secreto env
    OpenAI API key for image generation via gpt-image-1 (optional).
  • FAL_KEY secreto env
    fal.ai API key for image generation via Flux Pro (optional).

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 9 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub anthonyjbolo, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Marketing y redes socialesi

  • Más estrellas que el 0% de los otros 3630 servidores de esta categoría
  • Publicado en el registro más recientemente que el 8% de los otros 3630 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 3630 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro Facebook Publisher?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

Debes completar: META_USER_TOKEN, OPENAI_API_KEY, FAL_KEY

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (0.1.1) llegó al registro hace 6 meses.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

MCP YouTube Transcript

An MCP server retrieving transcripts of YouTube videos

de jkawamotoEn crecimiento★ 495Actualizado hace 12 días

Se ejecuta en tu computadora

Google Analytics MCP

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

de surendranbEn crecimiento↓ 1,1 mil/sem★ 244Actualizado hace 12 días

Se ejecuta en tu computadora

BibiGPT YouTube Video Summarizer

AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.

de JimmyLvEn crecimiento★ 137Actualizado hace 12 días

Se ejecuta en la nube✓ bibigpt.co

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

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.

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:

  1. Token expired silently — post fails at midnight, nobody notices for 3 days.
  2. Same angle posted twice in 14 days — audience tunes out, reach drops.
  3. Text-only post when the brand voice mandates an image — engagement craters.
  4. Banned topic leaked — competitor name, internal codename, or deprecated product mentioned.

mcp-fb-publisher ships an MCP server that wraps the Meta Graph API behind 4 deterministic tools, all driven by a single config.yaml. Every publish call goes through validation by default. Validation is pure-Python (no LLM), reproducible in CI, and runs offline.

What it does

4 MCP tools:

ToolWhat it does
fb_publish_postPublishes (or schedules) a post on a configured page. Runs full validation by default; pass skip_validation=True to bypass.
fb_validate_pre_publishDry-run all guardrails. Returns `verdict: goblock` plus per-check details. Network-optional.
fb_anti_duplicate_checkCompares a candidate message against the page's recent posts using Jaccard similarity over word 4-grams.
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.

5-minute quickstart

# 1. Install

pip install mcp-fb-publisher

2. Copy and edit the example config

cp config.example.yaml config.yaml

-> set page_id values, brand voices, banned_topics

3. Set required env

export META_USER_TOKEN=" " export MCP_FB_PUBLISHER_CONFIG="$PWD/config.yaml"

4. (Optional) for image generation

export OPENAI_API_KEY="sk-..." # or export FAL_KEY="..."

5. Run the MCP server (stdio transport)

mcp-fb-publisher

Wire it into Claude Desktop / Claude Code

Add to your claude_desktop_config.json:

{

"mcpServers": { "fb-publisher": { "command": "mcp-fb-publisher", "env": { "META_USER_TOKEN": "your_token_here", "MCP_FB_PUBLISHER_CONFIG": "/absolute/path/to/config.yaml", "OPENAI_API_KEY": "sk-..." } } } }

Then ask Claude things like:

*"Post on the marketing page: 'New collection drops Friday'. Generate an image first, validate, then publish."*

Claude will call fb_generate_post_with_image → fb_validate_pre_publish → fb_publish_post.

Architecture

flowchart LR

A[Claude / MCP client] -->|tool call| B[FastMCP server] B --> C{tool} C -->|generate| D[OpenAI / fal.ai] C -->|validate| E[Validator pure Python] C -->|anti-dup| F[Meta Graph API fetch_recent_posts] C -->|publish| G[Meta Graph API POST /feed or /photos] E -.reads.-> H[(config.yaml per-page rules)] G -.reads.-> H F -.reads.-> H

The split between generation, validation and publish is intentional: it lets the LLM iterate on the visual without burning Meta API quota, and it makes the guardrails inspectable in CI without a Meta account.

Anti-duplication strategy

We compare the candidate message against every post within anti_duplicate_lookback_days (per-page, default 14) using Jaccard similarity over word 4-grams:

  1. Normalize: lowercase, strip accents (NFKD), drop URLs, drop punctuation, collapse whitespace.
  2. Build the set of word-level 4-grams for both texts.
  3. similarity = |A ∩ B| / |A ∪ B|
  4. If similarity >= similarity_threshold (default 0.5), block.

Why this and not embeddings: deterministic, free, no extra API key, fast enough for 50 candidates per call. If you want LLM-grade semantic comparison, add another layer on top — the fb_validate_pre_publish tool returns the score so your agent can decide.

Brand voice config

defaults:

language: en brand_voice: | Direct, professional, no fluff. banned_topics: [] image_required: true anti_duplicate_lookback_days: 14

pages: marketing_main: page_id: "0000000000000000" name: "My Brand — Main" brand_voice: | Confident, concise, customer-first. banned_topics:

  • competitor_brand_a
  • leaked_codename image_required: true

community: page_id: "0000000000000002" name: "Community" image_required: false

Note: the brand_voice field is informational — it's surfaced to the calling LLM via the tool description but the server itself does not LLM-validate against it. This is by design (tests must run offline). Layer your own LLM check on top if you want enforcement.

Use cases

1. Multi-page agency

You manage 5 Facebook pages for clients. Each has its own brand voice, banned topics (competitor names), and image policy. Configure them all in one config.yaml, give Claude the tool, and let the agent draft + validate + publish across all of them with safety rails.

2. Solo founder

You run a single product page and want Claude to schedule the next 30 days of posts. Set image_required: true, give the agent your product brief, and use fb_anti_duplicate_check to make sure no two posts land on the same angle within a fortnight.

3. E-commerce

You rotate flash promos. Set anti_duplicate_lookback_days: 7 for the promo page and 14 for the evergreen content page. Combine with scheduled_at to queue a week's worth of posts in one shot.

Development

git clone https://github.com/anthonyjbolo/mcp-fb-publisher.git

cd mcp-fb-publisher

python3.12 -m venv .venv source .venv/bin/activate pip install -e ".[dev,openai,fal]"

Run the test suite (offline, no Meta credentials needed)

pytest

Lint

ruff check .

All tests use httpx.MockTransport and pytest-mock. No real Meta API calls in tests.

Security

  • The Meta token is read from META_USER_TOKEN only. Never hard-code it.
  • Token strings are redacted from error messages (***REDACTED***) before they leave the process.
  • The validator is sync and offline — safe to run in CI without exposing credentials.
  • config.yaml is in .gitignore. Only config.example.yaml is committed.

Roadmap

  • Instagram Graph API support (the validator already works, only the meta_client publish path needs adapting).
  • Optional ntfy webhook on publish failure.
  • LLM-grade brand-voice scoring as an opt-in tool.
  • Token rotation helper (fb_check_token_expiry).

En français — pourquoi ce projet

Construit en Nouvelle-Calédonie pour gérer 5 pages FB en parallèle (auto-école, marketplace de bingo, atelier d'apps, marque de tee-shirts, page média). Tous les écueils ci-dessus sont des bugs que j'ai vraiment vécus. Le serveur MCP est la couche que j'aurais aimé avoir le premier jour — maintenant elle est libre.

License

MIT — see LICENSE.

Contributing

Issues + PRs welcome. Please run pytest and ruff check . before opening a PR. For substantial features, open an issue first to discuss.

#BuiltOnClaudeCode

Pregunta a PopNx