关于 AIStor MCP server
AIStor MCP server 是用于与 AIStor 对象存储交互的官方 MCP 服务。它支持读取、写入、删除和管理员操作,并通过 --allow-* 参数分级开放权限,默认只读。适合需要通过 LLM 管理对象存储的用户。
主要功能
- 01列出存储桶与对象,获取元数据和标签
- 02通过 ask_object 工具让 AI 描述对象内容
- 03按参数开启写入、删除与管理员操作
- 04支持 STDIO 与 StreamableHTTP 传输
适用场景
- 01通过 Claude for Desktop 查询 AIStor 中的存储桶和对象
- 02上传、复制或移动对象并设置标签
- 03查看集群健康状态与存储使用情况
MCP 相关
该服务向 MCP 客户端暴露存储桶、对象、标签、预签名 URL 及管理信息等工具,客户端可借此操作 AIStor 对象存储。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e MINIO_ENDPOINT -e MINIO_ACCESS_KEY -e MINIO_SECRET_KEY -e MINIO_USE_SSL quay.io/minio/aistor/mcp-server-aistor:latestMINIO_ENDPOINTMINIO_ACCESS_KEY密钥MINIO_SECRET_KEY密钥MINIO_USE_SSL本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
quay.io/minio/aistor/mcp-server-aistor:lateststdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
AIStor MCP 服务
这是一个用于与 AIStor 对象存储交互的 Model Context Protocol(MCP)服务。
有关 MCP 的更多信息,请访问其官方网站。
有关 AIStor MCP 服务的更多信息,请参阅我们的博客文章:
- Introducing MCP server for AIStor
- Administrative functions of MCP server for AIStor
- MCP server for AIStor: How it works
更新
- 2025-05-28
- 新增对 MCP 版本 2025-03-26 的支持
- 新增对 StreamableHTTP 协议的支持
- 新增 text_to_object 工具
功能
读取操作
- 列出存储桶
- 列出存储桶中的对象
- 获取对象的元数据和标签
- 创建带有过期时间的对象预签名 URL
AI 操作
- 使用
ask_object工具描述对象的内容
写入操作
需在配置中使用 --allow-write 标志启用这些操作。
- 创建存储桶
- 将对象上传到存储桶
- 为对象添加标签
删除操作
需在配置中使用 --allow-delete 标志启用这些操作。
- 删除对象
- 删除存储桶
管理操作
需在配置中使用 --allow-admin 标志启用这些操作。
- 以人类可读的形式获取集群信息(配置、运行状况、可用空间)
Claude for Desktop 配置
此 MCP 服务也适用于其他支持 MCP 的客户端,但我们先从 Claude 开始。
它使用 STDIO 传输与服务交互。
有关使用 StreamableHTTP 传输配置服务的说明,请参阅下一节。
前提条件
-
从 Claude 下载并安装 Claude for Desktop 应用。 此 MCP 服务也适用于其他支持 MCP 的客户端,但我们先从 Claude 开始。
-
确保已在桌面电脑或笔记本电脑上安装并准备好使用 Docker 或 Podman。
-
获取 AIStor(或 MinIO)对象存储凭据(
MINIO_ACCESS_KEY和MINIO_SECRET_KEY)及其端点位置。 如果没有可用的 AIStor 或 MinIO 服务,可以使用 MinIO Playground 服务的值。
配置文件
使用你喜欢的文本编辑器打开 Claude for Desktop 配置文件。 要在系统中查找配置文件,请按照 Model Context Protocol 网站上的快速入门说明操作。 其默认位置为:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
将以下内容添加到配置文件中,并将凭据、端点和 YOUR_USERNAME 替换为实际值。
此示例使用 Podman;如果你使用 Docker,请将 command: 字段中的 podman 替换为 docker。
如果已配置其他 MCP 服务,只需将 AIStor 配置插入列表即可。
添加 --allow-* 标志时请务必谨慎。默认情况下,如果不添加任何标志,服务将以只读模式运行。
仅在需要时才在此配置中添加 --allow-write 和 --allow-delete 标志。
--allow-admin 标志可启用用于收集集群信息的管理功能。
{
"mcpServers": {
"aistor": {
"command": "podman",
"args": [
"run",
"-i",
"--rm",
"-v",
"/Users/YOUR_USERNAME/Downloads:/Downloads",
"-e",
"MINIO_ENDPOINT=REPLACE_WITH_ENDPOINT",
"-e",
"MINIO_ACCESS_KEY=REPLACE_WITH_ACCESS_KEY",
"-e",
"MINIO_SECRET_KEY=REPLACE_WITH_SECRET_KEY",
"-e",
"MINIO_USE_SSL=true",
"quay.io/minio/aistor/mcp-server-aistor:latest",
"--allowed-directories",
"/Downloads",
"--allow-write",
"--allow-delete",
"--allow-admin"
]
}
}
}
默认情况下,服务列出并发送给大模型的对象或存储桶数量上限为 1000 个。
这样做是为了避免超出模型的令牌上下文窗口限制。
如果你的模型支持更大的上下文窗口,可以在配置文件中添加 --max-keys 参数来提高此数量。
请注意,每条对象记录都包含数十个令牌。
StreamableHTTP 配置
此 MCP 服务可与其他支持 StreamableHTTP 传输方式的 MCP 客户端配合使用。
前提条件
-
下载并安装支持 MCP 和 StreamableHTTP 的 LLM 客户端。 例如,你可以使用 Cherry Studio。
-
确保已在桌面设备或笔记本电脑上安装并准备好 Docker 或 Podman。
-
获取 AIStor(或 MinIO)对象存储的凭据(
MINIO_ACCESS_KEY和MINIO_SECRET_KEY)及其端点位置。 如果你没有可用的 AIStor 或 MinIO 服务,可以使用 MinIO Playground server 的值。
运行服务
运行以下命令以启动服务。
将 MINIO_ENDPOINT、MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY 的值替换为实际值。
将 8090(共三处!)替换为系统上可用的端口号。
podman run -d --name aistor-mcp-server \
-v /Users/YOUR_USERNAME/Downloads:/Downloads \
-e MINIO_ENDPOINT=REPLACE_WITH_ENDPOINT \
-e MINIO_ACCESS_KEY=REPLACE_WITH_ACCESS_KEY \
-e MINIO_SECRET_KEY=REPLACE_WITH_SECRET_KEY \
-e MINIO_USE_SSL=true \
-p 8090:8090 \
quay.io/minio/aistor/mcp-server-aistor:latest \
--allowed-directories /Downloads \
--allow-admin \
--allow-delete \
--allow-write \
--http \
--http-port 8090
配置客户端
在客户端中添加以下配置:
- MCP 服务名称:
aistor - 类型:
StreamableHTTP - URL:
http://localhost:8090/mcp
测试连接
检查是否可以列出服务中可用的工具。请使用客户端中的“Tools”选项卡。
停止服务
podman stop aistor-mcp-server
用法
以下是一些你可以执行的操作示例:
基本操作
- “列出我的 AIStor 服务上的所有存储桶”
- “列出存储桶 test 的内容”
文件操作
- “将文件 example.pdf 下载到我的 Downloads 目录”
- “创建一个存储桶 my-bucket”
- “将 Downloads 中的 document.pdf 上传到存储桶 my-bucket”
元数据操作
- “获取存储桶 my-bucket 中 file.pdf 的元数据”
- “列出对象 config.json 的所有标签”
管理操作
- “显示服务运行状况”
- “获取存储用量统计信息”
每条命令都会返回包含相关信息、便于阅读的响应。
可用工具
通常,大语言模型(LLM)能够判断你的请求应该使用哪个工具。 有时,你可能希望明确告诉模型使用哪个工具。 在这些情况下,也为了让你了解此 MCP 服务还支持哪些功能,以下列出了此版本中可用的工具。
你可以随时点击 Claude for Desktop 应用中的锤子图标查看此列表。
ask_object
: 使用 AI 就对象内容提问,支持多种文件格式并返回上下文相关的答案
copy_object
: 将对象从一个存储桶复制到另一个存储桶,同时保留元数据,并可选择修改属性。你还可以指定版本 ID,以复制该对象的特定版本。
create_bucket
: 使用指定配置创建新的存储桶,并可选择设置版本控制
delete_bucket
: 删除存储桶,也可以强制删除其中的所有对象
delete_object
: 从存储桶中删除指定对象或版本,并可选择使用软删除。你还可以指定版本 ID,以删除该对象的特定版本。
download_object
: 将指定存储桶中的对象下载到本地文件系统,同时保留元数据。你还可以指定版本 ID,以下载该对象的特定版本。
get_admin_info
: 获取有关 AIStor 对象存储的全面技术信息,包括状态、性能指标和配置
get_bucket_lifecycle
: 获取指定存储桶的生命周期配置,也称生命周期规则或 ILM 配置
get_bucket_replication
: 获取指定存储桶的复制配置
get_bucket_tags
: 获取指定存储桶的标签
get_bucket_versioning
: 获取指定存储桶的版本控制状态和配置
get_data_usage_info
: 获取 AIStor 对象存储的数据使用信息,包括存储的数据总量、对象数量以及各存储桶的用量
get_object_metadata
: 获取对象的详细元数据,包括内容类型、大小、自定义标头和系统属性
get_object_presigned_url
: 获取存储桶中对象的预签名 URL,并可选择设置过期时间。默认有效期为 7 天。
get_object_tags
: 获取存储桶中指定对象的所有关联标签
get_object_versions
: 获取存储桶中对象的所有版本
list_allowed_directories
: 列出允许通过服务执行操作的所有目录
list_bucket_contents
: 列出指定存储桶中的所有对象,包括其大小和最后修改日期。你还可以指定前缀来筛选对象,以及是否列出版本。
list_buckets
: 列出 AIStor 对象存储中的所有存储桶及其基本信息
list_local_files
: 列出指定本地目录路径中的所有文件和目录及其属性
move_object
: 通过先复制到目标位置再从源位置删除,将对象在存储桶之间移动。你还可以指定版本 ID,以移动该对象的特定版本。
set_bucket_tags
: 为指定存储桶设置标签
set_bucket_versioning
: 使用管理权限配置存储桶的版本控制设置
set_object_tags
: 为存储桶中的现有对象设置或更新标签,支持多个键值对。你还可以指定版本 ID,为该对象的特定版本设置标签。
text_to_object
: 将文本转换为存储桶中的对象,并支持不同的内容类型。
upload_object
: 将本地文件系统中的文件上传到指定存储桶。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。