mcpField
M
Minio MCP Service

Minio MCP Service

本地服务
github.com/ucesys文件与存储684 周前更新

关于 Minio MCP Service

Minio MCP Service 是面向 MinIO 对象存储的 Python MCP 服务端与客户端,可通过工具和资源访问存储桶、对象及文件数据,并附带基础客户端和 Anthropic 客户端实现。

主要功能

  1. 01列出存储桶和对象
  2. 02获取和上传对象
  3. 03将文本与二进制文件作为资源提供
  4. 04将存储桶内容作为资源提供
  5. 05附带基础及 Anthropic 客户端

适用场景

  1. 01浏览存储桶并按前缀筛选对象
  2. 02在 MinIO 中获取或上传对象
  3. 03通过 MCP 资源读取文件内容

MCP 相关

服务端通过 MCP 工具和资源提供 MinIO 存储桶及对象访问。项目还包含用于连接该服务端的基础客户端和 Anthropic 客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MinIO 模型上下文协议(MCP)

本项目为 MinIO 对象存储实现了模型上下文协议(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
客户端

本项目包含多种客户端实现:

  1. 基础客户端 - 用于直接与 MinIO MCP 服务交互的简易客户端
  2. Anthropic 客户端 - 集成 Anthropic 的 Claude 模型,实现由 AI 驱动的 MinIO 交互

安装

  1. 克隆仓库:
git clone https://github.com/yourusername/minio-mcp.git
cd minio-mcp
  1. 使用 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 客户端
  1. 在 src/client/servers_config.json 中配置服务端:
{
  "mcpServers": {
    "minio_service": {
      "command": "python",
      "args": ["path/to/minio_mcp_server/server.py"]
    }
  }
}
  1. 运行客户端:
python src/client/mcp_anthropic_client.py
  1. 与助手交互:

    • 助手会自动检测可用工具
    • 你可以询问有关 MinIO 数据的问题
    • 助手会使用适当的工具来检索信息
  2. 退出会话:

    • 输入 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 授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。