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

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

相关推荐
Mr -老鬼9 分钟前
Rust与Go:从学习到实战的全方位对比
学习·golang·rust
zhouzhouya2 小时前
我和TRAE的这一年:从"看不懂"到"玩得转"的AI学习进化史
前端·程序员·trae
superman超哥3 小时前
Context与任务上下文传递:Rust异步编程的信息高速公路
开发语言·rust·编程语言·context与任务上下文传递·rust异步编程
古城小栈4 小时前
Rust 已经自举,却仍需GNU与MSVC工具链的缘由
开发语言·rust
飞哥数智坊4 小时前
3位实战分享、6个案例展示,TRAE Friends@济南第二场圆满完成
人工智能·ai编程·trae
古城小栈14 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust
食尘者18 小时前
Trae 中LLM 运维场景深度评测:容器化 JVM 内存问题分析能力横向对比
aiops·trae
peterfei18 小时前
IfAI v0.2.8 技术深度解析:从"工具"到"平台"的架构演进
rust·ai编程
栈与堆1 天前
LeetCode-1-两数之和
java·数据结构·后端·python·算法·leetcode·rust
superman超哥1 天前
双端迭代器(DoubleEndedIterator):Rust双向遍历的优雅实现
开发语言·后端·rust·双端迭代器·rust双向遍历