Developers · MCP · Pro, coming soon

Quillhive MCP

Connect Claude, Cursor or any MCP client. Agents read, draft and edit next to your team, under your rules.

Endpoint · Streamable HTTP, stateless
https://api.blgg.dev/api/mcp
Auth header
Authorization: Bearer blgg_...

Authentication

Use a site API key as a bearer token. Create one in Settings → API Keys.

  • One key, one site. Read-only unless you allow editing when you create it.
  • The agent acts as the person who made the key. Changes carry their name.
  • Their current role is checked on every request. Authors only see their own posts.
  • Remove the person or delete the key, and access stops at once.

Connect a client

Claude Code
claude mcp add --transport http blogging https://api.blgg.dev/api/mcp \
  --header "Authorization: Bearer blgg_..."
Cursor and other remote MCP clients
{
  "mcpServers": {
    "blogging": {
      "url": "https://api.blgg.dev/api/mcp",
      "headers": { "Authorization": "Bearer blgg_..." }
    }
  }
}

Stdio-only client? Bridge with the mcp-remote npm package and pass the key from BLOGGING_API_KEY.

Tools

get_sitereadSite details, your role and write access
list_tagsreadTags with post counts
list_posts · list_pagesreadFilter by status, title or tag. Paginated.
get_post · get_pagereadFull Markdown and the current revision
create_post · create_pagewriteFrom Markdown. Saved as a draft.
update_post · update_pagewriteTitle, slug, excerpt, status, tags, image or full body
edit_post · edit_pagewriteFind and replace in order. All or nothing.

Write tools only appear for keys that can edit.

Content format

Agents read and write GitHub-flavoured Markdown: headings, links, lists, quotes, code, tables, images.

Nothing lost by accident. YouTube and X embeds, galleries, link cards, math and highlights have no Markdown version. If a post has them, full rewrites are refused. Metadata updates still work, and allowLossyRewrite: true lets it through on purpose.

Collaborating safely

  • Every read and write returns a revision. Edits must send the one they’re based on.
  • If someone saved since, the call fails and names who. The agent re-reads and re-applies.
  • New posts and pages are drafts unless a status is set.
  • Publishing through MCP refreshes the live site, just like the dashboard.

Example session

A small, safe edit
get_post  { "idOrSlug": "autumn-coffees" }
→ revision: "2026-10-02T14:05:11Z"

edit_post {
  "id": "autumn-coffees",
  "revision": "2026-10-02T14:05:11Z",
  "edits": [{ "find": "This season we", "replace": "This autumn we" }]
}
→ status: "draft", revision: "2026-10-02T14:06:40Z"