Labsco
MCP SERVER

Blogger Posting

by beanspapa

Publish posts to a Blogger blog from your client — single posts or a batch, as drafts or live.

CMS & Blog Publishing
Summary
It fails at startup rather than mid-post — which is the right place to fail.

Authentication and blog-ID resolution both happen before the server accepts a call, so a misconfigured setup shows up when you launch the client, not halfway through publishing. The draft flag is the other thing to reach for: leaving `isDraft` on means a model can write and file a post while the decision to publish stays yours. Add the ID cache file to `.gitignore` — the README is explicit about that.

What it is

A Node server over the Google Blogger API with a deliberately small surface: two tools, both for posting. It resolves your blog's ID from its URL at startup, caches it, and re-resolves once automatically if a later call fails with an ID-related error, so you configure a blog address rather than an opaque identifier.

What you get
  • `blog-post` publishes one post, taking `title`, `content` as HTML, `labels` and `isDraft`
  • `blog-batch-post` publishes several in one call
  • Posting as a draft is a flag, so a model can prepare something for you to review rather than publishing it
  • Blog ID resolution from the blog URL, cached to `.blog_id_cache.json` and refreshed automatically on a 404 or 403
  • A `server/info` endpoint that reports the server name and version to MCP Inspector and other clients
Requirements

A Google OAuth2 client secret JSON file, with its path in `GOOGLE_CLIENT_SECRET_PATH`, plus `SESSION_SECRET`; `BLOG_ID` and `PORT` are optional, and `BLOG_URL` supplies the blog address the server resolves at startup. Run `npm install`, `npm run build`, then `npm run dev`. Package `mcp-blogspot-posting`, version 1.0.1. If the Google token is missing or expired, or the blog address cannot be resolved, the server refuses to start rather than failing on the first call.