项目简介
MinIO MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端应用,旨在为兼容MCP的LLM客户端(如Claude Desktop)提供与MinIO对象存储交互的能力。通过将MinIO的各种操作封装为标准化的MCP工具,LLM能够以自然语言指令直接管理存储桶和对象,实现智能化的云存储运维。
主要功能点
本服务器提供了以下7个核心功能,分为两大类:
存储桶管理:
- 列出存储桶 (list_buckets): 显示MinIO中所有可用的存储桶及其创建日期。
- 获取存储桶信息 (get_bucket_info): 获取指定存储桶的详细信息,包括元数据、策略、对象数量、总大小和加密状态。
- 创建存储桶 (create_bucket): 根据指定名称创建新的存储桶,包含名称验证和存在性检查。
- 删除存储桶 (delete_bucket): 删除指定的存储桶。如果存储桶不为空,可以选择强制删除(会一并删除其中所有对象)。
对象管理:
- 列出对象 (list_objects): 列出指定存储桶中的对象,支持前缀过滤和结果数量限制。
- 获取对象信息 (get_object_info): 获取指定对象的详细元数据,包括大小、内容类型、ETag、版本信息和自定义元数据。
- 删除对象 (delete_object): 从存储桶中删除指定对象,支持删除特定版本的对象。
安装步骤
-
克隆仓库: 打开终端或命令行工具,执行以下命令克隆项目代码:
git clone https://github.com/Rafitis/minio-mcp-server cd minio-mcp-server -
安装依赖: 本项目推荐使用 'uv' 包管理器。如果您尚未安装 'uv',请先安装它(通常通过 'pip install uv')。然后执行以下命令安装项目依赖:
uv sync uv pip install -e . -
配置MinIO连接: 复制示例环境变量文件并进行编辑:
cp .env.example .env打开 '.env' 文件,根据您的MinIO服务器信息修改以下内容:
MINIO_ENDPOINT=localhost:9000 # MinIO服务器的地址和端口 MINIO_ACCESS_KEY=minioadmin # MinIO的访问密钥 MINIO_SECRET_KEY=minioadmin # MinIO的秘密密钥 MINIO_SECURE=false # 是否使用HTTPS(true/false),测试环境通常为false MINIO_LOG_LEVEL=INFO # 日志级别
服务器配置(供MCP客户端使用)
为了让MCP客户端(如Claude Desktop)能够连接并使用此MinIO MCP服务器,您需要在MCP客户端的配置中添加相应的服务器条目。以Claude Desktop为例,您需要编辑其配置文件(macOS位于 '~/Library/Application Support/Claude/claude_desktop_config.json',Windows位于 '%APPDATA%/Claude/claude_desktop_config.json'),并在 'mcpServers' 字段下添加一个名为 '"minio-mcp-server"' 的配置对象。
此配置对象应包含以下关键信息:
- 'command' (启动命令): 指定用于启动MCP服务器的命令。通常是指向 'uv' 包管理器可执行文件的路径,或者直接指向 'python' 解释器。
- 示例: 对于macOS用户,可能是 '/Users/your_username/.local/bin/uv';如果您直接使用Python启动,则可能是您的Python解释器路径。
- 'args' (启动参数): 传递给 'command' 的参数列表,用于指示如何运行MCP服务器的主脚本。
- 示例: 通常包括 '--directory' 指定MinIO MCP服务器仓库的根目录,然后是 'run'、'python' 和服务器主脚本的相对路径,例如 'src/minio_mcp/server.py'。
- 'env' (环境变量): 用于覆盖或设置MinIO连接所需的环境变量。这些变量将传递给启动的MCP服务器进程。
- 示例: 包括 'MINIO_ENDPOINT' (MinIO服务器的地址和端口), 'MINIO_ACCESS_KEY' (MinIO的访问密钥), 'MINIO_SECRET_KEY' (MinIO的秘密密钥) 和 'MINIO_SECURE' (是否使用HTTPS)。请确保这些值与您的MinIO服务器配置匹配。
请注意: 在修改配置文件后,务必完全重启您的MCP客户端(例如Claude Desktop),以使新的服务器配置生效。
基本使用方法
当服务器成功运行并通过MCP客户端连接后,您可以在LLM客户端中通过自然语言指令来使用这些工具:
- 列出所有存储桶: "List all buckets in MinIO"
- 查看特定存储桶信息: "Show me information about the 'my-bucket' bucket"
- 列出存储桶中的对象: "List the first 10 objects in 'my-bucket'"
- 获取对象详细信息: "Get information about 'file.txt' in 'my-bucket'"
- 删除特定对象: "Delete 'old-file.txt' from 'my-bucket'"
- 创建新的存储桶: "Create a new bucket named 'new-data-bucket'"
- 删除存储桶(带强制选项): "Delete bucket 'temp-bucket' forcefully"
信息
分类
数据库与文件