Skip to main content
Glama

博客园 (cnblogs) MCP サービス

MCP Server Python License

MCP(Model Context Protocol) プロトコルを通じて、博客园 (cnblogs) の Open API を AI が呼び出せるツールとしてラップします。あらゆる MCP クライアント(QwenPaw、Claude Desktop、Cline など)から、自然言語を使って直接博客园に記事を投稿できるようになります。


機能

  • ✅ create_post — Markdown 形式のブログ記事を博客园に投稿

  • ✅ トークンは .env で管理し、ハードコーディングを排除

  • ✅ あらゆる MCP クライアントからの接続をサポート


Related MCP server: Dev.to Blog Publisher MCP Server

目次


クイックスタート

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_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. 博客园 にログイン

  2. 個人設定 → セキュリティ設定 → Personal Access Token に移動

  3. 「トークンを作成」をクリックし、名前と権限(「随筆の投稿」権限が必要)を入力

  4. 生成されたトークンをコピーし、.env ファイルに貼り付け

⚠️ トークンは一度しか表示されません。大切に保管してください。


クライアント接続

1. QwenPaw

QwenPaw の作業ディレクトリにある agent.json を探し、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

トークンが無効または期限切れ

博客园でトークンを再作成

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 を歓迎します!

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables publishing local Markdown files to Velog with idempotent updates. Supports login, post management, and series operations through natural language.
    10
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Automates writing and publishing posts to velog.io via MCP, including login and session management.
    5
    21 npm
    MIT