返回市场
麦克服艺识源

麦克服艺识源

作者:minio32 星标更新:2025-05-29

项目介绍

AIStor MCP服务器

这是一个用于与AIStor对象存储进行交互的模型上下文协议(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

此MCP服务器可以与其他支持MCP的客户端一起工作,但让我们从Claude开始。 它使用STDIO传输与服务器进行交互。 请参阅下一节以了解如何使用StreamableHTTP传输配置服务器。

先决条件

  1. Claude下载并安装桌面版Claude应用程序。 此MCP服务器可以与其他支持MCP的客户端一起工作,但让我们从Claude开始。

  2. 确保您已安装并准备好在您的台式机或笔记本电脑上使用Docker或Podman。

  3. 获取您的AIStor(或MinIO)对象存储凭据(MINIO_ACCESS_KEYMINIO_SECRET_KEY)及其端点位置。 如果您没有可用的AIStor或MinIO服务器,您可以自由使用MinIO游乐场服务器的值。

配置文件

使用您喜欢的文本编辑器打开桌面版Claude的配置文件。 要找到系统中的配置文件,请遵循快速入门说明中的说明。 默认位置如下:

  • 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"
      ]
    }
  }
}

默认情况下,服务器列出并发送给LLM的对象或桶的数量限制为1000个对象。 这是为了避免触及模型上下文窗口中的标记限制。 如果您的模型允许更宽的上下文窗口,可以通过在配置文件中添加--max-keys参数来增加这个数字。 请记住,每个对象记录包含几十个标记。

配置StreamableHTTP

此MCP服务器可以与其他支持MCP和StreamableHTTP传输的客户端一起工作。

先决条件

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

  2. 确保您已安装并准备好在您的台式机或笔记本电脑上使用Docker或Podman。

  3. 获取您的AIStor(或MinIO)对象存储凭据(MINIO_ACCESS_KEYMINIO_SECRET_KEY)及其端点位置。 如果您没有可用的AIStor或MinIO服务器,您可以自由使用MinIO游乐场服务器的值。

运行服务器

运行以下命令启动服务器。 用实际值替换MINIO_ENDPOINTMINIO_ACCESS_KEYMINIO_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=_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

测试连接

检查是否可以列出服务器中可用的工具。使用客户端中的“工具”选项卡。

停止服务器

podman stop aistor-mcp-server

使用方法

这里有一些您可以执行的操作示例:

基本操作

  • "列出我AIStor服务器上的所有桶"
  • "列出测试桶的内容"

文件操作

  • "将example.pdf文件下载到我的Downloads目录"
  • "创建my-bucket桶"
  • "从Downloads上传document.pdf到my-bucket桶"

元数据操作

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

管理操作

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

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

可用工具

通常,大型语言模型(LLM)能够根据您的请求确定使用哪个工具。 有时,您可能希望明确告诉模型使用哪个工具。 为了这种情况以及让您知道使用此MCP服务器还可以做些什么,这里是此版本中可用工具的列表。

您始终可以通过点击桌面版Claude应用程序中的锤子图标来获取此列表。

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 : 从本地文件系统上传文件到指定的桶。