cnblogs-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cnblogs-mcpPublish a new blog post titled 'Getting Started with MCP' with markdown content."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
cnblogs MCP Server
Wraps the cnblogs Open API into tools callable by AI via the MCP (Model Context Protocol) protocol. Allows you to publish cnblogs posts directly using natural language in any MCP client (QwenPaw, Claude Desktop, Cline, etc.).
Features
✅
create_post— Publish Markdown blog posts to cnblogs✅ Token managed via
.env, no hardcoding✅ Supports integration with any MCP client
Related MCP server: feishu-markdown-mcp
Table of Contents
Quick Start
1. Clone / Download the project
git clone https://github.com/你的用户名/cnblogs-mcp.git
cd cnblogs-mcp2. Create a virtual environment
python -m venv .venv
source .venv/bin/activate # macOS / Linux
# .venv\Scripts\activate # Windows3. Install dependencies
pip install -r requirements.txt4. Configure Token
cp .env.example .envEdit .env and fill in your cnblogs Personal Access Token:
CNBLOGS_TOKEN=your_token_here5. Run tests
# 验证 MCP 服务能正常启动
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}\n{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}\n' \
| python cnblogs_mcp.py 2>/dev/null | grep '"name"'Normal output:
{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"create_post",...}]}}Get Token
Log in to cnblogs
Go to Personal Settings → Security Settings → Personal Access Token
Click "Create Token", fill in the name and permissions (requires "Post Blog" permission)
Copy the generated Token and fill it into the
.envfile
⚠️ The Token is only displayed once, please save it properly.
Client Integration
1. QwenPaw
Find agent.json in the QwenPaw working directory and add the MCP client:
{
"mcp": {
"clients": {
"cnblogs": {
"name": "cnblogs",
"description": "博客园博文发布",
"enabled": true,
"transport": "stdio",
"command": "/absolute/path/to/cnblogs-mcp/.venv/bin/python",
"args": ["/absolute/path/to/cnblogs-mcp/cnblogs_mcp.py"],
"env": {
"DOTENV_PATH": "/absolute/path/to/cnblogs-mcp/.env"
}
}
}
}
}Restart QwenPaw:
qwenpaw daemon restart2. Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"cnblogs": {
"command": "/absolute/path/to/cnblogs-mcp/.venv/bin/python",
"args": ["/absolute/path/to/cnblogs-mcp/cnblogs_mcp.py"],
"env": {
"DOTENV_PATH": "/absolute/path/to/cnblogs-mcp/.env"
}
}
}
}Restart Claude Desktop.
3. Cline / Roo Code
Search for "MCP" in VS Code settings, find MCP Servers, and add:
{
"cnblogs": {
"command": "/absolute/path/to/cnblogs-mcp/.venv/bin/python",
"args": ["/absolute/path/to/cnblogs-mcp/cnblogs_mcp.py"],
"env": {
"DOTENV_PATH": "/absolute/path/to/cnblogs-mcp/.env"
}
}
}4. Other MCP Clients
General configuration template:
Parameter | Value |
|
|
|
|
| Absolute path to the |
💡 If the MCP client does not support
DOTENV_PATH, you can also pass the token directly usingenv.CNBLOGS_TOKEN.
Manual Testing
cd cnblogs-mcp
# 测试 1:初始化 + 工具列表
printf '...' | python cnblogs_mcp.py
# 测试 2:发布一篇博文
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}\n{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"create_post","arguments":{"title":"测试","body":"## 你好\n\n这是一篇测试文章。"}}}\n' | python cnblogs_mcp.py 2>/dev/nullNormal return:
{"success": true, "postId": 12345678, "postUrl": "https://www.cnblogs.com/你的博客名/p/12345678"}Error Handling
Error Message | Reason | Solution |
|
| Check if |
| Token invalid or expired | Re-create Token on cnblogs |
| Insufficient Token permissions | Ensure "Post Blog" is checked when creating the Token |
| Request format error | Check if title and body are empty |
| Network issue | Check network and retry |
Tool list empty after MCP connection |
| Ensure |
API Reference
Tool: create_post
Parameters:
Parameter | Type | Required | Description |
| string | ✅ | Blog post title |
| string | ✅ | Blog post body (Markdown format) |
Return Value:
{
"success": true,
"postId": 19246558,
"postUrl": "https://www.cnblogs.com/你的博客名/p/19246558"
}Or on error:
{
"success": false,
"error": "错误描述"
}Development
Project Structure
cnblogs-mcp/
├── cnblogs_mcp.py # MCP 服务主文件
├── requirements.txt # Python 依赖
├── .env.example # 环境变量模板(不含真实 Token)
├── .env # 你的本地配置(已在 .gitignore 中)
├── .gitignore
├── README.md
└── LICENSEDependencies
fastmcp>=3.0.0
python-dotenv>=1.0.0
requests>=2.31.0License
MIT — Stars, Forks, and PRs are welcome!
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityFmaintenanceEnables AI agents to publish articles to WeChat Official Account (微信公众号). Supports image upload, draft creation, and publishing via standardized MCP protocol.51
- AlicenseNot gradedqualityFmaintenanceConverts Markdown to Feishu/Lark document format and provides an MCP service for integration with the Model Context Protocol.29MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for managing Blogger posts: create, update, retrieve posts, and upload images to GCS via natural language.2MIT
- AlicenseAqualityAmaintenanceEnables publishing local Markdown files to Velog with idempotent updates. Supports login, post management, and series operations through natural language.10MIT
Related MCP Connectors
Create, update, and publish changelog entries on your Patchlog changelog from any MCP client.
MCP-native collaborative markdown editor with real-time AI document editing
Publish AI-generated HTML & Markdown to a hosted, shareable URL via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mintonzhang/cnblogs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server