Skip to main content
Glama

MCP-сервер для Cnblogs

MCP Server Python License

Используя протокол 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-mcp

2. Создание виртуального окружения

python -m venv .venv
source .venv/bin/activate      # macOS / Linux
# .venv\Scripts\activate       # Windows

3. Установка зависимостей

pip install -r requirements.txt

4. Настройка токена

cp .env.example .env

Отредактируйте .env, вставив ваш Personal Access Token от Cnblogs:

CNBLOGS_TOKEN=your_token_here

5. Запуск теста

# 验证 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",...}]}}

Получение токена

  1. Войдите в Cnblogs

  2. Перейдите в Настройки пользователя → Настройки безопасности → Personal Access Token

  3. Нажмите «Создать токен», укажите имя и права доступа (необходимо право «发表随笔» — публикация эссе)

  4. Скопируйте созданный токен и вставьте его в файл .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 restart

2. 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-клиенты

Шаблон общей конфигурации:

Параметр

Значение

command

.venv/bin/python (Python внутри виртуального окружения проекта)

args

["./cnblogs_mcp.py"]

env.DOTENV_PATH

Абсолютный путь к файлу .env

💡 Если 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_TOKEN

.env не настроен или путь неверен

Проверьте наличие файла .env и правильность DOTENV_PATH

API 错误: 401

Токен недействителен или истек

Создайте новый токен на Cnblogs

API 错误: 403

Недостаточно прав у токена

Убедитесь, что при создании токена выбрано «发表随笔»

API 错误: 400

Ошибка формата запроса

Проверьте, не пусты ли title и body

请求超时

Сетевая проблема

Проверьте сеть и повторите попытку

Список инструментов пуст после подключения MCP

Проблема с show_banner

Убедитесь, что используется mcp.run(show_banner=False)


Справочник API

Инструмент: create_post

Параметры:

Параметр

Тип

Обязательно

Описание

title

string

Заголовок поста

body

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!

F
license - not found
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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