{
  "markdown": "<div align=\"center\">\n\n# |> Pipepost\n\n**Publish from your terminal.**\n\nMCP server that turns Claude Code into a complete content publishing pipeline — SEO, multi-platform publishing, social promotion, and analytics.\n\n[![npm version](https://img.shields.io/npm/v/pipepost-mcp)](https://www.npmjs.com/package/pipepost-mcp)\n[![npm downloads](https://img.shields.io/npm/dm/pipepost-mcp)](https://www.npmjs.com/package/pipepost-mcp)\n[![CI](https://img.shields.io/github/actions/workflow/status/MendleM/Pipepost/ci.yml?branch=main&label=CI)](https://github.com/MendleM/Pipepost/actions)\n[![Glama MCP server](https://glama.ai/mcp/servers/MendleM/pipepost/badges/score.svg)](https://glama.ai/mcp/servers/MendleM/pipepost)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.5+-blue?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n\n[Website](https://pipepost.dev) · [Docs](https://pipepost.dev/tools) · [npm](https://www.npmjs.com/package/pipepost-mcp)\n\n</div>\n\n---\n\n## See it in one chat turn\n\n[**→ Real agent-loop transcript**](docs/demo/agent-loop.md) — 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.\n\n## Why Pipepost?\n\n| Task | Without Pipepost | With Pipepost |\n|------|-----------------|---------------|\n| Publish to Dev.to | Copy-paste into browser, format, add tags, submit | *\"Publish this to Dev.to as a draft\"* |\n| Cross-post to 5 platforms | Repeat the above five times | *\"Cross-publish to all platforms\"* |\n| SEO optimization | Switch between 3 tools, copy results back | *\"Score this for SEO targeting 'mcp servers'\"* |\n| Social promotion | Write separate posts for each network | *\"Generate social posts for Twitter, LinkedIn, and Reddit\"* |\n| Cover images | Browse Unsplash, download, upload, add attribution | *\"Find a cover image for this article\"* |\n| Search indexing | Wait days for crawlers to find your content | *\"Submit this URL to IndexNow\"* |\n| Content analytics | Log into 5 dashboards, compare manually | *\"Show my analytics across all platforms\"* |\n| Pre-publish QA | Manually check links, readability, structure | *\"Audit this article and check all links\"* |\n| Draft management | Copy between editors, lose track of versions | *\"Save this as a draft targeting Dev.to and Ghost\"* |\n| Canonical URLs | Manually set on each platform after cross-posting | Automatic — first platform URL wired to all others |\n\n## Quick Start\n\n```bash\nnpx pipepost-mcp init\n```\n\nAdd Pipepost to your Claude Code config (`~/.claude/settings.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"pipepost\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"pipepost-mcp\"]\n    }\n  }\n}\n```\n\nThat's it. Try asking Claude:\n\n> *Score this article for SEO targeting 'mcp servers'*\n\n## Tools\n\n### SEO (4 tools)\n\n| Tool | Description | Cost |\n|------|-------------|------|\n| `seo_score` | Analyze content for readability, keyword density, and heading structure | Free (basic) / Credits (full) |\n| `seo_meta` | Generate meta title, description, and Open Graph tags | Credits |\n| `seo_schema` | Generate JSON-LD structured data (Article, FAQ, HowTo) | Credits |\n| `index_now` | Submit URLs to search engines for instant indexing via IndexNow | Free |\n\n### Publishing (3 tools)\n\n| Tool | Description | Cost |\n|------|-------------|------|\n| `publish` | Publish to Dev.to, Ghost, Hashnode, WordPress, Medium, or Substack | 1 credit |\n| `cross_publish` | Publish to multiple platforms with automatic canonical URL wiring | 1 credit |\n| `list_posts` | List published and draft posts from any platform | Free |\n\n### Drafts (4 tools)\n\n| Tool | Description | Cost |\n|------|-------------|------|\n| `save_draft` | Save content as a local draft for later publishing | Free |\n| `list_drafts` | List all saved drafts with status, platforms, and dates | Free |\n| `get_draft` | Retrieve a saved draft by ID | Free |\n| `delete_draft` | Delete a saved draft by ID | Free |\n\n### Content Quality (2 tools)\n\n| Tool | Description | Cost |\n|------|-------------|------|\n| `content_audit` | Audit markdown for quality issues — readability, structure, heading hierarchy | Free (basic) / Credits (full) |\n| `check_links` | Validate all URLs in markdown — reports broken, redirected, and timed-out links | Free |\n\n### Content Repurposing (2 tools)\n\n| Tool | Description | Cost |\n|------|-------------|------|\n| `generate_social_posts` | Generate platform-optimized posts for Twitter, LinkedIn, Reddit, Bluesky | Credits |\n| `repurpose` | Transform a blog post into Twitter threads, LinkedIn posts, Reddit posts, HN titles, Bluesky posts, newsletter intros | Credits |\n\n### Broadcast (4 tools)\n\n| Tool | Description | Cost |\n|------|-------------|------|\n| `bluesky_post` | Post directly to Bluesky as a single post or a threaded series. Bare URLs auto-linkified | Free |\n| `mastodon_post` | Post directly to any Mastodon instance as a single post or a threaded series | Free |\n| `linkedin_post` | Post to LinkedIn (personal). Person URN resolved automatically on first use and cached | Free |\n| `x_post` | Post to X as a single tweet or reply-chained thread. OAuth 1.0a HMAC-SHA1 signing built in | Free |\n\n### Listening & Reply (4 tools)\n\n| Tool | Description | Cost |\n|------|-------------|------|\n| `bluesky_mentions` | List notifications addressed to the configured account — mentions and replies by default | Free |\n| `bluesky_search` | Search public Bluesky posts by keyword, author, mentions, tag, or language. No auth needed | Free |\n| `bluesky_thread` | Fetch the full conversation around a post — parents above, replies below, for reply context | Free |\n| `bluesky_reply` | Reply to a Bluesky post (single reply or chained thread) — root + parent refs computed automatically | Free |\n\n### Images (1 tool)\n\n| Tool | Description | Cost |\n|------|-------------|------|\n| `cover_image` | Search Unsplash for cover images with proper attribution | Free |\n\n### Content (1 tool)\n\n| Tool | Description | Cost |\n|------|-------------|------|\n| `frontmatter` | Generate frontmatter for Hugo, Jekyll, Astro, Next.js, Dev.to, Hashnode, Ghost | Free |\n\n### Analytics (1 tool)\n\n| Tool | Description | Cost |\n|------|-------------|------|\n| `analytics` | Fetch post views, reactions, and comments across all configured platforms | Free |\n\n### Account (3 tools)\n\n| Tool | Description | Cost |\n|------|-------------|------|\n| `setup` | Configure API credentials for any platform | Free |\n| `activate` | Activate a credit pack license key | Free |\n| `status` | Show current configuration and credit balance | Free |\n\n## How It Works\n\n1. **Install** -- add the MCP server to Claude Code with `npx pipepost-mcp init`\n2. **Configure** -- use the `setup` tool to store your platform API keys locally\n3. **Create** -- write content in Claude Code, then use SEO tools to optimize it\n4. **Publish** -- publish to any platform with natural language, then promote with generated social posts\n\n## Pricing\n\n| | Free | Starter ($8) | Pro ($19) | Power ($49) |\n|---|---|---|---|---|\n| **Credits** | 3/month | 10 | 30 | 100 |\n| **SEO scoring** | Basic | Full analysis | Full analysis | Full analysis |\n| **SEO meta + schema** | -- | ✔ | ✔ | ✔ |\n| **Publish** | ✔ | ✔ | ✔ | ✔ |\n| **Cross-publish** | ✔ | ✔ | ✔ | ✔ |\n| **Social generation** | -- | ✔ | ✔ | ✔ |\n| **Repurpose** | -- | ✔ | ✔ | ✔ |\n\n3 free credits every month. Purchased credits never expire.\n\n> [!TIP]\n> Cross-publishing to 5 platforms costs just 1 credit. Publishing + social generation for a single article costs 2 credits total.\n\n## Platform Support\n\n### CMS Platforms\n\n| Platform | Publish | List Posts | Analytics | Featured Images |\n|----------|---------|------------|-----------|-----------------|\n| Dev.to | ✔ | ✔ | ✔ | ✔ |\n| Ghost | ✔ | ✔ | ✔ | ✔ |\n| Hashnode | ✔ | ✔ | ✔ | ✔ |\n| WordPress | ✔ | ✔ | ✔ | ✘ |\n| Medium | ✔ | ✘ | ✘ | ✔ |\n| Substack | ✔ | ✔ | ✘ | ✘ |\n\n### Social Platforms (Generation)\n\n| Platform | Format |\n|----------|--------|\n| Twitter/X | Threads with hook, key points, and CTA |\n| LinkedIn | Professional long-form posts |\n| Reddit | Post with title, body, and suggested subreddits |\n| Bluesky | Short-form posts within character limits |\n| Hacker News | Optimized submission titles |\n| Newsletter | Intro paragraphs for email digests |\n\n### Frontmatter Formats\n\nHugo, Jekyll, Astro, Next.js, Dev.to, Hashnode, Ghost -- auto-extracts description, reading time, slug, and tags from your content.\n\n## Privacy & Security\n\n> [!NOTE]\n> Pipepost runs as a **local stdio process**. Your API keys are stored in `~/.pipepost/config.json` and never leave your machine. No cloud server, no telemetry, no data collection.\n\n## Architecture\n\n```\nClaude Code\n    |\n    | stdio\n    v\nPipepost MCP Server\n    |\n    |--- SEO Engine (local scoring, meta generation, JSON-LD)\n    |--- IndexNow API (Bing, Yandex, search engines)\n    |--- Unsplash API (cover images)\n    |--- Dev.to / Ghost / Hashnode / WordPress / Medium / Substack APIs\n    |--- Bluesky AT Protocol (post, search, reply)\n    |--- Mastodon API (any instance)\n    |--- LinkedIn /v2/ugcPosts\n    |--- X v2 /tweets (OAuth 1.0a)\n```\n\nAll processing happens locally. Platform APIs are only called when you explicitly publish, fetch analytics, or search for images.\n\n## API Key Setup\n\n| Platform | Where to get your key |\n|----------|----------------------|\n| Dev.to | [dev.to/settings/extensions](https://dev.to/settings/extensions) |\n| Ghost | Ghost Admin > Settings > Integrations > Custom |\n| Hashnode | [hashnode.com/settings/developer](https://hashnode.com/settings/developer) |\n| WordPress | Users > Application Passwords |\n| Medium | [medium.com/me/settings/security](https://medium.com/me/settings/security) |\n| Substack | DevTools → Application → Cookies → `substack.com` → copy `connect.sid`. Pass with your publication URL (e.g. `https://you.substack.com`). |\n| Unsplash | [unsplash.com/developers](https://unsplash.com/developers) |\n| Bluesky | [bsky.app/settings/app-passwords](https://bsky.app/settings/app-passwords) |\n| Mastodon | `https://<your-instance>/settings/applications` (scope: `write:statuses`) |\n| LinkedIn | [linkedin.com/developers/apps](https://www.linkedin.com/developers/apps) (scopes: `openid`, `profile`, `w_member_social`). Run `pnpm linkedin:auth` for the 3-legged flow. |\n| X | [developer.x.com](https://developer.x.com) — OAuth 1.0a app with read+write |\n\n## Contributing\n\n```bash\ngit clone https://github.com/MendleM/Pipepost.git\ncd Pipepost\npnpm install\npnpm test\npnpm build\n```\n\nRun in development mode with file watching:\n\n```bash\npnpm dev\n```\n\n## License\n\nMIT\n",
  "bytes": 10766,
  "sha": "c973d5ba14ec662275863b60712e2cf96f98b6ff4591eaf2633b794968620277",
  "repo_slug": "mendlem/pipepost",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_mendlem_pipepost_b76ac5df/readme"
}