Skip to content
Agentmart
Submit a tool

Pipepost

MCP server to publish to Substack, Ghost, Dev.to, WordPress, LinkedIn + 5 more from Claude Code.

Connector by MendleM · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 5
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/mendlem-pipepost

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

MCP server to publish to Substack, Ghost, Dev.to, WordPress, LinkedIn + 5 more from Claude Code.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
12 read · 10 write · 1 delete · 6 not yet classified
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Node.js package

Tools by what they do 29

Read from the source code; the running server may list different tools.

Read 12 · Look things up without changing anything.

  • analytics
  • bluesky_mentions
  • bluesky_search
  • bluesky_thread
  • check_links
  • content_audit
  • cover_image
  • get_draft
  • list_drafts
  • list_posts
  • seo_score
  • status

Write 10 · Create, change, send or run things.

  • bluesky_post
  • bluesky_reply
  • cross_publish
  • generate_social_posts
  • index_now
  • linkedin_post
  • mastodon_post
  • publish
  • save_draft
  • x_post

Delete 1 · Delete, drop, revoke or wipe things.

  • delete_draft

Not yet classified 6 · We could not tell from the name and description.

  • activate
  • frontmatter
  • repurpose
  • seo_meta
  • seo_schema
  • setup

Tools (29)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • activate

    Activate a Pipepost credit-pack license key purchased from pipepost.dev. Validates the key against the license server and adds credits to the local balance. FREE. Returns: { activated: true, plan: 'starter'|'pro'|'power', credits_added, total_credits }. Common errors: invalid or already-redeemed key (VALIDATION_ERROR), license server unreachable (NETWORK_ERROR).

  • analytics

    Fetch post views, reactions, and comments from every configured CMS platform (devto, ghost, hashnode, wordpress) and aggregate the totals. FREE. Requires platform credentials. Medium and Substack are listed but their APIs do not expose post-level analytics. Returns: { platforms: [{ platform, posts: [{ title, url, views?, reactions?, comments?, published_at? }], note? }], summary: { total_posts, total_views, total_reactions } }. Common errors: no platforms configured (VALIDATION_ERROR), upstream auth failure surfaces per-platform in 'note'.

  • bluesky_mentions

    List notifications addressed to the configured Bluesky account: mentions and replies by default, optionally include reposts/likes/follows. FREE. Requires social.bluesky.handle and app_password. Returns: { notifications: [{ uri, cid, reason, author, record, indexed_at, is_read }] }. Common errors: missing credentials (VALIDATION_ERROR), AppView temporarily unavailable (PLATFORM_ERROR; the client falls back to bsky.social).

  • bluesky_post

    Post directly to Bluesky as a single post or a reply-chained thread. FREE. Requires social.bluesky.handle and social.bluesky.app_password configured via setup (app password from bsky.app/settings/app-passwords). 300 grapheme limit per post; bare URLs are auto-linkified into facets. Returns: { uri, cid, posts?: [{ uri, cid }] }. Common errors: missing credentials (VALIDATION_ERROR), grapheme overflow (VALIDATION_ERROR), Bluesky API 4xx (PLATFORM_ERROR).

  • bluesky_reply

    Reply to a Bluesky post as a single reply or a chained thread. The root and parent strong-references required by the AT Protocol are computed automatically from the parent_uri. FREE. Requires social.bluesky.handle + app_password. 300 grapheme limit per post. Returns: { uri, cid, posts?: [{ uri, cid }] }. Common errors: missing credentials (VALIDATION_ERROR), parent post not found (VALIDATION_ERROR), grapheme overflow (VALIDATION_ERROR).

  • bluesky_search

    Search public Bluesky posts by keyword, author, mentions, tag, or language via app.bsky.feed.searchPosts. FREE. Now requires Bluesky auth (handle + app password) because the AppView gates this endpoint. Returns: { posts: [{ uri, cid, author, text, created_at, like_count, repost_count }], cursor? }. Common errors: missing credentials (VALIDATION_ERROR), AppView 5xx (PLATFORM_ERROR).

  • bluesky_thread

    Fetch the full conversation around a Bluesky post: parent posts above, reply tree below. Use this before bluesky_reply to understand the conversation. FREE. No credentials required for public threads. Returns: { thread: { post, parent?, replies?: thread[] } }. Common errors: post URI not found (VALIDATION_ERROR), AppView 5xx (PLATFORM_ERROR).

  • check_links

    Validate every URL in a markdown document by issuing HEAD (then GET fallback) requests. FREE. Concurrency-limited to 10 in-flight requests; per-URL timeout 8s. Reports broken (4xx/5xx), redirected (3xx), and timed-out links. Returns: { total, ok, broken: [{ url, status }], redirects: [{ url, to }], timeouts: string[] }. Common errors: malformed markdown produces zero results without throwing.

  • content_audit

    Audit a markdown article for pre-publish quality issues: heading hierarchy, paragraph length, sentence complexity, passive voice, missing alt text, broken header order. Basic audit (counts, summary) is FREE. Full audit (per-issue line numbers, severity, fix suggestions) costs 1 credit. Returns: { score, word_count, reading_time_min, issues: [{ severity, line?, message, fix? }] }. Common errors: insufficient credits for full audit (PAYMENT_REQUIRED).

  • cover_image

    Search Unsplash for cover images. FREE. Requires Unsplash access_key via setup. Subject to Unsplash's 50 req/h demo or 5000 req/h production rate limit. Returns: { results: [{ url_full, url_regular, url_small, photographer, photographer_url, attribution_html, alt }] }. Common errors: missing Unsplash key (VALIDATION_ERROR), rate-limit exceeded (PLATFORM_ERROR).

  • cross_publish

    Publish one article to multiple CMS platforms in a single call. Costs 1 credit total regardless of how many platforms (typical use: 5 platforms). The first successful platform's URL is wired as the canonical for the rest. Requires credentials for every target platform. Returns: { results: [{ platform, status: 'success'|'error', url?, error? }], canonical_url, summary: { ok, failed } }. Common errors: zero platforms configured (VALIDATION_ERROR), credit exhaustion (PAYMENT_REQUIRED). Per-platform failures are reported in results without aborting the whole call.

  • delete_draft

    Permanently delete a saved draft by id. FREE. Operation is irreversible. Returns: { deleted: true, id }. Common errors: draft id not found (VALIDATION_ERROR).

  • frontmatter

    Generate correctly-formatted frontmatter for SSGs and publishing platforms: hugo, jekyll, astro, nextjs, devto, hashnode, ghost. FREE. Auto-extracts description, reading_time, slug, and suggests tags from content. No external calls. Returns: { frontmatter: string, format, extracted: { slug, reading_time_min, description } }. Common errors: unknown format (VALIDATION_ERROR).

  • generate_social_posts

    Generate platform-optimized social copy from an article: twitter (thread), linkedin (long form), reddit (post + suggested subreddits), bluesky (single post within 300 graphemes). Costs 1 credit per call regardless of platform count. No platform credentials required (this generates copy; use bluesky_post / linkedin_post / x_post / mastodon_post to actually post). Returns: { posts: { twitter?, linkedin?, reddit?, bluesky? } }. Common errors: insufficient credits (PAYMENT_REQUIRED).

  • get_draft

    Retrieve the full content of a saved draft by id. FREE. Returns: { id, title, content, created_at, platforms?: string[] }. Common errors: draft id not found (VALIDATION_ERROR).

Show 14 more tools
  • index_now

    Submit one or more URLs to the IndexNow API for instant search-engine indexing across Bing, Yandex, Naver, and Seznam (Google does not participate in IndexNow). FREE. No platform credentials required; uses the Pipepost shared key. Returns: { submitted: number, key, accepted: string[], rejected: string[] }. Common errors: malformed URL or non-https scheme (VALIDATION_ERROR), upstream 4xx from IndexNow (PLATFORM_ERROR).

  • linkedin_post

    Post directly to LinkedIn as a single feed post (max 3000 chars). FREE. Requires social.linkedin.access_token (w_member_social scope). Person URN is auto-resolved from /v2/userinfo on first use and cached. LinkedIn has no public threading API, so only single posts are supported. Returns: { urn, url }. Common errors: missing or expired access_token (VALIDATION_ERROR), LinkedIn 401 (PLATFORM_ERROR), 3000-char overflow (VALIDATION_ERROR).

  • list_drafts

    List every saved local draft with id, title, created_at, target platforms, and short preview. FREE. Reads from ~/.pipepost/drafts/. Returns: { drafts: [{ id, title, created_at, platforms?: string[], preview }] }. No errors.

  • list_posts

    List your published and draft posts on a configured platform (devto, ghost, hashnode, wordpress, medium, substack). FREE. Requires platform credentials. Returns: { posts: [{ id, title, status, url, published_at }] }. Common errors: platform not configured (VALIDATION_ERROR), upstream auth failure (PLATFORM_ERROR).

  • mastodon_post

    Post directly to any Mastodon instance as a single status or a threaded series. FREE. Requires social.mastodon.instance_url and social.mastodon.access_token (scope: write:statuses) via setup. Per-instance character limit usually 500. Returns: { id, url, posts?: [{ id, url }] }. Common errors: missing credentials (VALIDATION_ERROR), instance API 4xx (PLATFORM_ERROR).

  • publish

    Publish a markdown article to one CMS platform: devto, ghost, hashnode, wordpress, medium, or substack. Costs 1 credit per call. Requires platform credentials configured via the 'setup' tool. Supports draft|published status, tags, canonical_url, series, and cover image. Substack is published via reverse-engineered cookie auth. Returns: { url, id, platform, status }. Common errors: platform not configured (VALIDATION_ERROR), credit exhaustion (PAYMENT_REQUIRED), upstream 4xx/5xx (PLATFORM_ERROR), network timeout (NETWORK_ERROR).

  • repurpose

    Transform a full blog post into platform-native content for twitter, linkedin, reddit, hackernews (title only), bluesky, newsletter (intro paragraph). Costs 1 credit per call. Output preserves URLs and respects each platform's character limits. Returns: { outputs: { twitter?: string[], linkedin?: string, reddit?: { title, body, subreddits }, hackernews?: string, bluesky?: string, newsletter?: string } }. Common errors: insufficient credits (PAYMENT_REQUIRED).

  • save_draft

    Save markdown content as a local draft in ~/.pipepost/drafts/ (machine-local, never transmitted). FREE. Drafts can target one or more platforms for later publishing via 'publish' or 'cross_publish'. Returns: { id, title, created_at, platforms?: string[] }. Common errors: missing 'content' (VALIDATION_ERROR), filesystem write failure (PLATFORM_ERROR).

  • seo_meta

    Generate SEO-optimized meta title (<60 chars), meta description (<160 chars), and Open Graph tags from article content. No external API calls; runs locally. Costs 1 credit per call. Returns: { title, description, og: { title, description, image_alt }, twitter: { card, title, description } }. Common errors: insufficient credits (PAYMENT_REQUIRED).

  • seo_schema

    Generate valid JSON-LD structured data for Schema.org Article, FAQPage, or HowTo types. Output is ready to paste into a <script type="application/ld+json"> tag. Costs 1 credit per call. Returns: { jsonld: string, type: 'Article'|'FAQPage'|'HowTo' }. Common errors: invalid type for the supplied content shape (VALIDATION_ERROR), insufficient credits (PAYMENT_REQUIRED).

  • seo_score

    Analyze markdown content for SEO quality and return a 0-100 score with grade. Basic scoring (heading structure, word count, keyword density, readability) requires no credentials and is FREE. Full analysis (issue list, prioritized suggestions, related-keyword gaps) costs 1 credit. Returns: { score, grade, breakdown, issues?, suggestions? }. Common errors: missing 'content' (VALIDATION_ERROR), insufficient credits for full analysis (PAYMENT_REQUIRED).

  • setup

    Configure and persist platform credentials to ~/.pipepost/config.json (local file, never transmitted). Supports devto, ghost, hashnode, wordpress, medium, substack, unsplash. Replaces any existing credentials for the same platform. FREE. Returns: { platform, status: 'configured', validated: boolean }. Common errors: missing required fields for the chosen platform (VALIDATION_ERROR).

  • status

    Show the current Pipepost configuration: configured platforms, credit balance, monthly free-credit reset date, and active license plan. FREE. No arguments. Returns: { version, credits: { remaining, free_remaining, next_reset }, platforms: string[], plan }. No errors.

  • x_post

    Post directly to X (Twitter) as a single tweet (max 280 graphemes) or a reply-chained thread via X v2 /tweets. OAuth 1.0a HMAC-SHA1 signing built in. FREE in this server, but X's free API tier caps writes at 17 tweets per 24h. Requires social.x.api_key, api_secret, access_token, access_token_secret via setup. Returns: { id, url, tweets?: [{ id, url }] }. Common errors: missing credentials (VALIDATION_ERROR), 280-grapheme overflow (VALIDATION_ERROR), 429 rate-limit (PLATFORM_ERROR).

Signals

Stars
5
Forks
1
Open issues
0
Last commit
Apr 16, 2026 (6 months ago)
Last release
Apr 16, 2026 (6 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.MendleM/pipepost
Version
0.9.0
Auth
No auth
Packages
npm pipepost-mcp
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

Pipepost MCP server. Agent Mart. https://agentmart.dev/connectors/mendlem-pipepost (last updated 2026-10-24)