Qiniu MCP Server について
Qiniu MCP Server は、七牛云の製品をベースに構築された Model Context Protocol サーバーです。AI クライアントから七牛云のストレージ、マルチメディア、ライブ配信サービスにアクセスできます。自然言語で七牛云のリソースを管理したい開発者に向いています。
主な機能
- 01ストレージ:Bucket とファイルの一覧表示、アップロード、読み取り、ダウンロードリンク取得
- 02マルチメディア:画像のリサイズと角丸処理
- 03CDN:URL を指定したファイルの更新とプリフェッチ
- 04ライブ配信:ライブスペース、ストリーム、ドメイン、利用量の管理
活用シーン
- 01AI アシスタントによる Bucket の一覧表示とファイル内容の読み取り
- 02ストレージ上の画像のリサイズや角丸処理
- 03CDN 上のファイルURLの更新やプリフェッチ
MCP 対応
本プロジェクトは MCP サーバーであり、Cline などの MCP 対応クライアントから uvx で起動できます。七牛云の機能をツールとして AI アシスタントに提供します。
詳細
Qiniu MCP Server
概要
Qiniu Cloud 製品を基盤に構築された Model Context Protocol (MCP) サーバーです。AI LLM クライアントのコンテキストで、この MCP サーバーを通じて Qiniu Cloud のストレージ、インテリジェントマルチメディア、ライブ配信サービスなどにアクセスできます。
機能:
- ストレージ
- バケット一覧の取得
- バケット内のファイル一覧の取得
- ローカルファイルのアップロード、およびファイル内容を指定したアップロード
- ファイル内容の読み取り
- ファイルのダウンロードリンクの取得
- Qiniu Cloud ストレージの詳細については、MCP を利用した大規模言語モデルによる Qiniu Cloud ストレージへのアクセスを参照してください。
- インテリジェントマルチメディア
- 画像の縮小・拡大
- 画像の角丸加工
- CDN
- リンクに基づくファイルの更新
- リンクに基づくファイルのプリフェッチ
- ライブ配信
- ライブ配信スペースのバケットの作成
- ライブ配信ストリームの作成
- ライブ配信スペース一覧の取得
- ストリーム一覧の取得
- 配信ドメインのバインド
- ライブ配信のプッシュ・プル用 URL の取得
- ライブ配信使用量の取得
環境要件
- Python 3.12 以降
- uv パッケージマネージャー
uv がまだインストールされていない場合は、次のコマンドでインストールできます。
# Mac,推荐使用 brew 安装
brew install uv
# Linux & Mac
# 1. 安装
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. 安装完成后,请确保将软件包安装路径(包含 uv 和 uvx 可执行文件的目录)添加到系统的 PATH 环境变量中。
# 假设安装包路径为 /Users/xxx/.local/bin(见安装执行输出)
### 临时生效(当前会话),在当前终端中执行以下命令:
export PATH="/Users/xxx/.local/bin:$PATH"
### 永久生效(推荐),在当前终端中执行以下命令:
echo 'export PATH="/Users/xxx/.local/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
インストール方法の詳細は、uv のインストールを参照してください。
Cline での使用:
手順:
-
vscode で Cline プラグインをダウンロードします(ダウンロードすると、サイドバーに Cline のアイコンが追加されます)。
-
LLM を設定します。
-
qiniu MCP を設定します。
- Cline アイコンをクリックして Cline プラグインを開き、MCP Server モジュールを選択します。
- installed を選択し、Advanced MCP Settings をクリックして MCP Server を設定します。以下の設定情報を参照してください。
{ "mcpServers": { "qiniu": { "command": "uvx", "args": [ "qiniu-mcp-server" ], "env": { "QINIU_ACCESS_KEY": "YOUR_ACCESS_KEY", "QINIU_SECRET_KEY": "YOUR_SECRET_KEY", "QINIU_REGION_NAME": "YOUR_REGION_NAME", "QINIU_ENDPOINT_URL": "YOUR_ENDPOINT_URL", "QINIU_BUCKETS": "YOUR_BUCKET_A,YOUR_BUCKET_B" }, "disabled": false } } }如果只使用直播功能时,支持两种鉴权模式 1 配置QINIU_ACCESS_KEY/QINIU_SECRET_KEY { "mcpServers": { "qiniu": { "command": "uvx", "args": [ "qiniu-mcp-server" ], "env": { "QINIU_ACCESS_KEY": "YOUR_ACCESS_KEY", "QINIU_SECRET_KEY": "YOUR_SECRET_KEY" }, "disabled": false } } } 2 可在七牛直播控制台获取apikey后,配置QINIU_LIVE_API_KEY { "mcpServers": { "qiniu": { "command": "uvx", "args": [ "qiniu-mcp-server" ], "env": { "QINIU_LIVE_API_KEY": "YOUR_LIVE_API_KEY" }, "disabled": false } } }- qiniu MCP Server のリンクスイッチをクリックして接続します。
-
Cline でチャットウィンドウを作成すると、AI とやり取りして qiniu-mcp-server を使用できます。以下にオブジェクトストレージの使用例を示します。
- qiniu のリソース情報を一覧表示する
- qiniu のすべての Bucket を一覧表示する
- qiniu の xxx Bucket 内のファイルを一覧表示する
- qiniu の xxx Bucket 内にある yyy のファイル内容を読み取る
- qiniu の xxx Bucket 内にある yyy の画像を幅 200 ピクセルの角丸にする
- qiniu のこの CDN リンクを更新する:https://developer.qiniu.com/test.txt
-
Cline でチャットウィンドウを作成すると、AI とやり取りして qiniu-mcp-server を使用できます。以下にライブ配信システムの使用例を示します。
- すべてのライブ配信スペースを一覧表示する
- ライブ配信スペースを 1 つ新規作成し、mcptest1123 という名前を付ける
- mcptest1123 にストリームを 1 つ新規作成し、stream1 という名前を付ける
- ライブ配信スペース mcptest1123 内のすべてのストリームを一覧表示する
- mcptest1123 にプッシュ配信ドメイン とプル配信ドメイン をバインドする
- mcptest1123 のライブ配信ストリーム stream1 に対応するプッシュ URL とプル URL を取得する
- 直近 1 時間のライブ配信使用量を取得する
注: cursor で MCP Server を作成する場合は、上記の設定をそのまま使用できます。 claude で使用すると、Error: spawn uvx ENOENT エラーが発生することがあります。解決方法:command のパラメーターに uvx の絶対パスを指定します。例:/usr/local/bin/uvx
開発
- リポジトリをクローンします:
# 克隆项目并进入目录
git clone [email protected]:qiniu/qiniu-mcp-server.git
cd qiniu-mcp-server
- 仮想環境を作成して有効化します:
uv venv
source .venv/bin/activate # Linux/macOS
# 或
.venv\Scripts\activate # Windows
- 依存関係をインストールします:
uv pip install -e .
- 設定
環境変数のテンプレートをコピーします:
cp .env.example .env
.env ファイルを編集し、以下のパラメーターを設定します:
# S3/Kodo 认证信息
QINIU_ACCESS_KEY=your_access_key
QINIU_SECRET_KEY=your_secret_key
# 区域信息
QINIU_REGION_NAME=your_region
QINIU_ENDPOINT_URL=endpoint_url # eg:https://s3.your_region.qiniucs.com
# 配置 bucket,多个 bucket 使用逗号隔开,建议最多配置 20 个 bucket
QINIU_BUCKETS=bucket1,bucket2,bucket3
機能を拡張するには、まず core ディレクトリの下に業務パッケージのディレクトリ(例:ストレージ → storage)を新規作成し、その業務パッケージディレクトリで機能を拡張します。
業務パッケージディレクトリの __init__.py ファイルで、業務ツールまたはリソースを登録するための load 関数を定義します。最後に、core ディレクトリの __init__.py
でこの load 関数を呼び出し、ツールまたはリソースを登録します。
core
├── __init__.py # 各个业务工具或者资源加载
└── storage # 存储业务目录
├── __init__.py # 加载存储工具或者资源
├── resource.py # 存储资源扩展
├── storage.py # 存储工具类
└── tools.py # 存储工具扩展
テスト
Model Control Protocol Inspector を使用したテスト
テストには Model Control Protocol Inspector の使用を強くおすすめします。
# node 版本为:v22.4.0
npx @modelcontextprotocol/inspector uv --directory . run qiniu-mcp-server
MCP Server のローカル起動例
- 標準入力/標準出力(stdio)モードで起動します(デフォルト):
uv --directory . run qiniu-mcp-server
- SSE モードで起動します(Web アプリケーション向け):
uv --directory . run qiniu-mcp-server --transport sse --port 8000
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。