Facebook MCP Server

Automatiza y gestiona interacciones en una página de Facebook usando la API Graph de Facebook.

Documentación

Just_Facebook MCP Server

PyPI version PyPI downloads Python versions License

Este proyecto es un servidor de Model Context Protocol (MCP) para automatizar y gestionar interacciones en una Página de Facebook utilizando la API Graph de Facebook. Proporciona herramientas para crear publicaciones, moderar comentarios, obtener estadísticas de publicaciones y filtrar comentarios negativos, listo para conectarse a Claude o cualquier otro agente basado en LLM.

Desarrollado originalmente a partir de @HagaiHen/facebook-mcp-server, esta versión está pensada para empaquetarse y distribuirse a través de PyPI.


🤖 ¿Qué es esto?

Este MCP proporciona un conjunto de herramientas invocables por IA que se conectan directamente a una Página de Facebook, abstraiendo operaciones comunes de la API como funciones amigables para LLMs.

✅ Beneficios

  • Permite a los gestores de redes sociales automatizar la moderación y el análisis.
  • Se integra perfectamente con cualquier cliente de Agent.
  • Permite un control detallado del contenido de Facebook mediante lenguaje natural.

📦 Características

HerramientaDescripción
post_to_facebookCrear una nueva publicación en Facebook con un mensaje.
reply_to_commentResponder a un comentario específico en una publicación.
get_page_postsObtener publicaciones recientes de la Página.
get_post_commentsObtener comentarios de una publicación determinada.
delete_postEliminar una publicación específica por ID.
delete_commentEliminar un comentario específico por ID.
delete_comment_from_postAlias para eliminar un comentario de una publicación específica.
filter_negative_commentsFiltrar comentarios con palabras clave de sentimiento negativo.
get_number_of_commentsContar el número de comentarios en una publicación.
get_number_of_likesContar el número de "Me gusta" en una publicación.
get_post_impressionsObtener las impresiones totales de una publicación.
get_post_impressions_uniqueObtener el número de usuarios únicos que vieron la publicación.
get_post_impressions_paidObtener el número de impresiones pagadas en la publicación.
get_post_impressions_organicObtener el número de impresiones orgánicas en la publicación.
get_post_engaged_usersObtener el número de usuarios que interactuaron con la publicación.
get_post_clicksObtener el número de clics en la publicación.
get_post_reactions_like_totalObtener el número total de reacciones "Me gusta".
get_post_top_commentersObtener los principales comentaristas de una publicación.
post_image_to_facebookPublicar una imagen con un pie de foto en la página de Facebook.
send_dm_to_userEnviar un mensaje directo a un usuario.
update_postActualiza el mensaje de una publicación existente.
schedule_postProgramar una publicación para su publicación futura.
get_page_fan_countObtener el número total de seguidores de la Página.
get_post_share_countObtener el número de veces que se compartió una publicación.

🚀 Configuración e Instalación

1. Requisitos previos

Este proyecto requiere Python 3.10+ y uv (un gestor de paquetes de Python rápido).

Para instalar uv, ejecuta:

curl -LsSf https://astral.sh/uv/install.sh | sh

2. Clonar el Repositorio

3. 🛠️ Instalar Dependencias

Usa la herramienta uv con pyproject.toml:

# Install all dependencies and create a virtual environment
uv sync

# For development (includes testing and linting tools)
uv sync --dev

4. Configurar el Entorno

Crea un archivo .env en el directorio raíz y añade tus credenciales de la Página de Facebook:

FACEBOOK_ACCESS_TOKEN=your_facebook_page_access_token
FACEBOOK_PAGE_ID=your_page_id

Cómo obtener tus credenciales de Facebook

  1. Inicia sesión en Facebook para Desarrolladores

  2. Elige Desarrollador como tu caso de uso.

  3. Crea una nueva aplicación.

  4. En el panel de la aplicación, ve a Personalizar Caso de Uso y selecciona todas las opciones.

  5. Navega a Herramientas → Explorador de API Graph.

  6. Primero crea un Token de Acceso de Usuario — asegúrate de:

    *Seleccionar todos los permisos requeridos

    *Asociarlo con tu aplicación

  7. Luego genera un Token de Acceso de Página (este heredará los permisos).

  8. Guarda el Token de Acceso de Página y úsalo en el archivo .env.

Para encontrar tu ID de Página:

Ve a tu Página de Facebook → Acerca de → Desplázate hacia abajo para ver el ID

⏰ Importante: Limitaciones del Token de la API de Facebook

Los tokens de acceso de Facebook tienen una vida útil limitada y caducarán, lo que provocará fallos en las llamadas a la API. Comprender estas limitaciones es crucial para mantener tu servidor MCP.

Tipos de Token y su Duración:

Tipo de TokenDuraciónCaso de Uso
Token de Usuario de Corta Duración1-2 horasSolo pruebas
Token de Usuario de Larga Duración60 díasDesarrollo
Token de Página de Corta Duración1-2 horasSolo pruebas
Token de Página de Larga Duración60 díasRecomendado para MCP
Token de Usuario del SistemaSin caducidad*Aplicaciones de producción

Cuando Caducan los Tokens:

  • ❌ Todas las herramientas MCP devolverán errores OAuthException
  • ❌ Mensaje de error: "La sesión ha caducado"
  • ❌ Códigos de error: 190 (token caducado) o 463 (sesión caducada)

Renovación Automática de Tokens:

Proporcionamos un script para generar fácilmente tokens de larga duración (60 días):

uv run python scripts/refresh_facebook_token.py

Este script:

  • ✅ Te guiará en la generación del token
  • ✅ Intercambiará tokens de corta duración por tokens de larga duración
  • ✅ Actualizará tu archivo .env automáticamente
  • ✅ Validará el nuevo token

Mejores Prácticas:

  • 🔄 Renueva los tokens cada 50 días para evitar la caducidad
  • 📅 Configura recordatorios en el calendario para la renovación de tokens
  • 🤖 Usa tokens de Página de larga duración para desarrollo
  • 🏢 Considera tokens de Usuario del Sistema para producción

Solución de Problemas con Tokens:

# Check if your token is expired
uv run python -c "
from just_facebook_mcp.manager import Manager
manager = Manager()
try:
    result = manager.get_page_fan_count()
    print('✅ Token is working')
except Exception as e:
    print(f'❌ Token error: {e}')
"

5. 🏃‍♂️ Ejecutar el Servidor

# Option 1: Using the script entry point (recommended)
uv run just_facebook_mcp

# Option 2: Run the Python module directly
uv run python -m just_facebook_mcp.server

# Option 3: Activate virtual environment first
source .venv/bin/activate
python -m just_facebook_mcp.server

🧩 Uso con Claude Desktop

Para integrarte con Claude Desktop:

  1. Abre Claude Desktop

  2. Ve a Configuración → Desarrollador → Editar Configuración

Configuración rápida con uvx

Puedes usar el servidor MCP sin instalarlo localmente con uvx:

Añade lo siguiente a tu configuración de MCP:

{
  "mcpServers": {
    "just_facebook_mcp": {
      "command": "uvx",
      "args": [
        "just_facebook_mcp"
      ],
      "env": {
        "FACEBOOK_ACCESS_TOKEN": "<put_your_FB_token_here>",
        "FACEBOOK_PAGE_ID": "<put_your_page_id_here>"
      }
    }
  }
}

Configuración local de desarrollo:

Si ya has clonado el servidor MCP con git, puedes configurarlo localmente.

Añade lo siguiente a tu configuración de MCP:

Opción 1: Usando el punto de entrada del paquete (recomendado)

{
  "mcpServers": {
    "just_facebook_mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/just_facebook_mcp-server",
        "just_facebook_mcp"
      ]
    }
  }
}

Opción 2: Usando el módulo de Python

{
  "mcpServers": {
    "just_facebook_mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/just_facebook_mcp-server",
        "python",
        "-m",
        "just_facebook_mcp.server"
      ]
    }
  }
}

Opción 3: Si se instaló mediante pip

{
  "mcpServers": {
    "just_facebook_mcp": {
      "command": "just_facebook_mcp"
    }
  }
}

Reemplaza /absolute/path/to/just_facebook_mcp-server con la ruta real de tu proyecto.

🔧 Desarrollo

Ejecutar Pruebas

uv run pytest

Formato de Código

uv run black .

Verificación de Tipos

uv run mypy .

Instalar Dependencias de Desarrollo

uv sync --dev

✅ ¡Estás Listo para Empezar!

Tu servidor MCP de Facebook está ahora configurado y listo para potenciar Claude Desktop. Puedes:

✨ Crear publicaciones mediante lenguaje natural

📊 Obtener análisis y estadísticas

💬 Moderar comentarios automáticamente

🎯 Programar contenido

📈 Realizar seguimiento de métricas de interacción

🤝 Contribuciones

¡Las contribuciones, problemas y solicitudes de funciones son bienvenidos!

📄 Licencia Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.