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

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

相关推荐
p***434810 小时前
Rust网络编程模型
开发语言·网络·rust
2***656312 小时前
数据库操作与数据管理——Rust 与 SQLite 的集成
数据库·rust·sqlite
q***318315 小时前
Windows安装Rust环境(详细教程)
开发语言·windows·rust
围巾哥萧尘16 小时前
🚀TRAE SOLO 实战干货:从零到一部署国内版“拍立得”应用的踩坑避坑指南🧣
trae
惜棠17 小时前
visual code + rust入门指南
开发语言·后端·rust
n***i9517 小时前
Rust在嵌入式系统中的内存管理
开发语言·后端·rust
7***533418 小时前
Rust错误处理模式
开发语言·后端·rust
kungggyoyoyo19 小时前
TRAE中国版SOLO模式上线!我用它从0到1开发了一款AI小说编辑器
前端·vue.js·trae
围巾哥萧尘19 小时前
🚀TRAE SOLO Coder :网页版“切水果”游戏开发实录,基于手势识别的互动游戏制作🧣
trae
4***149019 小时前
Rust系统工具开发实践指南
开发语言·后端·rust