Skip to main content
Glama

Servicio MCP de cnblogs

MCP Server Python License

A través del protocolo MCP (Model Context Protocol), encapsula la API abierta de cnblogs como herramientas invocables por IA. Te permite publicar artículos en cnblogs directamente con lenguaje natural en cualquier cliente MCP (QwenPaw, Claude Desktop, Cline, etc.).


Funcionalidades

  • create_post — Publicar entradas de blog en Markdown en cnblogs

  • ✅ Gestión de tokens mediante .env, sin hardcoding

  • ✅ Soporte para conexión con cualquier cliente MCP


Related MCP server: feishu-markdown-mcp

Índice


Inicio rápido

1. Clonar / Descargar el proyecto

git clone https://github.com/你的用户名/cnblogs-mcp.git
cd cnblogs-mcp

2. Crear entorno virtual

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

3. Instalar dependencias

pip install -r requirements.txt

4. Configurar Token

cp .env.example .env

Edita .env e introduce tu Personal Access Token de cnblogs:

CNBLOGS_TOKEN=your_token_here

5. Ejecutar pruebas

# 验证 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"'

Salida normal:

{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"create_post",...}]}}

Obtener Token

  1. Inicia sesión en cnblogs

  2. Ve a Configuración personal → Configuración de seguridad → Personal Access Token

  3. Haz clic en "Crear Token", introduce el nombre y los permisos (se requiere el permiso "Publicar entradas")

  4. Copia el token generado e insértalo en el archivo .env

⚠️ El token solo se muestra una vez, guárdalo de forma segura.


Conexión del cliente

1. QwenPaw

Busca agent.json en el directorio de trabajo de QwenPaw y añade el cliente 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"
        }
      }
    }
  }
}

Reinicia QwenPaw:

qwenpaw daemon restart

2. Claude Desktop

Añade lo siguiente en ~/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"
      }
    }
  }
}

Reinicia Claude Desktop.

3. Cline / Roo Code

Busca "MCP" en la configuración de VS Code, encuentra MCP Servers y añade:

{
  "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. Otros clientes MCP

Plantilla de configuración general:

Parámetro

Valor

command

.venv/bin/python (Python del entorno virtual del proyecto)

args

["./cnblogs_mcp.py"]

env.DOTENV_PATH

Ruta absoluta del archivo .env

💡 Si el cliente MCP no admite DOTENV_PATH, también puedes pasar el token directamente usando env.CNBLOGS_TOKEN.


Pruebas manuales

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

Respuesta normal:

{"success": true, "postId": 12345678, "postUrl": "https://www.cnblogs.com/你的博客名/p/12345678"}

Manejo de errores

Mensaje de error

Causa

Solución

未配置 CNBLOGS_TOKEN

.env no configurado o ruta incorrecta

Verifica si el archivo .env existe y si DOTENV_PATH es correcto

API 错误: 401

Token inválido o expirado

Crea un nuevo token en cnblogs

API 错误: 403

Permisos de token insuficientes

Asegúrate de marcar "Publicar entradas" al crear el token

API 错误: 400

Formato de solicitud incorrecto

Verifica si el título y el cuerpo están vacíos

请求超时

Problema de red

Verifica la red y vuelve a intentarlo

Lista de herramientas vacía tras conectar MCP

Problema con show_banner

Asegúrate de usar mcp.run(show_banner=False)


Referencia de API

Herramienta: create_post

Parámetros:

Parámetro

Tipo

Obligatorio

Descripción

title

string

Título de la entrada

body

string

Cuerpo de la entrada (formato Markdown)

Valor de retorno:

{
  "success": true,
  "postId": 19246558,
  "postUrl": "https://www.cnblogs.com/你的博客名/p/19246558"
}

O en caso de error:

{
  "success": false,
  "error": "错误描述"
}

Desarrollo

Estructura del proyecto

cnblogs-mcp/
├── cnblogs_mcp.py     # MCP 服务主文件
├── requirements.txt   # Python 依赖
├── .env.example       # 环境变量模板(不含真实 Token)
├── .env               # 你的本地配置(已在 .gitignore 中)
├── .gitignore
├── README.md
└── LICENSE

Dependencias

fastmcp>=3.0.0
python-dotenv>=1.0.0
requests>=2.31.0

Licencia

MIT — ¡Se agradecen las estrellas, forks y PRs!

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