内容
# MinIO 模型上下文协议(MCP)
本项目实现了 MinIO 对象存储的模型上下文协议(MCP)服务器和客户端。它提供了一种标准化的方式来与 MinIO 进行交互。
## 功能
### 服务器
#### 资源
通过 **资源** 公开 MinIO 数据。服务器可以访问并提供:
- 文本文件(根据文件扩展名自动检测)
- 二进制文件(作为 application/octet-stream 处理)
- 存储桶内容(每个存储桶最多 1000 个对象)
#### 工具
* **列出存储桶**
* 返回身份验证的请求发送者拥有的所有存储桶列表
* 可选参数:`start_after`(分页),`max_buckets`(限制结果)
* **列出对象**
* 返回存储桶中的部分或全部(最多 1,000)对象,每个请求返回一些对象
* 必需参数:`bucket_name`
* 可选参数:`prefix`(按前缀过滤),`max_keys`(限制结果)
* **获取对象**
* 从 MinIO 检索对象
* 必需参数:`bucket_name`,`object_name`
* **上传对象**
* 使用 fput 方法将文件上传到 MinIO 存储桶
* 必需参数:`bucket_name`,`object_name`,`file_path`
### 客户端
项目包含多个客户端实现:
1. **基本客户端** - 用于直接与 MinIO MCP 服务器交互的简单客户端
2. **Anthropic 客户端** - 与 Anthropic 的 Claude 模型集成,用于与 MinIO 进行 AI 驱动的交互
## 安装
1. 克隆仓库:
```bash
git clone https://github.com/yourusername/minio-mcp.git
cd minio-mcp
```
2. 使用 pip 安装依赖:
```bash
pip install -r requirements.txt
```
或使用 uv:
```bash
uv pip install -r requirements.txt
```
## 环境配置
在根目录中创建 `.env` 文件,包含以下配置:
```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
```
## 用法
### 运行服务器
可以直接运行服务器:
```bash
python src/minio_mcp_server/server.py
```
### 使用基本客户端
```python
from src.client import main
import asyncio
asyncio.run(main())
```
### 使用 Anthropic 客户端
1. 在 `src/client/servers_config.json` 中配置服务器:
```json
{
"mcpServers": {
"minio_service": {
"command": "python",
"args": ["path/to/minio_mcp_server/server.py"]
}
}
}
```
2. 运行客户端:
```bash
python src/client/mcp_anthropic_client.py
```
3. 与助手交互:
- 助手将自动检测可用的工具
- 您可以询问有关 MinIO 数据的问题
- 助手将使用适当的工具检索信息
4. 退出会话:
- 输入 `quit` 或 `exit` 结束会话
## 与 Claude Desktop 集成
您可以将此 MCP 服务器与 Claude Desktop 集成:
### 配置
在 MacOS 上:`~/Library/Application Support/Claude/claude_desktop_config.json`
在 Windows 上:`%APPDATA%/Claude/claude_desktop_config.json`
```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
```
### 运行测试
```bash
pytest
```
### 代码格式化
```bash
black src/
isort src/
flake8 src/
```
## 调试
由于 MCP 服务器通过 stdio 运行,调试可能具有挑战性。为了获得最佳调试体验,我们建议使用 MCP 检查器:
```bash
npx @modelcontextprotocol/inspector python path/to/minio-mcp/src/minio_mcp_server/server.py
```
启动后,检查器将显示一个 URL,您可以在浏览器中访问它以开始调试。
## 许可证
本项目根据 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。