Skip to main content
Glama
boreales

mcp-plus-tard

Plus Tard MCP

Python FastAPI MCP License

Conecte su asistente de IA (Claude, Cursor, n8n…) a Plus Tard para programar sus publicaciones en Facebook, Instagram, LinkedIn, X/Twitter, TikTok, Threads, Bluesky y Google My Business mediante una simple conversación.

Endpoint de producción : https://mcp.plus-tard.com/mcp/ Documentación de usuario : https://plus-tard.com/api-mcp


Demo en 30 segundos

Usted : « Programa una publicación de Facebook en mi página Boréales mañana a las 10h: "¡Hola mundo!" »

Claude llama automáticamente a:

  1. list_accounts → encuentra el identificador de Facebook de "Boréales"

  2. schedule_post(provider="facebook", page_id="…", planned_at="2026-05-05T10:00:00Z", text="¡Hola mundo!")

Plus Tard : ✅ Publicación #1432 programada para el 05/05/2026 a las 10:00.


Herramientas (5)

Herramienta

Descripción

validate_api_key

Verifica que una clave API esté activa y devuelve sus metadatos.

list_accounts

Lista todas las cuentas de redes sociales conectadas a Plus Tard.

schedule_post

Programa una publicación en una sola red (1 llamada = 1 red).

register_user

Crea un nuevo usuario y devuelve una URL OAuth.

get_user

Detalle de un usuario: proveedores conectados y subcuentas.

Recursos (2)

URI

Contenido

plus-tard://accounts

Lista JSON de las cuentas conectadas.

plus-tard://users/{id}

Detalle JSON de un usuario.


Instalación del lado del cliente

Claude Desktop

Añada a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) :

{
  "mcpServers": {
    "plus-tard": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.plus-tard.com/mcp/",
        "--header",
        "X-Api-Key:${PLUS_TARD_TOKEN}"
      ],
      "env": {
        "PLUS_TARD_TOKEN": "your_plus_tard_api_key"
      }
    }
  }
}

Claude Code (CLI)

claude mcp add plus-tard \
  --transport http https://mcp.plus-tard.com/mcp/ \
  --header "X-Api-Key: your_plus_tard_api_key"

Claude.ai (web)

Settings → Connectors → Add custom connector — URL https://mcp.plus-tard.com/mcp/, header X-Api-Key: your_key.

Cursor / n8n

Mismas URL y header. Consulte la documentación completa.


Self-host (para desarrolladores)

Stack

  • Python 3.12 · FastAPI · mcp[fastapi] (Streamable HTTP transport)

  • httpx · pydantic v2 · pydantic-settings

  • pytest · pytest-asyncio · respx

Arquitectura

Client (Claude/Cursor/n8n)
   │  Streamable HTTP + X-Api-Key header
   ▼
MCP server (this repo)
   │  X-Api-Key forwarded as-is
   ▼
Plus Tard Symfony API

Cada solicitud MCP llega con X-Api-Key, que se propaga tal cual a la API de Plus Tard. Sin sesión, sin almacenamiento del lado del servidor — cada cliente utiliza su propia clave.

Desarrollo local

git clone https://github.com/<votre-org>/plus-tard-mcp.git
cd plus-tard-mcp

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

cp .env.example .env
# Édite .env : PLUS_TARD_BASE_URL=https://plus-tard.com

uvicorn main:app --reload --port 8001

El servidor escucha en http://127.0.0.1:8001/mcp/. Prueba rápida con el MCP Inspector :

npx @modelcontextprotocol/inspector
# Transport: Streamable HTTP
# URL: http://127.0.0.1:8001/mcp/
# Header: X-Api-Key = ta_clef_plus_tard

Pruebas

pytest
# 24 passed

Despliegue Docker (producción)

El repositorio proporciona Dockerfile + docker-compose.yml listos para un VPS con nginx-proxy + acme-companion :

sudo docker compose up -d --build

Consulte deploy/README.md para más detalles (snippet nginx-proxy SSE-friendly, gestión TLS Let's Encrypt, actualización).


Configuración

Variable

Descripción

Por defecto

PLUS_TARD_BASE_URL

URL base de la API Plus Tard

(requerido)

MCP_HOST

Bind host para uvicorn

0.0.0.0

MCP_PORT

Bind port para uvicorn

8001

La autenticación se realiza por solicitud a través del header X-Api-Keyningún token se almacena del lado del servidor.

Hosts autorizados

El SDK MCP activa una protección anti-DNS rebinding que solo autoriza a los hosts incluidos en la lista blanca. Los hosts por defecto son:

  • mcp.plus-tard.com

  • localhost, 127.0.0.1 (para desarrollo)

Para añadir su propio dominio, edite la lista en main.py (TransportSecuritySettings.allowed_hosts).


Estructura del proyecto

.
├── main.py                # FastAPI + FastMCP + middleware X-Api-Key
├── app/
│   ├── config.py          # Settings via pydantic-settings
│   ├── auth/              # Dependency X-Api-Key (réutilisable hors MCP)
│   ├── models/            # Schémas pydantic v2 (post, account, user)
│   ├── services/          # PlusTardClient async (httpx)
│   └── tools/             # 5 tools métier (str → str)
├── tests/                 # 24 tests pytest-asyncio
├── deploy/
│   ├── README.md          # Guide déploiement VPS
│   ├── vhost.d/           # Snippet nginx-proxy SSE
│   └── twig/              # Template Symfony pour la doc utilisateur
├── docs/index.html        # Doc utilisateur statique (HTML)
├── Dockerfile
├── docker-compose.yml
└── pyproject.toml

Seguridad

  • HTTPS únicamente en producción (TLS vía Let's Encrypt).

  • Sin registros (logs) del contenido de las publicaciones ni de los tokens API.

  • Anti-DNS rebinding vía TransportSecuritySettings del SDK MCP.

  • Multi-tenancy aislado : cada solicitud se procesa con su propio cliente httpx, cerrado al finalizar la solicitud (sin pooling cross-user).

  • Si sospecha que una clave se ha filtrado, revóquela desde su espacio Plus Tard.


Roadmap

  • [ ] Registro estructurado (JSON, sin tokens ni contenidos)

  • [ ] Rate limiting por clave API

  • [ ] Métricas Prometheus

  • [ ] Flujo OAuth para conectores (en lugar de una clave API copy-paste)

  • [ ] Soporte completion/complete MCP para sugerencias de page_id (a la espera de un SDK Python que exponga ToolReference)

Ideas y contribuciones son bienvenidas — abra un issue o un PR.


Enlaces útiles


Licencia

MIT © 2026 Plus Tard — Boréales Créations.

Hecho con ❤️ en Francia.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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/boreales/mcp-plus-tard'

If you have feedback or need assistance with the MCP directory API, please join our Discord server