Minio MCP Service について
Minio MCP Service は、MinIO オブジェクトストレージ向けの Python 製 MCP サーバーとクライアントです。ツールとリソースでバケットやオブジェクト、ファイルデータを扱い、基本クライアントと Anthropic クライアントも備えています。
主な機能
- 01バケットとオブジェクトの一覧表示
- 02オブジェクトの取得とアップロード
- 03テキスト・バイナリファイルのリソース化
- 04バケット内容のリソース化
- 05基本クライアントと Anthropic クライアント
活用シーン
- 01バケットの閲覧とプレフィックスによる絞り込み
- 02MinIO でのオブジェクト取得やアップロード
- 03MCP リソース経由でのファイル内容の読み取り
MCP 対応
MCP サーバーは、ツールとリソースを通じて MinIO のバケットとオブジェクトを提供します。サーバーに接続する基本クライアントと Anthropic クライアントも含まれます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MinIO Model-Context Protocol(MCP)
このプロジェクトは、MinIO オブジェクトストレージ向けの Model-Context Protocol(MCP)サーバーとクライアントを実装しています。MinIO とやり取りするための標準化された方法を提供します。
機能
サーバー
リソース
リソースを通じて MinIO のデータを公開します。サーバーは以下にアクセスし、提供できます。
- テキストファイル(ファイル拡張子に基づいて自動検出)
- バイナリファイル(application/octet-stream として処理)
- バケットの内容(バケットあたり最大 1000 個のオブジェクト)
ツール
-
ListBuckets
- リクエストの認証済み送信者が所有するすべてのバケットの一覧を返します
- オプションのパラメーター:
start_after(ページネーション)、max_buckets(結果の上限)
-
ListObjects
- リクエストごとに、バケット内のオブジェクトの一部またはすべて(最大 1,000 個)を返します
- 必須パラメーター:
bucket_name - オプションのパラメーター:
prefix(プレフィックスでフィルタリング)、max_keys(結果の上限)
-
GetObject
- MinIO からオブジェクトを取得します
- 必須パラメーター:
bucket_name、object_name
-
PutObject
- fput メソッドを使ってファイルを MinIO バケットにアップロードします
- 必須パラメーター:
bucket_name、object_name、file_path
クライアント
このプロジェクトには、複数のクライアント実装が含まれています。
- 基本クライアント - MinIO MCP サーバーと直接やり取りするためのシンプルなクライアント
- Anthropic クライアント - Anthropic の Claude モデルと連携し、AI を活用して MinIO とやり取りします
インストール
- リポジトリをクローンします。
git clone https://github.com/yourusername/minio-mcp.git
cd minio-mcp
- pip を使用して依存関係をインストールします。
pip install -r requirements.txt
または、uv を使用します。
uv pip install -r requirements.txt
環境設定
ルートディレクトリに .env ファイルを作成し、次の設定を記述します。
# MinIO Configuration
MINIO_ENDPOINT=play.min.io
MINIO_ACCESS_KEY=your_access_key
MINIO_SECRET_KEY=your_secret_key
MINIO_SECURE=true
MINIO_MAX_BUCKETS=5
# Server Configuration
SERVER_HOST=0.0.0.0
SERVER_PORT=8000
# For Anthropic Client (if using)
ANTHROPIC_API_KEY=your_anthropic_api_key
使用方法
サーバーの実行
サーバーは直接実行できます。
python src/minio_mcp_server/server.py
基本クライアントの使用
from src.client import main
import asyncio
asyncio.run(main())
Anthropic クライアントの使用
src/client/servers_config.jsonでサーバーを設定します。
{
"mcpServers": {
"minio_service": {
"command": "python",
"args": ["path/to/minio_mcp_server/server.py"]
}
}
}
- クライアントを実行します。
python src/client/mcp_anthropic_client.py
-
アシスタントと対話します。
- アシスタントは利用可能なツールを自動的に検出します
- MinIO のデータについて質問できます
- アシスタントは適切なツールを使用して情報を取得します
-
セッションを終了します。
quitまたはexitと入力すると、セッションが終了します
Claude Desktop との連携
この MCP サーバーを Claude Desktop と連携できます。
設定
MacOS の場合:~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows の場合:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"minio-mcp": {
"command": "python",
"args": [
"path/to/minio-mcp/src/minio_mcp_server/server.py"
]
}
}
}
開発
プロジェクト構成
minio-mcp/
├── src/
│ ├── client/ # Client implementations
│ │ ├── mcp_anthropic_client.py # Anthropic integration
│ │ └── servers_config.json # Server configuration
│ ├── minio_mcp_server/ # MCP server implementation
│ │ ├── resources/ # Resource implementations
│ │ │ └── minio_resource.py # MinIO resource
│ │ └── server.py # Main server implementation
│ ├── __init__.py
│ └── client.py # Basic client implementation
├── LICENSE
├── pyproject.toml
├── README.md
└── requirements.txt
テストの実行
pytest
コードのフォーマット
black src/
isort src/
flake8 src/
デバッグ
MCP サーバーは stdio 経由で動作するため、デバッグが難しい場合があります。最適なデバッグ環境として、MCP Inspector の使用をおすすめします。
npx @modelcontextprotocol/inspector python path/to/minio-mcp/src/minio_mcp_server/server.py
起動すると、Inspector に URL が表示されます。その URL にブラウザーからアクセスして、デバッグを開始できます。
ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。