- Home
- MCP servers
- Blogger
Blogger
- javascript
0
GitHub Stars
javascript
Language
4 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"aleck31-mcp-blogger": {
"command": "npx",
"args": [
"-y",
"mcp-blogger"
],
"env": {
"BLOGGER_API_KEY": "YOUR_API_KEY",
"DEFAULT_BLOG_ID": "YOUR_DEFAULT_BLOG_ID",
"GOOGLE_CLIENT_ID": "YOUR_CLIENT_ID",
"GOOGLE_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
}
}
}
}You can manage Google Blogger content programmatically with this MCP server. It exposes Blogger API v3 capabilities to read, create, update, publish, and delete blog posts through natural language, while supporting safe drafting workflows and token management for authentication.
How to use
You integrate this MCP server into your client or assistant to perform blogger operations. Start by configuring authentication so you can read content or fully manage blogs and posts. Then you can list your blogs, inspect blog metadata, preview posts, create drafts, publish posts, or revert a published post back to draft. If you want to automate workflows, create content as drafts first and publish explicitly when ready.
How to install
Prerequisites: Node.js 22 or higher, and a Google Cloud project with the Blogger API enabled.
Install steps you follow locally:
Step-by-step commands
# Clone the project
git clone https://github.com/aleck31/mcp-blogger.git
cd mcp-blogger
# Install dependencies
npm install
Configure and run the MCP server using the example container configuration shown below. This example uses API key reads and OAuth for writes, and sets a default blog for convenience.
{
"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"
}
}
}
}
OAuth flow for write permissions
If you require write access, the server supports an automatic OAuth flow. On your first write operation, it will start a temporary local server, open a browser for consent, capture the authorization code, exchange it for tokens, and persist them to a local tokens file. Subsequent writes reuse cached tokens and refresh automatically.
How the server authenticates
Two authentication methods are supported. You can use an API Key for read-only access, OAuth 2.0 for full read/write access, or both. The system falls back to API Key for reads and OAuth for writes if both are configured.
Notes on default blog and drafts
Set DEFAULT_BLOG_ID to skip passing blogId on every tool call. New posts are created as drafts by default for safety and must be published explicitly.
Troubleshooting
If OAuth flow times out, retry the operation. Ensure your Google Cloud project has the Blogger API enabled and that credentials are correctly configured as environment variables.
Security considerations
Keep your API key and OAuth credentials secure. Do not expose credentials in client configurations sent to untrusted environments. Tokens are persisted locally and refreshed automatically.
Typical workflow
- List blogs to discover your blog ID. 2) Create a post as draft. 3) Preview the draft with read access. 4) Update content if needed. 5) Publish the draft to make it live. 6) If necessary, revert a live post back to draft.
Dependencies and tools
This server relies on the MCP framework and Google API client to interact with Blogger API v3.
License
MIT license.
Available tools
list_blogs
List all blogs owned by the authenticated user
get_blog_info
Get blog metadata by URL or ID
list_posts
List published posts
get_post
Get a specific post, including drafts when using OAuth
search_posts
Search posts by keyword
list_drafts
List draft posts
create_post
Create a post, drafts by default; use content_file for large content
change_post_status
Publish a draft or revert a published post to draft
update_post
Update a post, for both published and draft states
delete_post
Delete a post