如何用 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 图片,而且将其保存到了本地:

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

相关推荐
geovindu7 分钟前
rust:Builder Pattern
开发语言·设计模式·rust·建造者模式
传奇开心果编程4 小时前
【Rust入门知识点学与练】第33课:异步编程入门(async/await)强化
开发语言·学习·rust
传奇开心果编程4 小时前
【Rust入门知识点学与练】第34课:所有权与借用
开发语言·学习·rust
柒儿吖5 小时前
SSCom 重构全记录:用 Rust 把串口调试助手送上鸿蒙 PC、macOS、Windows和Linux
测试工具·rust·harmonyos
Kapaseker6 小时前
Rust 为什么越来越受欢迎?开发者角度谈
rust
孙启超6 小时前
【AI开发之Rust】第 6 课:结构体、枚举与方法 —— 开始定义自己的类型
开发语言·人工智能·后端·ai·rust
foolishlee6 小时前
Rust 下载依赖包
rust
蓝宝石的傻话6 小时前
MiBee Eye 蜂眼:把闲置的 Linux 小板做成一台能进国标平台的摄像头
golang·rust
传奇开心果编程7 小时前
【Rust入门知识点学与练】第36课:所有权——移动、借用、Copy、切片
开发语言·学习·rust
传奇开心果编程7 小时前
【Rust入门知识点学与练】第35课:工具链与反馈环——先学会读编译器在说什么
开发语言·学习·rust