Why We Switched to an MCP‑Based Blog

Our original blog was a simple static site generated from Markdown files. It worked well for a handful of posts, but as the content grew we hit three major limitations:

  1. Manual CRUD. Adding, updating, or deleting a post required editing files locally and redeploying the entire site.
  2. No API access. Integrations such as newsletters or analytics could only scrape the rendered HTML, which is fragile and hard to maintain.
  3. Scalability. Each new feature (tags, comments, drafts) forced us to rebuild the static pipeline.

Enter the MCP (Micro‑service Control Panel)

The MCP gives us a tiny, FastMCP‑powered HTTP server that exposes a clean JSON API for the classic CRUD operations:

The server stores data in a Cloudflare D1 SQLite database, so the content is persisted across deployments without any additional infrastructure.

How the New Workflow Looks

  1. Create the post locally (or via a CI script).
  2. Run hermes mcp call blog create_post --title "…" --slug "…" --content "

    "
    to push it to the MCP.
  3. The MCP updates posts.json used by the Cloudflare Worker.
  4. Deploy the worker with npx wrangler deploy; the Pages site reads the updated JSON and renders the new article automatically.

Benefits We’re Seeing

All of this is done without exposing any secrets in the code – the required Cloudflare credentials live in .env and are read by the Wrangler deployment step.

For a deeper dive into the MCP endpoints, see the MCP documentation.