MendleM/Pipepost

MendleM/Pipepost

от mendlem
Pipepost — MCP сервер для публикации контента из Claude Code. Выполняет SEO-аудит и кросс-публикует статьи на популярные CMS. Генерирует посты для соцсетей и собирает аналитику. Работает локально, ...

|> Pipepost

Publish from your terminal.

MCP server that turns Claude Code into a complete content publishing pipeline — SEO, multi-platform publishing, social promotion, and analytics.

npm version npm downloads CI Glama MCP server License: MIT TypeScript

Website · Docs · npm


See it in one chat turn

→ Real agent-loop transcript — Claude Code takes a draft, audits it, scores SEO, fixes issues, cross-publishes to 5 CMS platforms with canonical URL wiring, generates social promo posts for Twitter/LinkedIn/Bluesky, and submits to IndexNow. One prompt. ~90 seconds. 2 credits.

Why Pipepost?

Task Without Pipepost With Pipepost
Publish to Dev.to Copy-paste into browser, format, add tags, submit "Publish this to Dev.to as a draft"
Cross-post to 5 platforms Repeat the above five times "Cross-publish to all platforms"
SEO optimization Switch between 3 tools, copy results back "Score this for SEO targeting 'mcp servers'"
Social promotion Write separate posts for each network "Generate social posts for Twitter, LinkedIn, and Reddit"
Cover images Browse Unsplash, download, upload, add attribution "Find a cover image for this article"
Search indexing Wait days for crawlers to find your content "Submit this URL to IndexNow"
Content analytics Log into 5 dashboards, compare manually "Show my analytics across all platforms"
Pre-publish QA Manually check links, readability, structure "Audit this article and check all links"
Draft management Copy between editors, lose track of versions "Save this as a draft targeting Dev.to and Ghost"
Canonical URLs Manually set on each platform after cross-posting Automatic — first platform URL wired to all others
Инструменты были проиндексированы:
activate

Активирует ключ лицензии кредитного пакета Pipepost, приобретённый на pipepost.dev. Проверяет ключ на сервере лицензий и добавляет кредиты к локальному балансу. FREE. Возвращает: { activated: true, plan: 'starter'|'pro'|'power', credits_added, total_credits }. Распространённые ошибки: недействительный или уже погашенный ключ (VALIDATION_ERROR), сервер лицензий недоступен (NETWORK_ERROR).

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

    Your Pipepost license key from Lemon Squeezy

analytics

Извлекает просмотры, реакции и комментарии постов из каждой настроенной CMS-платформы (devto, ghost, hashnode, wordpress) и агрегирует итоговые значения. БЕСПЛАТНО. Требует учётные данные платформы. Medium и Substack перечислены, но их API не предоставляют аналитику на уровне постов. Возвращает: { platforms: [{ platform, posts: [{ title, url, views?, reactions?, comments?, published_at? }], note? }], summary: { total_posts, total_views, total_reactions } }. Типичные ошибки: не настроено ни одной платформы (VALIDATION_ERROR), ошибка аутентификации вышестоящей системы отображается для каждой платформы в поле 'note'.

Параметры
  • limitnumber

    Max posts to fetch per platform (default: 10)

  • platformstring

    Specific platform to fetch analytics for, or omit for all configured platforms

bluesky_mentions

Перечисляет уведомления, адресованные настроенному аккаунту Bluesky: упоминания и ответы по умолчанию, опционально включает репосты/лайки/подписки. БЕСПЛАТНО. Требует social.bluesky.handle и app_password. Возвращает: { notifications: [{ uri, cid, reason, author, record, indexed_at, is_read }] }. Распространённые ошибки: отсутствуют учётные данные (VALIDATION_ERROR), AppView временно недоступен (PLATFORM_ERROR; клиент переключается на bsky.social).

Параметры
  • cursorstring

    Pagination cursor from a prior response.

  • limitinteger

    Max notifications to return (default 50, max 100).

  • reasonsstring[]

    Filter by notification reason. Default: ["mention","reply"]. Other valid: like, repost, follow, quote.

bluesky_post

Публикует напрямую в Bluesky одним постом или цепочкой ответов. БЕСПЛАТНО. Требует настройки social.bluesky.handle и social.bluesky.app_password через setup (пароль приложения из bsky.app/settings/app-passwords). Лимит 300 графем на пост; голые URL автоматически превращаются в фасеты. Возвращает: { uri, cid, posts?: [{ uri, cid }] }. Типичные ошибки: отсутствуют учётные данные (VALIDATION_ERROR), превышение графем (VALIDATION_ERROR), ошибка 4xx от API Bluesky (PLATFORM_ERROR).

Параметры
  • textstring

    Single post text (<= 300 chars). Mutually exclusive with thread.

  • threadstring[]

    Array of posts to chain as a reply thread. Each <= 300 chars.

bluesky_reply

Отвечает на пост в Bluesky как одиночный ответ или цепочка сообщений. Корневая и родительская strong-ссылки, необходимые для AT Protocol, вычисляются автоматически из parent_uri. БЕСПЛАТНО. Требует social.bluesky.handle + app_password. Ограничение: 300 графем на пост. Возвращает: { uri, cid, posts?: [{ uri, cid }] }. Распространённые ошибки: отсутствуют учётные данные (VALIDATION_ERROR), родительский пост не найден (VALIDATION_ERROR), превышение лимита графем (VALIDATION_ERROR).

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

    AT-URI of the post being replied to.

  • textstring

    Single reply text (<= 300 chars). Mutually exclusive with thread.

  • threadstring[]

    Chain of replies — first reply points at parent_uri, subsequent posts chain off the prior reply.

bluesky_search

Ищет публичные посты Bluesky по ключевому слову, автору, упоминаниям, тегу или языку через app.bsky.feed.searchPosts. БЕСПЛАТНО. Теперь требует аутентификацию Bluesky (логин + пароль приложения), потому что AppView закрывает эту конечную точку. Возвращает: { posts: [{ uri, cid, author, text, created_at, like_count, repost_count }], cursor? }. Типичные ошибки: отсутствие учётных данных (VALIDATION_ERROR), AppView 5xx (PLATFORM_ERROR).

Параметры
  • authorstring

    Filter to posts by this handle.

  • cursorstring
  • langstring

    BCP-47 language code (e.g. 'en').

  • limitinteger

    Max posts to return (default 25, max 100).

  • mentionsstring

    Filter to posts that mention this handle.

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

    Lucene-style search query. Examples: 'claude code', '"MCP server"', 'content publishing'.

  • sincestring

    ISO date or datetime — only posts after this time.

  • sortenum

    'latest' (default) for freshness, 'top' for engagement.

  • tagstring[]

    Filter to posts with ALL of these hashtags (no # prefix).

bluesky_thread

Получает полную переписку вокруг поста Bluesky: родительские посты сверху, дерево ответов снизу. Используйте это перед bluesky_reply, чтобы понять контекст разговора. БЕСПЛАТНО. Для публичных тредов учетные данные не требуются. Возвращает: { thread: { post, parent?, replies?: thread[] } }. Частые ошибки: URI поста не найден (VALIDATION_ERROR), ошибка AppView 5xx (PLATFORM_ERROR).

Параметры
  • depthinteger

    How many reply levels below to include (default 6).

  • parent_heightinteger

    How many parent levels above to include (default 80).

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

    AT-URI of the post to fetch context for (e.g. at://did:plc:.../app.bsky.feed.post/xyz).

check_links

Проверяет каждый URL в Markdown-документе, отправляя HEAD-запросы (с понижением до GET). БЕСПЛАТНО. Ограничение параллельных запросов: 10, таймаут на URL: 8 с. Сообщает о битых (4xx/5xx), перенаправленных (3xx) и превысивших таймаут ссылках. Возвращает: { total, ok, broken: [{ url, status }], redirects: [{ url, to }], timeouts: string[] }. Типичные ошибки: некорректный Markdown возвращает пустой результат без выбрасывания исключения.

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

    The markdown content containing URLs to check

content_audit

Проверяет статью в Markdown на проблемы качества перед публикацией: иерархию заголовков, длину абзацев, сложность предложений, пассивный залог, отсутствие alt-текста, нарушенный порядок заголовков. Базовый аудит (количества, сводка) БЕСПЛАТНЫЙ. Полный аудит (номера строк для каждой проблемы, серьёзность, предложения по исправлению) стоит 1 кредит. Возвращает: { score, word_count, reading_time_min, issues: [{ severity, line?, message, fix? }] }. Частые ошибки: недостаточно кредитов для полного аудита (PAYMENT_REQUIRED).

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

    The markdown content to audit

  • fullboolean

    Run full analysis (requires credits). Includes readability, structure, tags, and heading hierarchy.

cover_image

Ищет изображения для обложек на Unsplash. БЕСПЛАТНО. Требует access_key Unsplash, настроенный через setup. Ограничен демо-лимитом Unsplash в 50 запросов/ч или продакшн-лимитом в 5000 запросов/ч. Возвращает: { results: [{ url_full, url_regular, url_small, photographer, photographer_url, attribution_html, alt }] }. Типичные ошибки: отсутствует ключ Unsplash (VALIDATION_ERROR), превышен лимит запросов (PLATFORM_ERROR).

Параметры
  • countnumber

    Number of results 1-5 (default: 3)

  • orientationenum

    Image orientation (default: landscape)

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

    Search terms for the image

cross_publish

Публикует одну статью на нескольких CMS-платформах за один вызов. Стоит 1 кредит суммарно независимо от количества платформ (типичное использование: 5 платформ). URL первой успешной платформы используется как канонический для остальных. Требуются учётные данные для каждой целевой платформы. Возвращает: { results: [{ platform, status: 'success'|'error', url?, error? }], canonical_url, summary: { ok, failed } }. Типичные ошибки: не настроено ни одной платформы (VALIDATION_ERROR), закончились кредиты (PAYMENT_REQUIRED). Сбои на отдельных платформах сообщаются в results, но весь вызов не прерывается.

Параметры
  • canonical_urlstring

    Canonical URL for cross-posting

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

    Article content in markdown

  • featured_image_urlstring

    Featured image URL

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

    Platforms to publish to: devto, ghost, hashnode, wordpress, medium, substack

  • primary_platformstring

    Platform to treat as canonical source. Its published URL becomes the canonical_url for all other platforms. Defaults to the first platform in the list.

  • seriesstring

    Series name (supported on Dev.to and Hashnode)

  • statusenum

    Publish status

  • subtitlestring

    Subtitle / dek (used by Substack)

  • tagsstring[]

    Tags for the article

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

    Article title

delete_draft

Безвозвратно удаляет сохранённый черновик по идентификатору. БЕСПЛАТНО. Операция необратима. Возвращает: { deleted: true, id }. Типичные ошибки: идентификатор черновика не найден (VALIDATION_ERROR).

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

    Draft ID to delete

frontmatter

Генерирует корректно оформленный frontmatter для SSG и публикационных платформ: hugo, jekyll, astro, nextjs, devto, hashnode, ghost. БЕСПЛАТНО. Автоматически извлекает описание, время чтения, slug и предлагает теги из содержимого. Без внешних вызовов. Возвращает: { frontmatter: string, format, extracted: { slug, reading_time_min, description } }. Частые ошибки: неизвестный формат (VALIDATION_ERROR).

Параметры
  • authorstring

    Author name

  • canonical_urlstring

    Canonical URL for the article

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

    The article content — used to auto-extract description, reading time, tags

  • draftboolean

    Whether the post is a draft (default: true)

  • featured_imagestring

    Featured/cover image URL

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

    Target frontmatter format

  • tagsstring[]

    Optional tags — auto-extracted from content if omitted

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

    The article title

generate_social_posts

Генерирует оптимизированный под платформу социальный контент из статьи: Twitter (тред), LinkedIn (длинный пост), Reddit (пост + предложенные сабреддиты), Bluesky (одиночный пост объёмом до 300 графем). Стоит 1 кредит за вызов независимо от количества платформ. Не требует учётных данных платформы (этот инструмент генерирует текст; для фактической публикации используйте bluesky_post / linkedin_post / x_post / mastodon_post). Возвращает: { posts: { twitter?, linkedin?, reddit?, bluesky? } }. Типичные ошибки: недостаточно кредитов (PAYMENT_REQUIRED).

Параметры
  • contentstring

    Full article markdown content for rich generation

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

    Platforms: twitter, linkedin, reddit, bluesky

  • summarystring

    Article summary (used if content not provided)

  • titlestring

    Article title (used if content not provided)

  • urlstring

    Article URL for links and CTAs

get_draft

Получает полное содержимое сохранённого черновика по идентификатору. БЕСПЛАТНО. Возвращает: { id, title, content, created_at, platforms?: string[] }. Типичные ошибки: идентификатор черновика не найден (VALIDATION_ERROR).

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

    Draft ID to retrieve

index_now

Отправляет один или несколько URL-адресов в API IndexNow для мгновенного индексирования в поисковых системах Bing, Yandex, Naver и Seznam (Google не участвует в IndexNow). БЕСПЛАТНО. Не требуются учетные данные платформы; используется общий ключ Pipepost. Возвращает: { submitted: number, key, accepted: string[], rejected: string[] }. Распространенные ошибки: некорректный URL или схема, отличная от https (VALIDATION_ERROR), восходящий 4xx от IndexNow (PLATFORM_ERROR).

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

    The URL to submit for indexing

  • urlsstring[]

    Batch of URLs to submit (max 10)

linkedin_post

Публикует напрямую в LinkedIn в виде одной записи в ленте (макс. 3000 символов). Бесплатно. Требует social.linkedin.access_token (область w_member_social). Person URN автоматически получается из /v2/userinfo при первом использовании и кешируется. У LinkedIn нет публичного API для создания цепочек, поэтому поддерживаются только одиночные записи. Возвращает: { urn, url }. Частые ошибки: отсутствующий или просроченный access_token (VALIDATION_ERROR), LinkedIn 401 (PLATFORM_ERROR), превышение 3000 символов (VALIDATION_ERROR).

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

    Post body (<= 3000 chars). LinkedIn has no threading primitive, so only single posts are supported.

list_drafts

Перечисляет все сохранённые локальные черновики с id, title, created_at, целевыми платформами и кратким предпросмотром. БЕСПЛАТНО. Читает из ~/.pipepost/drafts/. Возвращает: { drafts: [{ id, title, created_at, platforms?: string[], preview }] }. Ошибок нет.

Параметры
  • statusenum

    Filter by status

list_posts

Выводит список опубликованных и черновых постов на настроенной платформе (devto, ghost, hashnode, wordpress, medium, substack). БЕСПЛАТНО. Требуются учетные данные платформы. Возвращает: { posts: [{ id, title, status, url, published_at }] }. Частые ошибки: платформа не настроена (VALIDATION_ERROR), ошибка аутентификации на внешнем сервисе (PLATFORM_ERROR).

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

    Platform to list posts from

  • statusenum
mastodon_post

Отправляет пост напрямую в любой экземпляр Mastodon в виде одного сообщения или последовательной цепочки. БЕСПЛАТНО. Требует указания social.mastodon.instance_url и social.mastodon.access_token (область: write:statuses) через настройки. Обычно лимит символов на экземпляр - 500. Возвращает: { id, url, posts?: [{ id, url }] }. Частые ошибки: отсутствуют учётные данные (VALIDATION_ERROR), API экземпляра возвращает 4xx (PLATFORM_ERROR).

Параметры
  • max_lengthinteger

    Override the default 500-character limit if your instance allows longer posts.

  • textstring

    Single post text. Mutually exclusive with thread.

  • threadstring[]

    Array of posts to chain as a reply thread.

publish

Публикует статью в формате Markdown на одну CMS-платформу: devto, ghost, hashnode, wordpress, medium или substack. Стоит 1 кредит за вызов. Требует учётные данные платформы, настроенные через инструмент 'setup'. Поддерживает статусы draft|published, теги, canonical_url, серии и обложку. Substack публикуется через обратно-инженерную аутентификацию по куки. Возвращает: { url, id, platform, status }. Частые ошибки: платформа не настроена (VALIDATION_ERROR), исчерпание кредитов (PAYMENT_REQUIRED), upstream 4xx/5xx (PLATFORM_ERROR), тайм-аут сети (NETWORK_ERROR).

Параметры
  • canonical_urlstring

    Canonical URL for cross-posting

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

    Article content in markdown

  • featured_image_urlstring

    Featured image URL

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

    Publishing platform: devto, ghost, hashnode, wordpress, medium, substack

  • seriesstring

    Series name (supported on Dev.to and Hashnode)

  • statusenum

    Publish status

  • subtitlestring

    Subtitle / dek (used by Substack)

  • tagsstring[]

    Tags for the article

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

    Article title

repurpose

Преобразует полную статью в контент, адаптированный для платформ: twitter, linkedin, reddit, hackernews (только заголовок), bluesky, newsletter (вводный абзац). Стоит 1 кредит за вызов. Сохраняет URL-адреса и учитывает ограничения по длине для каждой платформы. Возвращает: { outputs: { twitter?: string[], linkedin?: string, reddit?: { title, body, subreddits }, hackernews?: string, bluesky?: string, newsletter?: string } }. Типичные ошибки: недостаточно кредитов (PAYMENT_REQUIRED).

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

    The full markdown article to repurpose

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

    Target platforms: twitter, linkedin, reddit, hackernews, bluesky, newsletter

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

    The article title

  • urlstring

    The published article URL for links and CTAs

save_draft

Сохраняет содержимое Markdown как локальный черновик в ~/.pipepost/drafts/ (локально на машине, никогда не передаётся). БЕСПЛАТНО. Черновик поддерживает привязку к одной или нескольким платформам для последующей публикации через 'publish' или 'cross_publish'. Возвращает: { id, title, created_at, platforms?: string[] }. Типичные ошибки: отсутствует 'content' (VALIDATION_ERROR), ошибка записи в файловую систему (PLATFORM_ERROR).

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

    Draft content in markdown

  • platformsstring[]

    Target platforms: devto, ghost, hashnode, wordpress, medium

  • statusenum

    Draft status

  • tagsstring[]

    Tags for the draft

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

    Draft title

seo_meta

Генерирует SEO-оптимизированный мета-заголовок (<60 символов), мета-описание (<160 символов) и теги Open Graph из содержимого статьи. Не использует внешние API-вызовы; выполняется локально. Стоит 1 кредит за вызов. Возвращает: { title, description, og: { title, description, image_alt }, twitter: { card, title, description } }. Частые ошибки: недостаточно кредитов (PAYMENT_REQUIRED).

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

    The article content

  • keywordstring

    Optional target keyword

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

    The article title

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

    Schema data (varies by type)

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

    Schema type

seo_score

Анализирует markdown-контент на SEO-качество и возвращает оценку от 0 до 100 с градацией. Базовая оценка (структура заголовков, количество слов, плотность ключевых слов, читаемость) не требует учетных данных и БЕСПЛАТНА. Полный анализ (список проблем, приоритетные предложения, пробелы по связанным ключевым словам) стоит 1 кредит. Возвращает: { score, grade, breakdown, issues?, suggestions? }. Типичные ошибки: отсутствие 'content' (VALIDATION_ERROR), недостаточно кредитов для полного анализа (PAYMENT_REQUIRED).

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

    The markdown content to analyze

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

    The target keyword or phrase

setup

Настраивает и сохраняет учётные данные платформы в ~/.pipepost/config.json (локальный файл, никогда не передаётся). Поддерживает devto, ghost, hashnode, wordpress, medium, substack, unsplash. Заменяет любые существующие учётные данные для той же платформы. FREE. Возвращает: { platform, status: 'configured', validated: boolean }. Распространённые ошибки: отсутствуют обязательные поля для выбранной платформы (VALIDATION_ERROR).

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

    API credentials as key-value pairs

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

    Platform to configure: devto, ghost, hashnode, wordpress, medium, substack, x, linkedin, reddit, bluesky, mastodon, unsplash

status

Показывает текущую конфигурацию Pipepost: настроенные платформы, баланс кредитов, дату ежемесячного сброса бесплатных кредитов и активный лицензионный план. БЕСПЛАТНО. Без аргументов. Возвращает: { version, credits: { remaining, free_remaining, next_reset }, platforms: string[], plan }. Без ошибок.

Параметры

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

x_post

Публикует напрямую в X (Twitter) как одиночный твит (макс. 280 графем) или цепочку ответов через X v2 /tweets. Встроенная подпись OAuth 1.0a HMAC-SHA1. БЕСПЛАТНО на этом сервере, но бесплатный уровень API X ограничивает запись 17 твитами за 24 часа. Требует social.x.api_key, api_secret, access_token, access_token_secret через настройку. Возвращает: { id, url, tweets?: [{ id, url }] }. Распространённые ошибки: отсутствие учётных данных (VALIDATION_ERROR), превышение 280 графем (VALIDATION_ERROR), ограничение частоты запросов 429 (PLATFORM_ERROR).

Параметры
  • textstring

    Single post text (<= 280 chars). Mutually exclusive with thread.

  • threadstring[]

    Array of posts to chain as a reply thread. Each <= 280 chars.

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

peturgeorgievv-factory/postfast-mcp

peturgeorgievv-factory/postfast-mcp

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

TypeScript5
shensi8312/blogburst-mcp-server

shensi8312/blogburst-mcp-server

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

JavaScript7
Citedy/citedy-seo-agent

Citedy/citedy-seo-agent

Citedy SEO Agent превращает AI-агента в SEO-команду: от трендов до статей, иллюстраций, озвучивания и вирусных видео. Полезен разработчикам и маркетологам для автоматизации контент-маркетинга.

JavaScript19
mikusnuz/meta-mcp

mikusnuz/meta-mcp

MCP-сервер для полного управления Instagram, Threads и Meta. 57 инструментов: публикация контента, аналитика и комментарии. Дополнительно: DMs, поиск хэштегов, вебхуки. Для AI-агентов, автоматизиру...

TypeScript24
AutomateLab-tech/content-distribution-mcp

AutomateLab-tech/content-distribution-mcp

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

TypeScript5
drashrafsaiyed-cyber/instagram-mcp

drashrafsaiyed-cyber/instagram-mcp

MCP-сервер для управления Instagram через Claude: публикуйте фото и рилс, отслеживайте аналитику, отвечайте на комментарии и DM. Идеален для контент-креаторов, врачей и малого бизнеса. Работает чер...

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

Лука Никитин