使用说明
MinIO MCP 服务器 - Docker 部署
这个仓库包含了运行(某应用/服务)所需的部署配置 MinIO MCP 服务器(mcp-server-aistor) 在Render上使用Docker。
MCP(模型上下文协议)服务器使AI助手能够通过标准化接口与MinIO/AIStor对象存储进行交互。
特点
此次部署包括:
- ✅ 用于MCP通信的StreamableHTTP传输
- ✅ 已启用写操作(
--allow-write旗帜) - ✅ 基于Docker的部署,便于轻松移植
- ✅ 服务监控的健康检查
- ✅ 通过Render实现自动部署
- ✅ 基于环境的配置(不硬编码秘密)
快速部署以进行渲染
先决条件
- 一个GitHub账号
- 一个Render账户(提供免费套餐)
- MinIO服务器凭据(终端节点、访问密钥、秘密密钥)
部署步骤
-
为这个仓库创建分支 到您的GitHub账户
-
在Render上创建一个新的Web服务:
- 首选 渲染仪表板
- 点击“新建+”→“Web服务”
- 连接您的GitHub仓库
- Render 将自动检测
render.yaml配置
-
配置环境变量:
在Render仪表板中,设置以下环境变量:
MINIO_ENDPOINT=your-minio-server.example.com MINIO_PORT=443 MINIO_USE_SSL=true MINIO_ACCESS_KEY=your-access-key MINIO_SECRET_KEY=your-secret-key MINIO_BUCKET_NAME=your-bucket-name -
部署:
- 点击“创建网络服务”
- Render 将构建并部署您的服务
- 等待部署完成
-
获取您的服务URL:
- 您的MCP服务器将在以下地址可用:
https://your-service-name.onrender.com/mcp
- 您的MCP服务器将在以下地址可用:
本地开发
使用 Docker Compose
-
克隆仓库:
git clone https://github.com/your-username/minio-mcp-docker.git cd minio-mcp-docker -
创造
.env文件:cp .env.example .env -
编辑
.env使用您的MinIO凭据:nano .env # or use your preferred editor -
启动服务:
docker-compose up -d -
测试连接:
curl http://localhost:8090/mcp -
查看日志:
docker-compose logs -f -
停止服务:
docker-compose down
配置
环境变量
| 变量 | 描述 | 必填 | 示例 |
|---|---|---|---|
| 项目 | 描述 | 数量 | 单价 |
MINIO_PORT |
443 |
MinIO服务器端口 | 是 |
MINIO_USE_SSL |
true |
使用SSL/TLS连接 | 是 |
MINIO_ACCESS_KEY |
minio-admin |
MinIO 访问密钥(用户名) | 是 |
MINIO_SECRET_KEY |
your-secret-key |
MinIO 密钥(密码) | 是 |
MINIO_BUCKET_NAME |
mybucket |
默认存储桶名称 | 否 |
|
MCP 服务器标志
--http此部署包含以下标志:--http-port 8090启用StreamableHTTP传输--allow-write在8090端口上监听--allowed-directories启用写操作(创建存储桶、上传对象等)
限制文件操作仅在特定目录内进行(安全功能) CMD 要修改标志,请编辑 Dockerfile输入线(或连接线)
。
允许的目录 --allowed-directories MCP服务器使用
标志用于限制哪些本地目录可以用于文件操作(例如,从MinIO下载对象或上传本地文件)。
/tmp/downloads当前配置:/tmp/uploads- 从MinIO下载对象
- 用于将文件上传到MinIO
用于本地开发: docker-compose当本地运行时使用
./downloads这些目录被映射到:./uploads- 从MinIO下载的文件将显示在此处
- 将文件放在这里以上传到MinIO
对于渲染部署: /tmp/downloads Render 使用的是临时存储,所以文件在 /tmp/uploads 和
- 仅在容器的生命周期内存在。若要在生产环境中使用持久化存储,您需要:
- 为您的服务添加一个渲染磁盘卷
/tmp
更新Dockerfile以使用挂载的磁盘路径,而不是
- 示例MCP命令:
- “从存储桶 mybucket 中下载文件 file.pdf 到 downloads 目录”
- “将uploads目录中的document.txt文件上传到mybucket存储桶”
“列出下载目录中的文件”
与MCP客户端一起使用
- Cherry Studio(或其他支持StreamableHTTP的客户端)
- 打开您的MCP客户端设置
- 添加一个新的MCP服务器: 名字:
- MinIO AIStor 类型:
- StreamableHTTP(可流式传输的HTTP)
https://your-service-name.onrender.com/mcp
- URL:
保存并测试连接
示例查询
- 一旦连接成功,您就可以使用自然语言与您的MinIO服务器进行交互:
- “列出我MinIO服务器上的所有存储桶”
- “列出 echarts 存储桶的内容”
- “将文件file.pdf上传到存储桶mybucket”
- “获取存储桶 mybucket 中 document.pdf 文件的元数据”
“创建一个名为 new-bucket 的存储桶”
可用的MCP工具
服务器提供以下工具:
list_buckets读取操作:list_bucket_contents- 列出所有存储桶get_object_metadata- 列出存储桶中的对象get_object_tags- 获取对象元数据get_object_presigned_url- 获取对象标签download_object- 为对象创建预签名URL
- 下载一个对象 写操作
create_bucket(在此部署中已启用):upload_object- 创建一个新的存储桶set_object_tags- 将文件上传到存储桶copy_object- 为对象设置标签move_object- 复制一个对象
- 移动物体
ask_object人工智能运维(或AI运营):
- 使用AI询问对象内容相关的问题 要查看完整的工具列表,请参阅官方文档
。
安全注意事项 ⚠️
- 重要的安全信息:
.env永远不要承诺 文件 - 包含真实凭据
- 所有敏感数据在Render中都以环境变量的形式存储
- 该存储库仅包含配置模板
- 为MinIO访问密钥使用强且唯一的密码
- 为生产环境部署启用SSL/TLS
--allow-delete考虑使用额外的标志,如
仅在必要时
故障排除
- 服务无法启动
- 检查渲染日志中的错误信息
- 验证所有环境变量是否设置正确
- 确保可以从Render服务器访问MinIO终端节点
确认MinIO凭据有效
- 健康检查失败
/mcp - 健康检查端点是
- 确保在Dockerfile中正确暴露了8090端口
检查服务是否在正确的端口上监听
- 连接超时
MINIO_ENDPOINT验证https://不包括 - 前缀
- 检查你MinIO服务器上的防火墙规则
确保MinIO服务器可以从公共互联网访问(如果使用Render)
MinIO 文档
许可证 这个部署配置遵循与……相同的许可协议 mcp-server-aistor 翻译为中文可以是“MCP服务器-AI优化(或AI策略)”。不过,具体翻译可能需要根据上下文或该术语在特定领域的含义来调整。在这里,“aistor”可能是一个特定于某个项目或系统中的术语,我将其解释为与“AI优化”或“AI策略”相关的概念,但实际含义可能有所不同
项目。
做出贡献