mcp-plus-tard
Schedule posts around social networks
README
Plus Tard MCP
Connectez votre assistant IA (Claude, Cursor, n8n…) à Plus Tard pour planifier vos publications Facebook, Instagram, LinkedIn, X/Twitter, TikTok, Threads, Bluesky et Google My Business par simple conversation.
Production endpoint : https://mcp.plus-tard.com/mcp/
Documentation utilisateur : https://plus-tard.com/api-mcp
Démo en 30 secondes
Vous : « Programme un post Facebook sur ma page Boréales demain à 10h : "Hello le monde !" »
Claude appelle automatiquement :
list_accounts→ trouve l'identifiant Facebook de "Boréales"schedule_post(provider="facebook", page_id="…", planned_at="2026-05-05T10:00:00Z", text="Hello le monde !")Plus Tard : ✅ Post #1432 planifié pour le 05/05/2026 à 10h00.
Tools (5)
| Tool | Description |
|---|---|
validate_api_key |
Vérifie qu'une clef API est active et retourne ses métadonnées. |
list_accounts |
Liste tous les comptes réseaux sociaux connectés à Plus Tard. |
schedule_post |
Planifie un post sur un seul réseau (1 appel = 1 réseau). |
register_user |
Crée un nouvel utilisateur et retourne une URL OAuth. |
get_user |
Détail d'un utilisateur : providers connectés et sous-comptes. |
Resources (2)
| URI | Contenu |
|---|---|
plus-tard://accounts |
Liste JSON des comptes connectés. |
plus-tard://users/{id} |
Détail JSON d'un utilisateur. |
Installation côté client
Claude Desktop
Ajoutez à ~/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
Mêmes URL et header. Voir la doc complète.
Self-host (pour développeurs)
Stack
- Python 3.12 · FastAPI ·
mcp[fastapi](Streamable HTTP transport) - httpx · pydantic v2 · pydantic-settings
- pytest · pytest-asyncio · respx
Architecture
Client (Claude/Cursor/n8n)
│ Streamable HTTP + X-Api-Key header
▼
MCP server (this repo)
│ X-Api-Key forwarded as-is
▼
Plus Tard Symfony API
Chaque requête MCP arrive avec X-Api-Key, qui est propagé tel quel à
l'API Plus Tard. Pas de session, pas de stockage côté serveur — chaque
client utilise sa propre clef.
Développement 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
Le serveur écoute sur http://127.0.0.1:8001/mcp/. Test rapide avec le
MCP Inspector :
npx @modelcontextprotocol/inspector
# Transport: Streamable HTTP
# URL: http://127.0.0.1:8001/mcp/
# Header: X-Api-Key = ta_clef_plus_tard
Tests
pytest
# 24 passed
Déploiement Docker (production)
Le dépôt fournit Dockerfile + docker-compose.yml prêts pour un VPS
avec nginx-proxy +
acme-companion :
sudo docker compose up -d --build
Voir deploy/README.md pour le détail (snippet
nginx-proxy SSE-friendly, gestion TLS Let's Encrypt, mise à jour).
Configuration
| Variable | Description | Défaut |
|---|---|---|
PLUS_TARD_BASE_URL |
URL de base de l'API Plus Tard | (requis) |
MCP_HOST |
Bind host pour uvicorn | 0.0.0.0 |
MCP_PORT |
Bind port pour uvicorn | 8001 |
L'authentification se fait par requête via le header X-Api-Key —
aucun token n'est stocké côté serveur.
Hosts autorisés
Le SDK MCP active une protection anti-DNS rebinding qui n'autorise que les hôtes whitelistés. Les hôtes par défaut sont :
mcp.plus-tard.comlocalhost,127.0.0.1(pour le dev)
Pour ajouter votre propre domaine, éditez la liste dans main.py
(TransportSecuritySettings.allowed_hosts).
Structure du projet
.
├── 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
Sécurité
- HTTPS uniquement en production (TLS via Let's Encrypt).
- Pas de log du contenu des posts ni des tokens API.
- Anti-DNS rebinding via
TransportSecuritySettingsdu SDK MCP. - Multi-tenancy isolée : chaque requête est traitée avec son propre client httpx, fermé en fin de requête (pas de pooling cross-user).
- Si vous suspectez qu'une clef a fuité, révoquez-la depuis votre espace Plus Tard.
Roadmap
- [ ] Logging structuré (JSON, sans tokens ni contenus)
- [ ] Rate limiting par clef API
- [ ] Métriques Prometheus
- [ ] OAuth flow pour les connecteurs (au lieu d'une clef API copy-paste)
- [ ] Support
completion/completeMCP pour suggestions depage_id(en attente d'un SDK Python qui exposeToolReference)
Idées et contributions bienvenues — ouvrez une issue ou une PR.
Liens utiles
- Documentation utilisateur
- API Plus Tard (v1.2)
- Spécification MCP
- MCP Inspector
- mcp-remote (pont stdio↔HTTP pour Claude Desktop)
License
MIT © 2026 Plus Tard — Boréales Créations.
Made with ❤️ in France.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.