Skip to content

Commit ce216de

Browse files
committed
fix error text
1 parent f5256a1 commit ce216de

File tree

1 file changed

+186
-0
lines changed

1 file changed

+186
-0
lines changed

docs/zh/instruction/mcp.md

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
## 📖 概述
2+
3+
**RustFS MCP 服务器**是一个高性能的 [模型上下文协议(MCP)](https://spec.modelcontextprotocol.org) 服务器,它为 AI/LLM 工具提供对 S3 兼容对象存储操作的无缝访问。该服务器使用 Rust 构建,以实现最大的性能和安全性,它使像 Claude Desktop 这样的 AI 助手能够通过标准化协议与云存储进行交互。
4+
5+
### 什么是 MCP?
6+
7+
模型上下文协议是一个开放标准,它使 AI 应用程序能够与外部系统建立安全、受控的连接。该服务器充当 AI 工具和 S3 兼容存储服务之间的桥梁,提供对文件操作的结构化访问,同时保持安全性和可观察性。
8+
9+
10+
## ✨ 特性
11+
12+
### 支持的 S3 操作
13+
14+
- **列出存储桶**:列出所有可访问的 S3 存储桶
15+
- **列出对象**:通过可选的前缀过滤浏览存储桶内容
16+
- **上传文件**:上传本地文件,并自动检测 MIME 类型和缓存控制
17+
- **获取对象**:从 S3 存储中检索对象,支持读取或下载模式
18+
19+
20+
## 🔧 安装
21+
22+
### 先决条件
23+
24+
- Rust 1.88+(用于从源代码构建)
25+
- 已配置 AWS 凭据(通过环境变量、AWS CLI 或 IAM 角色)
26+
- 访问 S3 兼容存储服务
27+
28+
### 从源代码构建
29+
30+
```bash
31+
# 克隆仓库
32+
git clone https://github.com/rustfs/rustfs.git
33+
cd rustfs
34+
35+
# 构建 MCP 服务器
36+
cargo build --release -p rustfs-mcp
37+
38+
# 二进制文件将在以下路径可用
39+
./target/release/rustfs-mcp
40+
```
41+
42+
43+
## ⚙️ 配置
44+
45+
### 环境变量
46+
47+
```bash
48+
# AWS 凭据(必填)
49+
export AWS_ACCESS_KEY_ID=您的访问密钥
50+
export AWS_SECRET_ACCESS_KEY=您的密钥
51+
export AWS_REGION=us-east-1 # 可选,默认为 us-east-1
52+
53+
# 可选:自定义 S3 端点(用于 MinIO 等)
54+
export AWS_ENDPOINT_URL=http://localhost:9000
55+
56+
# 日志级别(可选)
57+
export RUST_LOG=info
58+
```
59+
60+
### 命令行选项
61+
62+
```bash
63+
rustfs-mcp --help
64+
```
65+
66+
服务器支持各种命令行选项来定制行为:
67+
68+
- `--access-key-id`:S3 认证的 AWS 访问密钥 ID
69+
- `--secret-access-key`:S3 认证的 AWS 密钥
70+
- `--region`:用于 S3 操作的 AWS 区域(默认:us-east-1)
71+
- `--endpoint-url`:自定义 S3 端点 URL(用于 MinIO、LocalStack 等)
72+
- `--log-level`:日志级别配置(默认:rustfs\_mcp\_server=info)
73+
74+
-----
75+
76+
## 🚀 使用
77+
78+
### 启动服务器
79+
80+
```bash
81+
# 启动 MCP 服务器
82+
rustfs-mcp
83+
84+
# 或使用自定义选项
85+
rustfs-mcp --log-level debug --region us-west-2
86+
```
87+
88+
### 与聊天客户端集成
89+
90+
#### 选项 1:使用命令行参数
91+
92+
```json
93+
{
94+
"mcpServers": {
95+
"rustfs-mcp": {
96+
"command": "/path/to/rustfs-mcp",
97+
"args": [
98+
"--access-key-id", "您的访问密钥",
99+
"--secret-access-key", "您的密钥",
100+
"--region", "us-west-2",
101+
"--log-level", "info"
102+
]
103+
}
104+
}
105+
}
106+
```
107+
108+
#### 选项 2:使用环境变量
109+
110+
```json
111+
{
112+
"mcpServers": {
113+
"rustfs-mcp": {
114+
"command": "/path/to/rustfs-mcp",
115+
"env": {
116+
"AWS_ACCESS_KEY_ID": "您的访问密钥",
117+
"AWS_SECRET_ACCESS_KEY": "您的密钥",
118+
"AWS_REGION": "us-east-1"
119+
}
120+
}
121+
}
122+
}
123+
```
124+
125+
126+
## 🛠️ 可用工具
127+
128+
MCP 服务器公开了 AI 助手可以使用的以下工具:
129+
130+
### `list_buckets`
131+
132+
列出使用已配置凭据可访问的所有 S3 存储桶。
133+
134+
**参数**:无
135+
136+
### `list_objects`
137+
138+
列出 S3 存储桶中的对象,支持可选的前缀过滤。
139+
140+
**参数**
141+
142+
- `bucket_name` (字符串):S3 存储桶的名称
143+
- `prefix` (字符串, 可选):用于过滤对象的前缀
144+
145+
### `upload_file`
146+
147+
将本地文件上传到 S3,并自动检测 MIME 类型。
148+
149+
**参数**
150+
151+
- `local_file_path` (字符串):本地文件路径
152+
- `bucket_name` (字符串):目标 S3 存储桶
153+
- `object_key` (字符串):S3 对象键(目标路径)
154+
- `content_type` (字符串, 可选):内容类型(如果未提供则自动检测)
155+
- `storage_class` (字符串, 可选):S3 存储类别
156+
- `cache_control` (字符串, 可选):缓存控制头
157+
158+
### `get_object`
159+
160+
从 S3 检索对象,有两种操作模式:直接读取内容或下载到文件。
161+
162+
**参数**
163+
164+
- `bucket_name` (字符串):源 S3 存储桶
165+
- `object_key` (字符串):S3 对象键
166+
- `version_id` (字符串, 可选):版本化对象的版本 ID
167+
- `mode` (字符串, 可选):操作模式 - "read"(默认)直接返回内容,"download" 保存到本地文件
168+
- `local_path` (字符串, 可选):本地文件路径(当模式为 "download" 时必填)
169+
- `max_content_size` (数字, 可选):读取模式的最大内容大小(字节)(默认:1MB)
170+
171+
172+
## 架构
173+
174+
MCP 服务器采用模块化架构构建:
175+
176+
```
177+
rustfs-mcp/
178+
├── src/
179+
│ ├── main.rs # 入口点、CLI 解析和服务器初始化
180+
│ ├── server.rs # MCP 服务器实现和工具处理器
181+
│ ├── s3_client.rs # 带有异步操作的 S3 客户端包装器
182+
│ ├── config.rs # 配置管理和 CLI 选项
183+
│ └── lib.rs # 库导出和公共 API
184+
└── Cargo.toml # 依赖项、元数据和二进制配置
185+
```
186+

0 commit comments

Comments
 (0)