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).

Активирует ключ лицензии кредитного пакета 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'.

Извлекает просмотры, реакции и комментарии постов из каждой настроенной 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'.

Параметры

  • platformstring

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

  • limitnumber

    Max posts to fetch per platform (default: 10)

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).

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

Параметры

  • limitinteger

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

  • cursorstring

    Pagination cursor from a prior response.

  • 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).

Публикует напрямую в 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).

Отвечает на пост в 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).

Ищет публичные посты 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).

Параметры

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

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

  • limitinteger

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

  • cursorstring
  • sortenum

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

    toplatest
  • sincestring

    ISO date or datetime — only posts after this time.

  • mentionsstring

    Filter to posts that mention this handle.

  • authorstring

    Filter to posts by this handle.

  • langstring

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

  • 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).

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

Параметры

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

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

  • depthinteger

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

  • parent_heightinteger

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

check_links

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

Проверяет каждый 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).

Проверяет статью в 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).

Ищет изображения для обложек на 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).

Параметры

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

    Search terms for the image

  • orientationenum

    Image orientation (default: landscape)

    landscapeportraitsquarish
  • countnumber

    Number of results 1-5 (default: 3)

cross_publish

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

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

Параметры

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

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

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

    Article title

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

    Article content in markdown

  • subtitlestring

    Subtitle / dek (used by Substack)

  • tagsstring[]

    Tags for the article

  • statusenum

    Publish status

    draftpublished
  • featured_image_urlstring

    Featured image URL

  • canonical_urlstring

    Canonical URL for cross-posting

  • seriesstring

    Series name (supported on Dev.to and Hashnode)

  • 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.

delete_draft

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

Безвозвратно удаляет сохранённый черновик по идентификатору. БЕСПЛАТНО. Операция необратима. Возвращает: { 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).

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

Параметры

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

    The article title

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

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

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

    Target frontmatter format

    hugojekyllastronextjsdevtohashnodeghost
  • tagsstring[]

    Optional tags — auto-extracted from content if omitted

  • canonical_urlstring

    Canonical URL for the article

  • featured_imagestring

    Featured/cover image URL

  • authorstring

    Author name

  • draftboolean

    Whether the post is a draft (default: true)

generate_social_posts

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

Генерирует оптимизированный под платформу социальный контент из статьи: 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

  • titlestring

    Article title (used if content not provided)

  • summarystring

    Article summary (used if content not provided)

  • urlstring

    Article URL for links and CTAs

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

    Platforms: twitter, linkedin, reddit, bluesky

get_draft

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

Получает полное содержимое сохранённого черновика по идентификатору. БЕСПЛАТНО. Возвращает: { 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).

Отправляет один или несколько 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).

Публикует напрямую в 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 }] }. Ошибок нет.

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

Параметры

  • statusenum

    Filter by status

    draftreadypublished
list_posts

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

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

Параметры

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

    Platform to list posts from

  • statusenum
    draftpublishedall
  • limitnumber
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).

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

Параметры

  • textstring

    Single post text. Mutually exclusive with `thread`.

  • threadstring[]

    Array of posts to chain as a reply thread.

  • max_lengthinteger

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

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).

Публикует статью в формате 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).

Параметры

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

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

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

    Article title

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

    Article content in markdown

  • subtitlestring

    Subtitle / dek (used by Substack)

  • tagsstring[]

    Tags for the article

  • statusenum

    Publish status

    draftpublished
  • featured_image_urlstring

    Featured image URL

  • canonical_urlstring

    Canonical URL for cross-posting

  • seriesstring

    Series name (supported on Dev.to and Hashnode)

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).

Преобразует полную статью в контент, адаптированный для платформ: 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

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

    The article title

  • urlstring

    The published article URL for links and CTAs

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

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

save_draft

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

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

Параметры

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

    Draft title

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

    Draft content in markdown

  • platformsstring[]

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

  • tagsstring[]

    Tags for the draft

  • statusenum

    Draft status

    draftreadypublished
seo_meta

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

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

Параметры

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

    The article title

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

    The article content

  • keywordstring

    Optional target keyword

seo_schema

Параметры

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

    Schema type

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

    Schema data (varies by type)

seo_score

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

Анализирует 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).

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

Параметры

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

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

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

    API credentials as key-value pairs

status

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

Показывает текущую конфигурацию 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).

Публикует напрямую в 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-сервера

StacklokLabs/mkp

StacklokLabs/mkp

официальный

MKP - MCP-сервер на Go для Kubernetes даёт AI-агентам прямой доступ к API кластера: листинг, apply, exec-команды. Поддерживает рейт-лимитинг и любые CRD. Удобен для автоматизации через LLM.

Go59
browserbase/mcp-server-browserbase

browserbase/mcp-server-browserbase

официальный

MCP сервер облачной автоматизации браузера Browserbase. Позволяет AI-агентам навигировать по сайтам, извлекать данные и выполнять действия. Полезен для RPA и веб-скрапинга. Доступен self-hosted и hosted.

TypeScript3408
api7/apisix-mcp

api7/apisix-mcp

официальный

MCP-сервер для управления APISIX через Admin API с помощью естественного языка. Позволяет просматривать, создавать и удалять ресурсы (роуты, сервисы, upstreams, плагины) через AI-клиенты. Полезен р...

TypeScript38
gitkraken/gk-cli

gitkraken/gk-cli

официальный

MCP-сервер GitKraken CLI объединяет git, GitHub и Jira. Встроенный AI помогает с коммитами и Pull Request. Полезен разработчикам для автоматизации работы с несколькими репозиториями через единый сервер.

435
rinadelph/Agent-MCP

rinadelph/Agent-MCP

MCP сервер для координации нескольких AI-агентов при разработке. Агенты работают параллельно, используют общую память и граф знаний, что исключает потерю контекста и конфликты. Подходит для крупных...

TypeScript1270
evilsocket/nerve

evilsocket/nerve

Nerve — Agent Development Kit с нативной поддержкой MCP. Определяйте MCP серверы в YAML, запускайте как клиент или сервер, оркестрируйте агентов и тестируйте их в воспроизводимых сценариях. Для разработчиков, которым нужны программируемые и аудируемые LLM-агенты.

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

Лука Никитин