MCP server for blog post generation and publishing to WordPress and Dev.to.
A self-contained Python MCP server that generates, stores, approves, and publishes blog posts. Runs on Nitro via stdio transport for Claude Desktop. Designed to fold into PrivyBot Phase 31 later via SSE transport on Tower.
uv syncCopy .env.example to .env and fill in credentials:
cp .env.example .envRequired credentials:
- WordPress:
WP_URL,WP_USER,WP_APP_PASSWORD - Dev.to:
DEVTO_API_KEY - Model router:
GROQ_API_KEY,GEMINI_API_KEY,OPENROUTER_API_KEY,OLLAMA_MODEL
uv run python -m blog_engine.serverAdd to claude_desktop_config.json:
{
"mcpServers": {
"rfd-blog-engine": {
"command": "uv",
"args": ["run", "python", "-m", "blog_engine.server"],
"cwd": "C:/Github/rfd-blog-engine"
}
}
}uv run pytest tests/ -vrfd-blog-engine/
├── blog_engine/
│ ├── infra/ # Database, caching, model routing, logging
│ ├── api/ # WordPress and Dev.to handlers
│ ├── core/ # Inventory, drafts, generation, publishing
│ └── tools/ # MCP tools exposed to Claude
├── data/
│ ├── inventory.yaml # Post inventory
│ └── drafts/ # JSON draft files
├── tests/ # Test suite
└── docs/ # SDD and ADRs
See docs/rfd_blog_engine_SDD_v0_2.md for the complete Software Design Document.
RFD IT Services Ltd. — Private project.