AutomateLab-tech/content-distribution-mcp

AutomateLab-tech/content-distribution-mcp

от automatelab-tech
MCP сервер content-distribution-mcp публикует один контент на 8+ платформах (Reddit, LinkedIn, Bluesky и др.) с адаптацией под каждую. Учитывает лимиты, идемпотентность, правила сообществ. Полезен для контент-мейкеров и AI-агентов.

content-distribution-mcp

Publish your content everywhere—without rewriting for every platform.

A MCP server that distributes a single piece of content across 8+ channels (DEV.to, Hashnode, GitHub Discussions, Reddit, Bluesky, LinkedIn, Medium, Twitter) with automatic platform-specific adaptation, idempotent publishing, per-community anti-spam rules, and centralized state management.

The Problem It Solves

Creating and publishing content at scale is friction-heavy:

  • Different formats: Reddit strips formatting, Twitter has character limits, DEV.to supports embeds and rich media. Each needs customized copy.
  • Platform rules: Subreddits enforce cooldowns and flair requirements. Communities have posting patterns and automoderator gates. LinkedIn suppresses external links.
  • State chaos: Which posts went live where? What if a publish fails halfway? Did that Reddit post get auto-removed by spam filters?

This MCP handles distribution complexity. Write your core message once, generate platform-specific variants, publish everywhere safely.

Инструменты были проиндексированы:
channel_hintsтолько чтениеидемпотентный

Возвращает статические метаданные для каждого канала: ограничения на количество символов, флаги поддержки Markdown, словарь тегов и правила размещения CTA. Побочные эффекты: только чтение; никаких внешних HTTP-вызовов; аутентификация не требуется. Полностью детерминировано — возвращает константы адаптера на этапе компиляции. Используйте channel_hints до составления тела варианта, чтобы понять ограничения канала; используйте post_publish или post_schedule, как только у вас есть корректный вариант.

Статические поканальные метаданные

Параметры
  • channelstringобязательный

    Название платформы канала, например 'devto', 'reddit', 'hashnode', 'bluesky'. Используйте только префикс платформы, а не полную форму 'platform:account'.

post_drainидемпотентныйвнешний мир

Запускает все запланированные публикации, срок которых наступил или уже прошёл. Побочные эффекты: выполняет внешние HTTP-запросы для каждого подлежащего публикации элемента; записывает результаты в YAML backend. Идемпотентность: уже опубликованные пары (content.id, channel) пропускаются; если нет подлежащих публикации элементов, ничего не делает. Безопасно вызывать из cron. Используйте post_drain по расписанию для очистки очереди; используйте post_publish или post_schedule для добавления нового контента; используйте post_status для просмотра результатов после выполнения drain.

Опубликовать все запланированные записи, срок которых наступил

Параметры
  • nowstring

    Граница даты и времени в формате ISO-8601, например '2026-05-21T09:00:00Z'; если не указана, используется текущее время UTC.

post_publishидемпотентныйвнешний мир

Опубликовать один или несколько вариантов каналов немедленно. Побочные эффекты: выполняет внешние HTTP-запросы к каждой платформе канала; записывает состояние публикации в локальный бэкенд YAML; требует действительных учётных данных в указанном профиле. Идемпотентно по (content.id, channel) - повторный запуск с теми же идентификаторами возвращает кэшированное состояние без повторной публикации. Используйте post_publish для немедленной доставки; используйте post_schedule, когда любому варианту требуется будущий schedule_at; используйте post_drain для очистки ранее созданной очереди.

Публикует варианты на один или несколько каналов немедленно.

Параметры
  • contentobjectобязательный

    Публикуемый контент: стабильный id (ключ идемпотентности), заголовок, body_md, теги и необязательные поля cover_image / canonical_url / cta_block / author. Пара id + channel - ключ дедупликации: один и тот же id не будет опубликован повторно.

  • profile_namestringобязательный

    Название профиля распространения (хранилище учетных данных). Используйте profile_list, чтобы узнать доступные имена.

  • variantsobject[]обязательный

    Одна или несколько целей публикации для конкретного канала. Каждая запись указывает слаг канала (например, 'devto:main', 'reddit:ClaudeAI'), адаптированные заголовок и текст, необязательный параметр schedule_at для отложенной публикации и дополнительные параметры канала, например flair. Используйте channel_hints, чтобы проверить ограничения по каждому каналу перед составлением публикации.

post_scheduleидемпотентныйвнешний мир

Ставит в очередь варианты каналов с schedule_at для будущей публикации; варианты без schedule_at публикуются сразу. Побочные эффекты: записывает записи в локальное YAML-хранилище расписаний; делает внешние HTTP-запросы для любых немедленно опубликованных вариантов; требует учётные данные в указанном профиле. Идемпотентен на (content.id, channel). Используйте post_schedule, когда любому варианту нужно время будущей публикации; используйте post_publish для немедленной доставки всего; используйте post_drain, чтобы обработать запланированную очередь позже.

Варианты расписания для будущей публикации

Параметры
  • contentobjectобязательный

    Публикуемый контент: стабильный id (ключ идемпотентности), заголовок, body_md, теги и необязательные поля cover_image / canonical_url / cta_block / author. Пара id + channel - ключ дедупликации: один и тот же id не будет опубликован повторно.

  • profile_namestringобязательный

    Название профиля распространения (хранилище учетных данных). Используйте profile_list, чтобы узнать доступные имена.

  • variantsobject[]обязательный

    Одна или несколько целей публикации для конкретного канала. Каждая запись содержит слаг канала, адаптированный заголовок и тело, а также опционально schedule_at (ISO-8601 с часовым поясом) для отложенной доставки. Варианты без schedule_at публикуются сразу; варианты с schedule_at ставятся в очередь для post_drain. Используйте channel_hints для проверки ограничений по каналам.

post_statusтолько чтениеидемпотентный

Возвращает статус публикации для материалов. Фильтрует по content_id, channel или обоим; если ничего не указано, возвращает все записи. Побочные эффекты: только чтение, без внешних HTTP-вызовов, без авторизации. Детерминирован при неизменном состоянии бэкенда. Используйте post_status, чтобы проверить, что опубликовано, поставлено в очередь или произошла ошибка; используйте post_publish, post_schedule или post_drain, чтобы изменить состояние.

Прочитать состояние публикации для фрагментов контента

Параметры
  • channelstring

    Фильтрует по конкретному слаг-каналу, например 'devto', 'reddit:ClaudeAI'; если параметр опущен, возвращает состояние для всех каналов.

  • content_idstring

    Фильтрует по конкретному фрагменту контента, используя его стабильный идентификатор; если параметр опущен, возвращает состояние для всего контента.

post_unpublishвнешний мир

Удаляет опубликованный пост на целевой платформе в режиме best-effort. Побочные эффекты: выполняет внешний HTTP DELETE или запрос на обновление; DEV.to устанавливает published=false (мягкое удаление); платформы без API удаления возвращают success=false без ошибки. Неидемпотентный: вызов уже удалённого URL может вернуть ошибку 404 платформы. Используйте post_unpublish, чтобы отозвать опубликованный пост; сначала используйте post_status для получения live_url; используйте post_publish, чтобы опубликовать заново после отзыва.

Отозвать опубликованный пост (best-effort)

Параметры
  • channelstringобязательный

    Слаг канала, в который был опубликован пост, например 'devto', 'hashnode', 'reddit:ClaudeAI'.

  • live_urlstringобязательный

    URL опубликованного поста, который нужно отозвать, например 'https://dev.to/user/post-slug'.

profile_listтолько чтениеидемпотентный

Возвращает все имена профилей распространения, настроенных в YAML backend. Побочные эффекты: только чтение; без внешних HTTP-вызовов. Детерминировано при заданном состоянии backend. Используйте profile_list, чтобы узнать доступные профили перед вызовом post_publish, post_schedule или subreddit_list; затем передайте выбранное имя как profile_name.

Вывести список настроенных профилей распространения

Параметры

Без параметров.

subreddit_listтолько чтениеидемпотентный

Возвращает все subreddits из Subreddit Catalog с окнами ожидания (cooldown windows), словарём flair (flair vocabulary) и метаданными последнего поста. Опционально фильтрует по subreddits, разрешённым указанным профилем. Побочные эффекты: только чтение; без внешних HTTP-вызовов. Детерминировано при данном состоянии бэкенда. Используй subreddit_list, чтобы выбрать subreddit и получить ID flair перед составлением варианта канала reddit:; передавай flair в variant.extras.flair.

Вывести список записей каталога Subreddit

Параметры
  • profile_namestring

    Необязательное имя профиля для фильтрации subreddit по тем, которые разрешены этим профилем; опустите, чтобы вернуть полный каталог.

3.0.0основная
2.2.4
2.2.3
2.2.1
2.2.0
2.1.0
2.0.1

Выберите клиент, чтобы установить AutomateLab-tech/content-distribution-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "automatelab-tech-content-distribution-mc-py369wlr89": {
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/content-distribution-mcp"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "automatelab-tech-content-distribution-mc-py369wlr89": {
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/content-distribution-mcp"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "automatelab-tech-content-distribution-mc-py369wlr89": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/content-distribution-mcp"
      ]
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"automatelab-tech-content-distribution-mc-py369wlr89\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"@automatelab/content-distribution-mcp\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "automatelab-tech-content-distribution-mc-py369wlr89": {
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/content-distribution-mcp"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add automatelab-tech-content-distribution-mc-py369wlr89 -- npx -y @automatelab/content-distribution-mcp

Либо через JSON-конфиг:

claude mcp add-json automatelab-tech-content-distribution-mc-py369wlr89 "{\"command\":\"npx\",\"args\":[\"-y\",\"@automatelab/content-distribution-mcp\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add automatelab-tech-content-distribution-mc-py369wlr89 -- npx -y @automatelab/content-distribution-mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.automatelab-tech-content-distribution-mc-py369wlr89]
command = "npx"
args = ["-y", "@automatelab/content-distribution-mcp"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите AutomateLab-tech/content-distribution-mcp, а в поле команды запуска — строку ниже:
npx -y @automatelab/content-distribution-mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "automatelab-tech-content-distribution-mc-py369wlr89": {
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/content-distribution-mcp"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "automatelab-tech-content-distribution-mc-py369wlr89": {
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/content-distribution-mcp"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например automatelab-tech-content-distribution-mc-py369wlr89.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: automatelab-tech-content-distribution-mc-py369wlr89
    command: npx
    args:
      - "-y"
      - "@automatelab/content-distribution-mcp"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "automatelab-tech-content-distribution-mc-py369wlr89": {
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/content-distribution-mcp"
      ]
    }
  }
}

Похожие MCP-сервера

AutomateLab-tech/seo-performance-mcp

AutomateLab-tech/seo-performance-mcp

от automatelab-tech

MCP сервер для аудита контента: сводит данные из Search Console, аналитики и Clarity, выдаёт вердикт (обновить, расширить или удалить). Находит посты с падающим трафиком. Помогает контент-маркетоло...

TypeScript⭐ 3
opusforge/gorilla-mcp

opusforge/gorilla-mcp

от opusforge

MCP сервер Gorilla помогает SaaS-стартапам найти первых пользователей: параллельно ищет сигналы спроса в Reddit, X, YouTube, LinkedIn и Bluesky, ранжируя результаты по готовности к покупке (Hot/Warm/Cold). Бесплатный старт — 100 кредитов, по одному за горячий лид.

JavaScript⭐ 3
shensi8312/blogburst-mcp-server

shensi8312/blogburst-mcp-server

от shensi8312

MCP сервер для AI маркетинга в соцсетях. Через чат генерируйте контент, управляйте автопостингом и публикуйте на 9 платформах. Полезен маркетологам и контент-менеджерам.

JavaScript⭐ 7
AutomateLab-tech/citation-intelligence

AutomateLab-tech/citation-intelligence

от automatelab-tech

MCP сервер для отслеживания цитирований URL в AI-поисковиках (Perplexity, ChatGPT, Claude, Gemini). Локальная установка, без аккаунта. Агенты и разработчики получают programmatic данные о цитированиях, видимости сайта и конкурентов. Идеален для SEO и GEO без подписок.

TypeScript⭐ 9
mobileshop9991-star/clipwise-mcp

mobileshop9991-star/clipwise-mcp

от mobileshop9991-star

Clipwise MCP сервер подключает инструменты AI-платформы для создателей коротких видео к любому MCP-клиенту: анализируйте ролики, ищите тренды TikTok и генерируйте контент прямо в Claude Desktop, Cursor или Windsurf без переключения контекста.

JavaScript⭐ 1
peturgeorgievv-factory/postfast-mcp

peturgeorgievv-factory/postfast-mcp

от peturgeorgievv-factory

MCP-сервер для API PostFast: планируйте и публикуйте посты в соцсетях, загружайте медиа, смотрите аналитику. Работает с AI-ассистентами — полезно маркетологам и SMM-специалистам для автоматизации.

TypeScript⭐ 6
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин