mcpField
A
AIStor MCP server

AIStor MCP server

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

关于 AIStor MCP server

AIStor MCP server 是用于与 AIStor 对象存储交互的官方 MCP 服务。它支持读取、写入、删除和管理员操作,并通过 --allow-* 参数分级开放权限,默认只读。适合需要通过 LLM 管理对象存储的用户。

主要功能

  1. 01列出存储桶与对象,获取元数据和标签
  2. 02通过 ask_object 工具让 AI 描述对象内容
  3. 03按参数开启写入、删除与管理员操作
  4. 04支持 STDIO 与 StreamableHTTP 传输

适用场景

  1. 01通过 Claude for Desktop 查询 AIStor 中的存储桶和对象
  2. 02上传、复制或移动对象并设置标签
  3. 03查看集群健康状态与存储使用情况

MCP 相关

该服务向 MCP 客户端暴露存储桶、对象、标签、预签名 URL 及管理信息等工具,客户端可借此操作 AIStor 对象存储。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"aistor": {
"command": "docker",
"args": [
"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:latest"
],
"env": {
"MINIO_ENDPOINT": "<MINIO_ENDPOINT>",
"MINIO_ACCESS_KEY": "<MINIO_ACCESS_KEY>",
"MINIO_SECRET_KEY": "<MINIO_SECRET_KEY>",
"MINIO_USE_SSL": "<MINIO_USE_SSL>"
}
}
}
}
启动命令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:latest
需要配置的环境变量
MINIO_ENDPOINT
MINIO_ACCESS_KEY密钥
MINIO_SECRET_KEY密钥
MINIO_USE_SSL

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ociquay.io/minio/aistor/mcp-server-aistor:latest

工具

还没有获取到工具列表

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

详细介绍

AIStor MCP 服务

这是一个用于与 AIStor 对象存储交互的 Model Context Protocol(MCP)服务。

有关 MCP 的更多信息,请访问其官方网站。

有关 AIStor MCP 服务的更多信息,请参阅我们的博客文章:

更新

  • 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 传输配置服务的说明,请参阅下一节。

前提条件
  1. 从 Claude 下载并安装 Claude for Desktop 应用。 此 MCP 服务也适用于其他支持 MCP 的客户端,但我们先从 Claude 开始。

  2. 确保已在桌面电脑或笔记本电脑上安装并准备好使用 Docker 或 Podman。

  3. 获取 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 客户端配合使用。

前提条件
  1. 下载并安装支持 MCP 和 StreamableHTTP 的 LLM 客户端。 例如,你可以使用 Cherry Studio。

  2. 确保已在桌面设备或笔记本电脑上安装并准备好 Docker 或 Podman。

  3. 获取 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 : 将本地文件系统中的文件上传到指定存储桶。

评论

支持 Markdown

第一次接触 MCP?

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

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