使用说明
项目简介
AIStor MCP Server 是一个实现了 Model Context Protocol (MCP) 协议的服务端应用,它允许大语言模型 (LLM) 客户端(如 Claude for Desktop)安全、便捷地访问和操作 AIStor 对象存储系统(也兼容 MinIO)。通过 MCP 协议,该服务器向 LLM 提供结构化的上下文信息和功能,使得 LLM 可以理解和利用存储在 AIStor 中的数据。
主要功能点
- 对象存储访问: 提供桶和对象的列表、元数据获取、预签名 URL 生成等功能,使 LLM 可以检索和访问 AIStor 中存储的文件和数据。
- AI 工具集成: 内置 'ask-object' 工具,允许 LLM 提问关于对象内容的问题,支持多种文件格式,并返回上下文相关的答案,增强 LLM 的内容理解能力。
- 读写操作: 支持对象的上传、下载、删除以及桶的创建和删除等操作(写和删除操作默认关闭,需配置开启),使 LLM 具备更全面的数据管理能力。
- 管理功能: 提供集群健康状态、存储使用情况等管理信息查询功能(默认关闭,需配置开启),帮助用户监控和管理 AIStor 服务。
- 可扩展性: 基于 MCP 标准协议,易于与各种支持 MCP 协议的 LLM 客户端集成,并可通过配置灵活控制服务器的功能和权限。
安装步骤
- 准备环境: 确保已安装 Docker 或 Podman,并可以正常运行。
- 获取 AIStor/MinIO 凭证: 获取您的 AIStor 或 MinIO 对象存储的访问密钥 ('MINIO_ACCESS_KEY')、秘密密钥 ('MINIO_SECRET_KEY') 以及终端节点地址 ('MINIO_ENDPOINT')。 如果没有可用的 AIStor 或 MinIO 服务器,可以使用 MinIO Playground server 的值进行测试。
- 配置 MCP 客户端: 以 Claude for Desktop 为例,打开其配置文件 'claude_desktop_config.json'。 配置文件的默认位置:
- macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
- Windows: '%APPDATA%\Claude\claude_desktop_config.json'
- 添加服务器配置: 将以下 JSON 配置添加到 'claude_desktop_config.json' 文件中的 'mcpServers' 字段下。请替换 'REPLACE_WITH_ENDPOINT', 'REPLACE_WITH_ACCESS_KEY', 'REPLACE_WITH_SECRET_KEY' 为您的实际 AIStor/MinIO 凭证信息,并将 'YOUR_USERNAME' 替换为您的用户名。
服务器配置
以下为添加到 MCP 客户端配置文件 ('claude_desktop_config.json') 'mcpServers' 字段的服务器配置信息:
{ "mcpServers": { "aistor": { // 服务器名称,可以自定义 "command": "podman", // 运行服务器的命令,如果使用 Docker,请替换为 "docker" "args": [ "run", // podman run 命令参数 "-i", // 保持 STDIN 打开,即使未连接 "--rm", // 容器退出时自动删除容器 "-v", // 挂载卷,将宿主机的 Downloads 目录挂载到容器的 /Downloads 目录,用于文件上传下载 "/Users/YOUR_USERNAME/Downloads:/Downloads", "-e", // 设置环境变量 "MINIO_ENDPOINT=REPLACE_WITH_ENDPOINT", // AIStor/MinIO 终端节点地址,例如 "play.min.io:9000" "MINIO_ACCESS_KEY=REPLACE_WITH_ACCESS_KEY", // AIStor/MinIO 访问密钥 "MINIO_SECRET_KEY=REPLACE_WITH_SECRET_KEY", // AIStor/MinIO 秘密密钥 "MINIO_USE_SSL=true", // 是否使用 SSL 连接,通常为 true "quay.io/minio/aistor/mcp-server-aistor:latest", // AIStor MCP Server 镜像 "--allowed-directories", // 允许访问的本地目录列表 "/Downloads", "--allow-write", // 允许写操作 (可选,默认只读) "--allow-delete", // 允许删除操作 (可选,默认只读) "--allow-admin" // 允许管理操作 (可选,默认关闭) ] } } }
注意:
- '--allow-write', '--allow-delete', '--allow-admin' 等参数用于开启写操作、删除操作和管理功能。 默认情况下,服务器以只读模式运行。 请根据实际需要谨慎添加这些参数。
- '--max-keys' 参数可以用来调整服务器返回的对象或桶的最大数量, 默认值为 1000。 如果您的 LLM 的上下文窗口足够大,可以适当增加此值。
基本使用方法
配置完成后,在支持 MCP 协议的 LLM 客户端中(例如 Claude for Desktop),您可以使用自然语言指令来操作 AIStor 中的数据。
示例指令:
- "列出我 AIStor 服务器上的所有桶"
- "列出桶 test 中的内容"
- "下载文件 example.pdf 到我的 Downloads 目录"
- "创建名为 my-bucket 的桶"
- "上传 Downloads 目录下的 document.pdf 文件到桶 my-bucket"
- "获取桶 my-bucket 中文件 file.pdf 的元数据"
- "显示服务器健康状态"
- "获取存储使用统计信息"
LLM 会根据您的指令自动判断并调用相应的工具来执行操作,并返回易于理解的自然语言响应。 您也可以通过客户端的工具列表查看所有可用的工具,并显式指定工具名称来使用。
信息
分类
数据库与文件