mcp-server-aistor

Official
by minio
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Supports running the MCP server in Docker containers, allowing containerized deployment and access to object storage services.

  • Provides support for macOS environments, with specific configuration paths and integration with the macOS file system.

  • Enables interaction with MinIO object storage, allowing users to manage buckets and objects, perform file operations, access metadata, generate presigned URLs, and retrieve administrative information about the storage cluster.

AIStor MCP服务器

这是一个用于与 AIStor 对象存储交互的模型上下文协议 (MCP) 服务器。

有关 MCP 的更多信息可以在其官方网站上找到。

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

特征

读取操作

  • 列出存储桶
  • 列出存储桶中的对象
  • 获取对象的元数据和标签
  • 为对象创建具有有效期的预签名 URL

AI操作

  • 使用ask-object函数描述对象的内容

写入操作

应使用配置中的--allow-write标志来启用这些操作。

  • 创建存储桶
  • 将对象上传到存储桶
  • 为对象添加标签

删除操作

应使用配置中的--allow-delete标志来启用这些操作。

  • 删除对象
  • 删除存储桶

管理员操作

应使用配置中的--allow-admin标志来启用这些操作。

  • 以人类可读的形式获取集群信息(配置、健康状态、可用空间)

配置

先决条件

  1. Claude下载并安装 Claude 桌面版应用程序。此 MCP 服务器可与其他支持 MCP 的客户端配合使用,但我们先从 Claude 开始。
  2. 确保您已安装 Docker 或 Podman 并准备在您的台式机/笔记本电脑上使用。
  3. 获取你的 AIStor(或 MinIO)对象存储凭证( MINIO_ACCESS_KEYMINIO_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

将以下行添加到配置文件中,将 credentials、endpoint 和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" ] } } }

默认情况下,服务器列出并发送到 LLM 的对象或存储桶数量限制为 1000 个。这样做是为了避免达到模型上下文窗口(以令牌为单位)的限制。如果您的模型允许更宽的上下文窗口,您可以通过在配置文件中添加--max-keys参数来增加此数量。请记住,每个对象记录包含数十个令牌。

用法

以下是您可以执行的操作的一些示例:

基本操作

  • “列出我的 AIStor 服务器上的所有存储桶”
  • “列出桶测试的内容”

文件操作

  • “将文件 example.pdf 下载到我的下载目录”
  • “创建一个存储桶 my-bucket”
  • “将 document.pdf 从下载上传到存储桶 my-bucket”

元数据操作

  • “获取存储桶 my-bucket 中 file.pdf 的元数据”
  • “列出对象 config.json 的所有标签”

管理员操作

  • “显示服务器健康状态”
  • “获取存储使用情况统计信息”

每个命令都会返回包含相关信息的人类可读的响应。

可用工具

通常,大型语言模型 (LLM) 能够确定要使用哪个工具来处理您的请求。有时,您可能需要明确告知模型要使用哪个工具。针对这种情况,也为了让您了解此 MCP 服务器还有哪些其他功能,以下是此版本中可用的工具列表。

您可以随时通过单击 Claude for Desktop 应用程序中的锤子图标来获取此列表。

ask-object :使用 AI 询问有关对象内容的问题,支持各种文件格式并返回上下文答案

copy-object :将对象从一个存储桶复制到另一个存储桶,同时保留元数据并根据需要修改属性。您还可以指定版本 ID 来复制对象的特定版本。

create-bucket :使用指定的配置和可选的版本控制设置创建一个新的 bucket

delete-bucket :删除存储桶并选择性地强制删除其包含的所有对象

delete-object :从存储桶中删除特定对象或版本,并可选地支持软删除。您还可以指定版本 ID 来删除对象的特定版本。

download-object :将对象从指定的存储桶下载到本地文件系统,并保留元数据。您还可以指定版本 ID 来下载对象的特定版本。

get-admin-info :获取有关 AIStor 对象存储的全面技术信息,包括状态、性能指标和配置

get-bucket-lifecycle :获取指定 bucket 的生命周期(也称为生命周期规则,也称为 ILM 配置)

get-bucket-replication :获取指定 bucket 的复制配置

get-bucket-tags :获取指定 bucket 的标签

get-bucket-versioning :获取指定 bucket 的版本控制状态和配置

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,为特定版本的对象设置标签。

upload-object :将文件从本地文件系统上传到指定的存储桶,支持元数据和标签

ID: ou30p8kwqr