I Built an MCP Server That Lets You Publish Blog Posts from Your Terminal
I got tired of context-switching between Claude Code and five different CMS dashboards. So I built Pipepost — an open-source MCP server that lets you publish articles across platforms, generate social posts, and manage SEO without leaving your terminal.
I write a lot of technical content. And for the last few months, most of that writing happens inside Claude Code. I describe what I want, iterate on the structure, refine the wording — all from a terminal session. It works great.
Then comes the part I dread: publishing.
I copy the markdown. I open Dev.to. I paste it in. I fiddle with the frontmatter. I add tags. I preview it. I fix formatting that broke in the paste. I go back to my terminal to check something. I go back to the browser. I finally hit publish.
Every single time, I lose 15-20 minutes to this ritual. And every single time, I think: why am I leaving my terminal for this?
So I built a tool that means I don't have to.
What I built
Pipepost is an MCP server that lets you publish content directly from Claude Code. Write an article, score it for SEO, and publish it to Dev.to — all without opening a browser.
If you're not familiar with MCP (Model Context Protocol), here's the short version: it's an open standard from Anthropic that lets AI assistants use external tools. Think of it as a plugin system for Claude. You register an MCP server, and Claude gets access to whatever tools that server exposes — in this case, tools for content publishing and SEO analysis.
Pipepost currently exposes nine tools:
| Tool | What it does |
|---|---|
seo_score | Analyzes readability, keyword density, heading structure |
seo_meta | Generates meta titles, descriptions, OG tags |
seo_schema | Generates JSON-LD structured data |
publish | Publishes to Dev.to, Ghost, Hashnode, WordPress, Medium |
generate_social_posts | Generates promotional posts for Twitter, Reddit, Bluesky |
list_posts | Lists your published and draft posts |
setup | Configures platform API keys |
activate | Activates a Pro license |
status | Shows your current config and usage |
The seo_score and publish tools are available on the free tier. That covers the core workflow: write, check, publish.
How it works in practice
Installation
Add Pipepost to your Claude Code config (~/.claude/settings.json):
That's it. Next time you start Claude Code, the Pipepost tools are available.
Set up your Dev.to API key
Just ask Claude:
Claude calls the setup tool, and your key gets saved locally to ~/.pipepost/config.json. It never leaves your machine.
Score your content for SEO
Say you've just written an article about building CLI tools in Node. Before publishing, you want to know if it's optimized:
Pipepost runs a Flesch-Kincaid readability analysis, checks your keyword density, validates your heading structure, and returns a composite score with actionable suggestions.
The score factors in word count, readability sweet spot (50-80 Flesch-Kincaid is ideal), keyword density (targeting 0.5-2.5%), and heading structure. It's not trying to replace Ahrefs — it's a quick sanity check before you hit publish.
Publish
Claude calls the publishtool and your article is now a draft on Dev.to. Open the URL, do a final review, and publish when you're ready.
The whole flow — from finished markdown to draft on Dev.to — takes about 10 seconds.
Generate social posts
Now that the article is published, generate promotion:
Pipepost creates platform-native copy for each — a punchy Twitter thread, a discussion-friendly Reddit post, and a clean Bluesky post. No generic one-size-fits-all blasts.
Under the hood
Pipepost is a Node.js process that communicates with Claude Code over STDIO transport. When Claude Code starts, it spawns the MCP server as a child process. They talk back and forth over stdin/stdout using the MCP protocol.
The stack is intentionally minimal:
- @modelcontextprotocol/sdk— Anthropic's official TypeScript SDK for building MCP servers
- zod— Schema validation for every tool input
- tsup— Bundles everything into a single distributable file
That's the entire dependency list. No Express, no database, no runtime dependencies beyond those three.
Credentials are stored in ~/.pipepost/config.json on your local filesystem. Nothing gets sent anywhere except the specific API calls you trigger (like publishing to Dev.to).
Free vs Pro
I wanted this to be genuinely useful without paying anything. Here's how the tiers break down:
- Free— Dev.to publishing, 3 articles per month, basic SEO
- Starter ($9/mo)— Unlimited publishes to Dev.to, full SEO suite
- Pro ($19/mo)— All 5 CMS platforms, social posts, full SEO
What's next
More social platforms.LinkedIn, Threads, and Mastodon support are planned. Same idea — platform-native copy, not generic blasts.
Content analytics.Track how your articles perform across platforms. Views, reactions, comments — all surfaced inside your terminal.
Content repurposing. Turn a long article into a Twitter thread, a newsletter intro, or a LinkedIn post automatically. One piece of content, many formats.
Try it
If you use Claude Code and publish content, give it a shot:
It's MIT licensed and open source. If you run into issues or have ideas, open an issue.