Skip to main content
Glama
boreales

mcp-plus-tard

Plus Tard MCP

Python FastAPI MCP License

Подключите своего ИИ-ассистента (Claude, Cursor, n8n…) к Plus Tard для планирования публикаций в Facebook, Instagram, LinkedIn, X/Twitter, TikTok, Threads, Bluesky и Google My Business с помощью простого диалога.

Production endpoint : https://mcp.plus-tard.com/mcp/ Руководство пользователя : https://plus-tard.com/api-mcp


Демонстрация за 30 секунд

Вы : «Запланируй пост в Facebook на моей странице Boréales завтра в 10:00: "Hello le monde !"»

Claude автоматически вызывает:

  1. list_accounts → находит идентификатор Facebook для "Boréales"

  2. schedule_post(provider="facebook", page_id="…", planned_at="2026-05-05T10:00:00Z", text="Hello le monde !")

Plus Tard : ✅ Пост #1432 запланирован на 05/05/2026 в 10:00.


Инструменты (5)

Инструмент

Описание

validate_api_key

Проверяет активность API-ключа и возвращает его метаданные.

list_accounts

Выводит список всех аккаунтов соцсетей, подключенных к Plus Tard.

schedule_post

Планирует пост в одной сети (1 вызов = 1 сеть).

register_user

Создает нового пользователя и возвращает OAuth URL.

get_user

Детали пользователя: подключенные провайдеры и под-аккаунты.

Ресурсы (2)

URI

Содержимое

plus-tard://accounts

JSON-список подключенных аккаунтов.

plus-tard://users/{id}

JSON-детали пользователя.


Установка на стороне клиента

Claude Desktop

Добавьте в ~/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/, заголовок X-Api-Key: your_key.

Cursor / n8n

Те же URL и заголовок. См. полную документацию.


Self-host (для разработчиков)

Стек

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

  • httpx · pydantic v2 · pydantic-settings

  • pytest · pytest-asyncio · respx

Архитектура

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

Каждый запрос MCP поступает с X-Api-Key, который передается в API Plus Tard без изменений. Нет сессий, нет хранения данных на стороне сервера — каждый клиент использует свой собственный ключ.

Локальная разработка

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

Сервер слушает на http://127.0.0.1:8001/mcp/. Быстрая проверка с помощью MCP Inspector :

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

Тестирование

pytest
# 24 passed

Развертывание Docker (production)

Репозиторий предоставляет Dockerfile + docker-compose.yml, готовые для VPS с nginx-proxy + acme-companion :

sudo docker compose up -d --build

См. deploy/README.md для подробностей (фрагмент nginx-proxy с поддержкой SSE, управление TLS Let's Encrypt, обновление).


Конфигурация

Переменная

Описание

По умолчанию

PLUS_TARD_BASE_URL

Базовый URL API Plus Tard

(обязательно)

MCP_HOST

Хост для привязки uvicorn

0.0.0.0

MCP_PORT

Порт для привязки uvicorn

8001

Аутентификация выполняется через заголовок запроса X-Api-Keyтокены не хранятся на стороне сервера.

Разрешенные хосты

SDK MCP активирует защиту от DNS-ребиндинга, которая разрешает только добавленные в белый список хосты. Хосты по умолчанию:

  • mcp.plus-tard.com

  • localhost, 127.0.0.1 (для разработки)

Чтобы добавить свой домен, отредактируйте список в main.py (TransportSecuritySettings.allowed_hosts).


Структура проекта

.
├── 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

Безопасность

  • Только HTTPS в production (TLS через Let's Encrypt).

  • Нет логирования содержимого постов или API-токенов.

  • Защита от DNS-ребиндинга через TransportSecuritySettings в SDK MCP.

  • Изолированная мультиарендность : каждый запрос обрабатывается собственным клиентом httpx, который закрывается по завершении запроса (без кросс-пользовательского пулинга).

  • Если вы подозреваете, что ключ скомпрометирован, аннулируйте его в личном кабинете Plus Tard.


Дорожная карта

  • [ ] Структурированное логирование (JSON, без токенов и контента)

  • [ ] Ограничение частоты запросов (rate limiting) по API-ключу

  • [ ] Метрики Prometheus

  • [ ] OAuth flow для коннекторов (вместо копирования API-ключа)

  • [ ] Поддержка completion/complete MCP для подсказок page_id (ожидается Python SDK, который предоставит ToolReference)

Идеи и вклад приветствуются — открывайте issue или PR.


Полезные ссылки


Лицензия

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

Сделано с ❤️ во Франции.

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