如何用 Trae + RustFS MCP 实现自然语言对对象存储的操作?

MCP 被认为是 AI 时代的 "HTTP",可以让用户通过自然语言对资源进行操作。RustFS MCP Server 能够对 RustFS 的资源(存储桶、对象等)进行操作。本文分享 RustFS MCP 在 Trae 中的配置使用。

关于 RustFS

RustFS 是用 Rust 编写的一款开源对象存储系统,在 GitHub 上开源仅一个月 Star 数就突破 7000+。RustFS 是 MinIO 的国产平替,完全兼容 S3。目前支持多个平台,Linux、Windows、macOS,可以用二进制或 Docker 进行安装部署。

RustFS MCP

RustFS MCP 服务器是一个高性能的模型上下文协议(MCP) 服务器,它为 AI/LLM 工具提供对 S3 兼容对象存储操作的无缝访问。该服务器使用 Rust 构建,以实现最大的性能和安全性,它使像 Claude Desktop 这样的 AI 助手能够通过标准化协议与云存储进行交互。

可用的工具

  • list_buckets:列出所有当前所配 RustFS 实例上的存储桶;
  • list_objects:列出当前所配 RustFS 实例上的对象;
  • upload_file:上传文件到当前所配 RustFS 实例上的存储桶中;
  • get_object:获取当前所配 RustFS 实例上的对象(读取内容或下载);

RustFS MCP 的使用

RustFS MCP 支持在 Docker 中运行。下面分享整个使用过程。

前提条件
  • Docker 环境;
  • RustFS 凭据配置(可通过环境变量配置或使用 AWS CLI 等)。对于 RustFS 凭据的创建,可以参考 RustFS 访问密钥管理章节;
  • 一个可用的 RustFS 实例。
Docker 镜像构建

执行如下命令可完成 RustFS MCP Server Docker 镜像的构建:

bash 复制代码
# clone the repository
git clone git@github.com:rustfs/rustfs.git

# build docker image from root directory
docker build -f crates/mcp/Dockerfile -t rustfs/rustfs-mcp .

# build docker image from mcp directory
docker build -f Dockerfile -t rustfs/rustfs-mcp ../../
在 Trae 中使用

Trae 是字节跳动发布的一款 AI IDE,是 AI Coding(或称之为 Vibe Coding)领域非常流行的一款 AI 工具。Trae 支持 MCP。在 Trae 的 MCP 配置中,写入如下内容:

json 复制代码
{
  "mcpServers": {
    "rustfs-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "AWS_ACCESS_KEY_ID",
        "-e",
        "AWS_SECRET_ACCESS_KEY",
        "-e",
        "AWS_REGION",
        "-e",
        "AWS_ENDPOINT_URL",
        "rustfs/rustfs-mcp"
      ],
      "env": {
        "AWS_ACCESS_KEY_ID": "rustfs_access_key",
        "AWS_SECRET_ACCESS_KEY": "rustfs_secret_key",
        "AWS_REGION": "cn-east-1",
        "AWS_ENDPOINT_URL": "rustfs_instance_url"
      }
    }
  }
}

注意 :由于 RustFS 完全兼容 S3,是 MinIO 的平替,所以在变量的使用上和 S3、MinIO 都很相似。

添加成功,可以在 Trae MCP 的页面中,看到可用的工具:

接着在 Trae 的聊天窗口中,输入如下提示词:

复制代码
请帮我列出当前 RustFS 实例上所有的存储桶,谢谢!

可以看到,Trae 调用了 RustFS MCP 中的 list_buckets 工具,找出了所配 RustFS 实例上所有的存储桶:

再来给一个提示词,列出某个存储桶下面的数据:

arduino 复制代码
在帮我看一下 ai-image bucket 中有什么数据?

可以看到,Trae 调用了 RustFS MCP 中的 list_objects 工具,列出了 ai-image 存储桶汇中的数据,是一个 PNG 图片,而且将其保存到了本地:

对于其他两个工具的使用也是一样。

相关推荐
geovindu4 分钟前
rust: Abstract Factory pattern
开发语言·后端·设计模式·rust·抽象工厂模式
Hi202402175 小时前
同一个 NMS 算子,两种语言实现:CUDA C 与 Rust 生成 LLVM IR 和 Vortex 汇编的差异
c语言·汇编·rust·gpgpu·vortex·cudac
滕州市燕猫虎计算机科技工作室个体工商户5 小时前
《Rust程序设计》学习笔记一
开发语言·rust·学习笔记·rust程序设计
小道士写程序8 小时前
Windows Rust 环境安装指导
开发语言·windows·rust
leikooo2 天前
用餐厅和盘子理解栈和堆
java·数据结构·链表·rust
@大迁世界2 天前
JEV RAG:更高效的 RAG 系统解决方案?
开发语言·rust
进击的雷神2 天前
OpenClaw 太重、启动太慢?我试了试这个 Rust 重写的轻量版 AI 助手网关
开发语言·人工智能·rust·zeroclaw
选择即世界2 天前
高性能的 SGLang Rust 运行时
rust