cnblogs-mcp
MCP-сервер для Cnblogs
Используя протокол MCP (Model Context Protocol), мы инкапсулируем Open API Cnblogs в инструменты, доступные для ИИ. Это позволяет вам публиковать статьи в блоге Cnblogs, используя естественный язык, прямо из любого MCP-клиента (QwenPaw, Claude Desktop, Cline и т.д.).
Функции
✅
create_post— публикация Markdown-постов в блог Cnblogs✅ Управление токенами через
.env, без жестко закодированных данных✅ Поддержка подключения любого MCP-клиента
Related MCP server: feishu-markdown-mcp
Содержание
Быстрый старт
1. Клонирование / Загрузка проекта
git clone https://github.com/你的用户名/cnblogs-mcp.git
cd cnblogs-mcp2. Создание виртуального окружения
python -m venv .venv
source .venv/bin/activate # macOS / Linux
# .venv\Scripts\activate # Windows3. Установка зависимостей
pip install -r requirements.txt4. Настройка токена
cp .env.example .envОтредактируйте .env, вставив ваш Personal Access Token от Cnblogs:
CNBLOGS_TOKEN=your_token_here5. Запуск теста
# 验证 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"'Ожидаемый вывод:
{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"create_post",...}]}}Получение токена
Войдите в Cnblogs
Перейдите в Настройки пользователя → Настройки безопасности → Personal Access Token
Нажмите «Создать токен», укажите имя и права доступа (необходимо право «发表随笔» — публикация эссе)
Скопируйте созданный токен и вставьте его в файл
.env
⚠️ Токен отображается только один раз, пожалуйста, сохраните его в надежном месте.
Подключение клиента
1. QwenPaw
Найдите agent.json в рабочем каталоге QwenPaw и добавьте MCP-клиент:
{
"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"
}
}
}
}
}Перезапустите QwenPaw:
qwenpaw daemon restart2. Claude Desktop
Добавьте в ~/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"
}
}
}
}Перезапустите Claude Desktop.
3. Cline / Roo Code
В настройках VS Code найдите «MCP», перейдите в MCP Servers и добавьте:
{
"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. Другие MCP-клиенты
Шаблон общей конфигурации:
Параметр | Значение |
|
|
|
|
| Абсолютный путь к файлу |
💡 Если MCP-клиент не поддерживает
DOTENV_PATH, можно передать токен напрямую черезenv.CNBLOGS_TOKEN.
Ручное тестирование
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/nullОжидаемый ответ:
{"success": true, "postId": 12345678, "postUrl": "https://www.cnblogs.com/你的博客名/p/12345678"}Обработка ошибок
Сообщение об ошибке | Причина | Решение |
|
| Проверьте наличие файла |
| Токен недействителен или истек | Создайте новый токен на Cnblogs |
| Недостаточно прав у токена | Убедитесь, что при создании токена выбрано «发表随笔» |
| Ошибка формата запроса | Проверьте, не пусты ли |
| Сетевая проблема | Проверьте сеть и повторите попытку |
Список инструментов пуст после подключения MCP | Проблема с | Убедитесь, что используется |
Справочник API
Инструмент: create_post
Параметры:
Параметр | Тип | Обязательно | Описание |
| string | ✅ | Заголовок поста |
| string | ✅ | Тело поста (в формате Markdown) |
Возвращаемое значение:
{
"success": true,
"postId": 19246558,
"postUrl": "https://www.cnblogs.com/你的博客名/p/19246558"
}Или в случае ошибки:
{
"success": false,
"error": "错误描述"
}Разработка
Структура проекта
cnblogs-mcp/
├── cnblogs_mcp.py # MCP 服务主文件
├── requirements.txt # Python 依赖
├── .env.example # 环境变量模板(不含真实 Token)
├── .env # 你的本地配置(已在 .gitignore 中)
├── .gitignore
├── README.md
└── LICENSEЗависимости
fastmcp>=3.0.0
python-dotenv>=1.0.0
requests>=2.31.0Лицензия
MIT — Ставьте Star, делайте Fork и присылайте PR!
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