Blogger MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add mcp-blogger -- npx -y mcp-blogger
README.md

Manage Google Blogger posts and metadata through natural language.

Blogger MCP Server

An MCP (Model Context Protocol) server that provides Claude and other MCP-compatible AI assistants with full access to the Google Blogger API v3. Supports reading, creating, updating, publishing, and deleting blog posts through natural language.

Features

  • Blog management — List all blogs under your account, get blog metadata
  • Post lifecycle — Create drafts, edit, publish, revert to draft, delete
  • Read operations — List posts, retrieve individual posts, search by keyword
  • Draft-first workflow — Posts are created as drafts by default for safety, then published explicitly
  • Dual authentication — API Key for read-only access, OAuth 2.0 for full read/write access
  • File-based content — Load post content from local HTML files (recommended for content > 10KB)
  • Automatic token management — OAuth tokens are cached, refreshed, and persisted automatically to ~/.config/mcp-blogger/
  • Default blog — Set DEFAULT_BLOG_ID to skip passing blogId on every tool call

Project Structure

mcp-blogger/
├── index.js          # Main MCP server — tool definitions and handlers
├── oauth.js          # OAuth 2.0 authentication flow
└── package.json      # Project metadata and dependencies

Prerequisites

  • Node.js >= 22
  • A Google Cloud project with the Blogger API enabled
  • A Blogger API Key (for read operations) and/or OAuth 2.0 credentials (for write operations)

Installation

git clone https://github.com/aleck31/mcp-blogger.git
cd mcp-blogger
npm install

Authentication

This server supports two authentication methods. At least one must be configured:

  • API Key only — read-only operations (get_blog_info, list_posts, get_post, search_posts)
  • OAuth only — full read and write operations
  • Both — API Key for reads, OAuth for writes

1. Get a Blogger API Key (read-only access)

  1. Go to the Google Cloud Console
  2. Create a project (or select an existing one)
  3. Enable the Blogger API v3 under APIs & Services > Library
  4. Go to APIs & Services > Credentials
  5. Click Create Credentials > API key
  6. Copy the generated API key

2. Get OAuth 2.0 Credentials (read + write access)

  1. In the same Google Cloud project, go to APIs & Services > Credentials
  2. Click Create Credentials > OAuth client ID
  3. Select Web application as the application type
  4. Add http://localhost:3000/oauth/callback to Authorized redirect URIs
  5. Copy the Client ID and Client Secret

3. OAuth Flow (automatic)

On the first write operation, the server will automatically:

  1. Start a temporary local HTTP server on port 3000
  2. Open your browser to the Google OAuth consent page
  3. After you grant access, capture the authorization code via the callback URL
  4. Exchange the code for access and refresh tokens
  5. Persist tokens to ~/.config/mcp-blogger/tokens.json

Subsequent write operations reuse cached tokens and refresh them automatically when expired. The OAuth flow times out after 5 minutes if not completed.

Configuration

Set the following environment variables in your MCP client configuration:

Variable Required Description
BLOGGER_API_KEY For read ops Google Blogger API key
GOOGLE_CLIENT_ID For write ops OAuth 2.0 Client ID
GOOGLE_CLIENT_SECRET For write ops OAuth 2.0 Client Secret
DEFAULT_BLOG_ID No Default Blog ID, used when blogId is omitted from tool calls

MCP Config Example

Add the server to your Agent MCP configuration file (such as mcp_config.json):

{
  "mcpServers": {
    "blogger": {
      "command": "npx",
      "args": ["-y", "mcp-blogger"],
      "env": {
        "BLOGGER_API_KEY": "your-api-key",
        "GOOGLE_CLIENT_ID": "your-client-id",
        "GOOGLE_CLIENT_SECRET": "your-client-secret",
        "DEFAULT_BLOG_ID": "your-default-blog-id"
      }
    }
  }
}

Claude Code

Add the server via the Claude Code CLI:

claude mcp add blogger -- npx -y mcp-blogger \
  -e BLOGGER_API_KEY=your-api-key \
  -e GOOGLE_CLIENT_ID=your-client-id \
  -e GOOGLE_CLIENT_SECRET=your-client-secret \
  -e DEFAULT_BLOG_ID=your-default-blog-id

Tools

All tools that accept blogId will fall back to DEFAULT_BLOG_ID if set.

Category Tool OAuth Description
Account list_blogs Yes List all blogs owned by the authenticated user
Read get_blog_info No Get blog metadata by URL or ID
Read list_posts No List published posts
Read get_post No Get a specific post (supports drafts with OAuth)
Read search_posts No Search posts by keyword
Write list_drafts Yes List draft posts
Write create_post Yes Create a post (draft by default). Use `co

Tools (7)

list_blogsList all blogs owned by the authenticated user
get_blog_infoGet blog metadata by URL or ID
list_postsList published posts
get_postGet a specific post
search_postsSearch posts by keyword
list_draftsList draft posts
create_postCreate a post (draft by default)

Environment Variables

BLOGGER_API_KEYGoogle Blogger API key for read operations
GOOGLE_CLIENT_IDOAuth 2.0 Client ID for write operations
GOOGLE_CLIENT_SECRETOAuth 2.0 Client Secret for write operations
DEFAULT_BLOG_IDDefault Blog ID used when blogId is omitted

Configuration

claude_desktop_config.json
{"mcpServers": {"blogger": {"command": "npx", "args": ["-y", "mcp-blogger"], "env": {"BLOGGER_API_KEY": "your-api-key", "GOOGLE_CLIENT_ID": "your-client-id", "GOOGLE_CLIENT_SECRET": "your-client-secret", "DEFAULT_BLOG_ID": "your-default-blog-id"}}}}

Try it

List all the blogs associated with my Google account.
Search my blog for posts containing the keyword 'artificial intelligence'.
Create a new draft post titled 'My First MCP Post' with the content 'Hello world!'.
Get the details and metadata for my primary blog.
List all current draft posts in my default blog.

Frequently Asked Questions

What are the key features of Blogger MCP Server?

Full blog management including listing blogs and retrieving metadata. Complete post lifecycle support: create, edit, publish, and delete. Draft-first workflow for safe content creation. Dual authentication support via API Key and OAuth 2.0. Automatic OAuth token management and persistence.

What can I use Blogger MCP Server for?

Automating the drafting of blog posts from AI-generated content. Managing multiple blogs through a single natural language interface. Quickly searching and retrieving historical blog post data. Streamlining content publishing workflows by moving drafts to published status.

How do I install Blogger MCP Server?

Install Blogger MCP Server by running: npx -y mcp-blogger

What MCP clients work with Blogger MCP Server?

Blogger MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Blogger MCP Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare