该项目实现了用于 MinIO 对象存储的模型上下文协议 (MCP) 服务器和客户端。它提供了一种与 MinIO 标准化交互的方式。
通过 资源 暴露 MinIO 数据。服务器可以访问并提供:
ListBuckets
start_after(分页),max_buckets(限制结果数量)ListObjects
bucket_nameprefix(按前缀过滤),max_keys(限制结果数量)GetObject
bucket_name,object_namePutObject
bucket_name,object_name,file_path项目包括多个客户端实现:
git clone https://github.com/yourusername/minio-mcp.git
cd minio-mcp
pip install -r requirements.txt
或者使用 uv:
uv pip install -r requirements.txt
在根目录创建一个 .env 文件,并添加以下配置:
# MinIO 配置
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_HOST=0.0.0.0
SERVER_PORT=8000
# 如果使用 Anthropic 客户端
ANTHROPIC_API_KEY=your_anthropic_api_key
可以直接运行服务器:
python src/minio_mcp_server/server.py
from src.client import main
import asyncio
asyncio.run(main())
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
与助手互动:
结束会话:
quit 或 exit 来结束会话您可以将此 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/ # 客户端实现
│ │ ├── mcp_anthropic_client.py # Anthropic 集成
│ │ └── servers_config.json # 服务器配置
│ ├── minio_mcp_server/ # MCP 服务器实现
│ │ ├── resources/ # 资源实现
│ │ │ └── minio_resource.py # MinIO 资源
│ │ └── server.py # 主服务器实现
│ ├── __init__.py
│ └── client.py # 基础客户端实现
├── LICENSE
├── pyproject.toml
├── README.md
└── requirements.txt
pytest
black src/
isort src/
flake8 src/
由于 MCP 服务器通过标准 I/O 运行,调试可能会很困难。为了获得最佳调试体验,我们建议使用 MCP Inspector:
npx @modelcontextprotocol/inspector python path/to/minio-mcp/src/minio_mcp_server/server.py
启动后,Inspector 将显示一个 URL,您可以在浏览器中访问该 URL 开始调试。
本项目采用 MIT 许可证 - 详情见 LICENSE 文件。