·6 min read·MCP, Claude Code

I Built an MCP Server That Lets You Publish Blog Posts from Your Terminal

I got tired of context-switching between Claude Code and Dev.to. So I built Pipepost — an open-source MCP server that lets you score SEO, publish articles, and manage content 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 eight tools:

ToolWhat it does
seo_scoreAnalyzes readability, keyword density, heading structure
seo_metaGenerates meta titles, descriptions, OG tags
seo_schemaGenerates JSON-LD structured data
publishPublishes to Dev.to (more platforms coming)
list_postsLists your published and draft posts
setupConfigures platform API keys
activateActivates a Pro license
statusShows 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):

// ~/.claude/settings.json
"mcpServers": {
"pipepost": {
"command": "npx",
"args": ["-y", "pipepost-mcp"]
}
}

That's it. Next time you start Claude Code, the Pipepost tools are available.

Set up your Dev.to API key

Just ask Claude:

you: "Set up my Dev.to API key: dv1_abc123..."

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:

you: "Score this article for SEO targeting ‘node cli tools’"

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

you: "Publish this article to Dev.to as a draft with tags: node, cli, javascript"

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.

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. The free tier gives you:

  • SEO scoring— readability, keyword density, and word count analysis
  • Publishing to Dev.to— 3 articles per month
  • Setup and config tools— full access

The Pro tier ($19/month) adds full SEO analysis with issues and suggestions, unlimited publishing, meta tag generation, JSON-LD schemas, post listing, and additional platforms.

What's next

More platforms.Ghost, Hashnode, WordPress, and Medium support are planned. The publishing layer is already designed for this — each platform gets its own module, and the publish tool routes based on the platform parameter.

Social promotion.After you publish an article, you shouldn't have to manually write tweets and Reddit posts about it. The plan is to add tools that generate platform-appropriate promotion.

The bigger picture.If you're already using Claude Code for writing, the workflow should be: write, optimize, publish, promote — without ever switching context.

Try it

If you use Claude Code and publish content, give it a shot:

View on GitHub

It's MIT licensed and open source. If you run into issues or have ideas, open an issue.