# io.github.MendleM/pipepost (npm · pipepost-mcp)

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

- Trust score: 79/100 (medium)
- Change this week: +33
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `pipepost-mcp`: 79/100 (this document), [markdown](https://verifymcp.io/servers/mendlem-pipepost/pipepost-mcp.md), [page](https://verifymcp.io/servers/mendlem-pipepost/pipepost-mcp)

## Channel facts

- Registry: `npm`
- Package: `pipepost-mcp`
- Version: `0.9.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to MendleM/Pipepost).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 108 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 2341 tokens (~80/item across 29 items; 29 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 97% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add mendlem-pipepost -- npx -y pipepost-mcp
```

### Codex

```bash
codex mcp add mendlem-pipepost -- npx -y pipepost-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mendlem-pipepost": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "pipepost-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add mendlem-pipepost --command npx --arg -y --arg pipepost-mcp
```

### Hermes

```yaml
mcp_servers:
  mendlem-pipepost:
    command: "npx"
    args: ["-y", "pipepost-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "mendlem-pipepost": {
      "command": "npx",
      "args": [
        "-y",
        "pipepost-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 79, −2)

No change was recorded against any check on this day. Supply Chain Security went from 97 to 87. Other categories moved too: Stability & Change Management rose 4.

### 2026-08-02 (score 81, +60)

- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security improvement] Install scripts: unverified → pass
- [security improvement] Provenance: unverified → pass
- [security] The attested source repository moved: MendleM/Pipepost
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Schema quality: unverified → good
- [functional improvement] License: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 21, +16)

- [functional improvement] Tool coverage: unverified → 100

### 2026-07-31 (score 5, −19)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 24, −22)

- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (29)

### `seo_score` (~52 tokens)

Analyze content for SEO quality — basic scoring is free, full analysis with issues and suggestions requires credits

Input parameters:

- `content` (string, required): The markdown content to analyze
- `keyword` (string, required): The target keyword or phrase

### `seo_meta` (~54 tokens)

Generate meta title, description, and Open Graph tags from content [requires credits]

Input parameters:

- `content` (string, required): The article content
- `keyword` (string): Optional target keyword
- `title` (string, required): The article title

### `seo_schema` (~49 tokens)

Generate JSON-LD structured data (Article, FAQ, HowTo) [requires credits]

Input parameters:

- `data` (object, required): Schema data (varies by type)
- `type` (string, required): Schema type

### `index_now` (~52 tokens)

Submit URLs to search engines for fast indexing via IndexNow protocol — FREE

Input parameters:

- `url` (string, required): The URL to submit for indexing
- `urls` (array): Batch of URLs to submit (max 10)

### `cover_image` (~64 tokens)

Search Unsplash for cover images with proper attribution — FREE

Input parameters:

- `count` (number): Number of results 1-5 (default: 3)
- `orientation` (string): Image orientation (default: landscape)
- `query` (string, required): Search terms for the image

### `publish` (~160 tokens)

Publish content to a CMS platform (devto, ghost, hashnode, wordpress, medium, substack) — costs 1 credit per publish

Input parameters:

- `canonical_url` (string): Canonical URL for cross-posting
- `content` (string, required): Article content in markdown
- `featured_image_url` (string): Featured image URL
- `platform` (string, required): Publishing platform: devto, ghost, hashnode, wordpress, medium, substack
- `series` (string): Series name (supported on Dev.to and Hashnode)
- `status` (string): Publish status
- `subtitle` (string): Subtitle / dek (used by Substack)
- `tags` (array): Tags for the article
- `title` (string, required): Article title

### `list_posts` (~43 tokens)

List published and draft posts on a platform

Input parameters:

- `limit` (number)
- `platform` (string, required): Platform to list posts from
- `status` (string)

### `cross_publish` (~182 tokens)

Publish to multiple CMS platforms in one call — costs 1 credit

Input parameters:

- `canonical_url` (string): Canonical URL for cross-posting
- `content` (string, required): Article content in markdown
- `featured_image_url` (string): Featured image URL
- `platforms` (array, required): Platforms to publish to: devto, ghost, hashnode, wordpress, medium, substack
- `primary_platform` (string): 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.
- `series` (string): Series name (supported on Dev.to and Hashnode)
- `status` (string): Publish status
- `subtitle` (string): Subtitle / dek (used by Substack)
- `tags` (array): Tags for the article
- `title` (string, required): Article title

### `frontmatter` (~158 tokens)

Generate correctly-formatted frontmatter for any SSG or publishing platform (Hugo, Jekyll, Astro, Next.js, Dev.to, Hashnode, Ghost) — FREE

Input parameters:

- `author` (string): Author name
- `canonical_url` (string): Canonical URL for the article
- `content` (string, required): The article content — used to auto-extract description, reading time, tags
- `draft` (boolean): Whether the post is a draft (default: true)
- `featured_image` (string): Featured/cover image URL
- `format` (string, required): Target frontmatter format
- `tags` (array): Optional tags — auto-extracted from content if omitted
- `title` (string, required): The article title

### `generate_social_posts` (~108 tokens)

Generate platform-optimized social posts from an article (Twitter, Reddit, Bluesky, LinkedIn) [requires credits]

Input parameters:

- `content` (string): Full article markdown content for rich generation
- `platforms` (array, required): Platforms: twitter, linkedin, reddit, bluesky
- `summary` (string): Article summary (used if content not provided)
- `title` (string): Article title (used if content not provided)
- `url` (string): Article URL for links and CTAs

### `repurpose` (~101 tokens)

Transform a full blog post into platform-native content for Twitter threads, LinkedIn, Reddit, Hacker News, Bluesky, and newsletters [requires credits]

Input parameters:

- `content` (string, required): The full markdown article to repurpose
- `platforms` (array, required): Target platforms: twitter, linkedin, reddit, hackernews, bluesky, newsletter
- `title` (string, required): The article title
- `url` (string): The published article URL for links and CTAs

### `analytics` (~57 tokens)

Fetch post analytics and stats across all configured platforms — FREE

Input parameters:

- `limit` (number): Max posts to fetch per platform (default: 10)
- `platform` (string): Specific platform to fetch analytics for, or omit for all configured platforms

### `setup` (~82 tokens)

Configure API credentials for a platform (devto, ghost, hashnode, wordpress, medium, substack)

Input parameters:

- `credentials` (object, required): API credentials as key-value pairs
- `platform` (string, required): Platform to configure: devto, ghost, hashnode, wordpress, medium, substack, x, linkedin, reddit, bluesky, mastodon, unsplash

### `activate` (~34 tokens)

Activate a Pipepost credit pack license key

Input parameters:

- `license_key` (string, required): Your Pipepost license key from Lemon Squeezy

### `status` (~16 tokens)

Show current Pipepost configuration and credit balance

### `save_draft` (~82 tokens)

Save content as a local draft for later publishing — FREE

Input parameters:

- `content` (string, required): Draft content in markdown
- `platforms` (array): Target platforms: devto, ghost, hashnode, wordpress, medium
- `status` (string): Draft status
- `tags` (array): Tags for the draft
- `title` (string, required): Draft title

### `list_drafts` (~33 tokens)

List all saved drafts with status, platforms, and dates — FREE

Input parameters:

- `status` (string): Filter by status

### `get_draft` (~29 tokens)

Retrieve a saved draft by ID — FREE

Input parameters:

- `id` (string, required): Draft ID to retrieve

### `delete_draft` (~29 tokens)

Delete a saved draft by ID — FREE

Input parameters:

- `id` (string, required): Draft ID to delete

### `content_audit` (~61 tokens)

Audit markdown for quality issues before publishing — basic FREE, full analysis requires credits

Input parameters:

- `content` (string, required): The markdown content to audit
- `full` (boolean): Run full analysis (requires credits). Includes readability, structure, tags, and heading hierarchy.

### `check_links` (~41 tokens)

Validate all URLs in markdown content — reports broken, redirected, and timed-out links — FREE

Input parameters:

- `content` (string, required): The markdown content containing URLs to check

### `bluesky_post` (~81 tokens)

Post directly to Bluesky as a single post or a threaded series. Requires handle + app password via setup. FREE — no credit cost.

Input parameters:

- `text` (string): Single post text (<= 300 chars). Mutually exclusive with `thread`.
- `thread` (array): Array of posts to chain as a reply thread. Each <= 300 chars.

### `mastodon_post` (~94 tokens)

Post directly to any Mastodon instance as a single post or a threaded series. Requires instance_url + access_token via setup. FREE — no credit cost.

Input parameters:

- `max_length` (integer): Override the default 500-character limit if your instance allows longer posts.
- `text` (string): Single post text. Mutually exclusive with `thread`.
- `thread` (array): Array of posts to chain as a reply thread.

### `linkedin_post` (~85 tokens)

Post directly to LinkedIn as a single feed post (<= 3000 chars). LinkedIn has no threading, so only single posts are supported. Requires access_token (w_member_social scope) via setup. FREE — no credit cost.

Input parameters:

- `text` (string, required): Post body (<= 3000 chars). LinkedIn has no threading primitive, so only single posts are supported.

### `x_post` (~110 tokens)

Post directly to X (Twitter) as a single post (<= 280 chars) or a reply-chained thread. Requires OAuth 1.0a credentials via setup. FREE — no credit cost, but X's free API tier caps writes at 17 tweets / 24h.

Input parameters:

- `text` (string): Single post text (<= 280 chars). Mutually exclusive with `thread`.
- `thread` (array): Array of posts to chain as a reply thread. Each <= 280 chars.

### `bluesky_mentions` (~91 tokens)

List notifications for the configured Bluesky account — mentions and replies by default. FREE — no credit cost.

Input parameters:

- `cursor` (string): Pagination cursor from a prior response.
- `limit` (integer): Max notifications to return (default 50, max 100).
- `reasons` (array): Filter by notification reason. Default: ["mention","reply"]. Other valid: like, repost, follow, quote.

### `bluesky_search` (~184 tokens)

Search public Bluesky posts. No Bluesky credentials required. FREE — no credit cost.

Input parameters:

- `author` (string): Filter to posts by this handle.
- `cursor` (string)
- `lang` (string): BCP-47 language code (e.g. 'en').
- `limit` (integer): Max posts to return (default 25, max 100).
- `mentions` (string): Filter to posts that mention this handle.
- `query` (string, required): Lucene-style search query. Examples: 'claude code', '"MCP server"', 'content publishing'.
- `since` (string): ISO date or datetime — only posts after this time.
- `sort` (string): 'latest' (default) for freshness, 'top' for engagement.
- `tag` (array): Filter to posts with ALL of these hashtags (no # prefix).

### `bluesky_thread` (~109 tokens)

Fetch the full conversation around a Bluesky post — parents above, replies below. No credentials required. FREE — no credit cost.

Input parameters:

- `depth` (integer): How many reply levels below to include (default 6).
- `parent_height` (integer): How many parent levels above to include (default 80).
- `uri` (string, required): AT-URI of the post to fetch context for (e.g. at://did:plc:.../app.bsky.feed.post/xyz).

### `bluesky_reply` (~100 tokens)

Reply to a Bluesky post (single reply or chained thread). Root + parent references are computed automatically. FREE — no credit cost.

Input parameters:

- `parent_uri` (string, required): AT-URI of the post being replied to.
- `text` (string): Single reply text (<= 300 chars). Mutually exclusive with `thread`.
- `thread` (array): Chain of replies — first reply points at parent_uri, subsequent posts chain off the prior reply.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/mendlem-pipepost/pipepost-mcp#diagnostics

## Score history

- 2026-08-03: 79
- 2026-08-02: 81
- 2026-08-01: 21
- 2026-07-31: 5
- 2026-07-30: 24
- 2026-07-28: 24
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/pipepost-mcp
- Socket report: https://socket.dev/npm/package/pipepost-mcp
- Repository: https://github.com/MendleM/Pipepost
- Website: https://pipepost.dev/
- Changelog RSS feed: https://verifymcp.io/servers/mendlem-pipepost/pipepost-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/mendlem-pipepost/pipepost-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/mendlem-pipepost/pipepost-mcp
