Wasabi MCP服务器
](https://www.npmjs.com/package/wasabi-mcp)
一种用于交互的模型上下文协议(MCP)服务器 芥末 云存储。该服务器提供了通过MCP接口管理Wasabi桶和对象的工具,实现了与Claude Code和其他MCP兼容应用程序的集成。
v2.0-流式HTTP传输
此版本使用现代 可流式HTTP传输 代替stdio,使其适用于:
- 作为独立的HTTP服务器运行
- 通过MCP聚合器连接
- 与支持基于HTTP的MCP服务器的工具集成
特性
整合工具(3个工具而不是10个)
| 工具 | 操作 | 描述 |
|---|---|---|
bucket | 列表、创建、删除、定位 | 管理Wasabi水桶 |
object | 列表、上传、下载、删除、元数据 | 管理bucket中的对象 |
presign | get,put | 生成用于临时访问的预签名URL |
安装
来自NPM
npm install -g wasabi-mcp来源
git clone https://github.com/danielrosehill/Wasabi-S3-MCP.git
cd Wasabi-S3-MCP
npm install
npm run build配置
环境变量
服务器需要以下环境变量:
| 变量 | 描述 | 示例 |
|---|---|---|
WASABI_ACCESS_KEY_ID | 您的Wasabi访问密钥 | AKIAIOSFODNN7EXAMPLE |
WASABI_SECRET_ACCESS_KEY | 你的Wasabi密钥 | wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY |
WASABI_REGION | Wasabi地区 | eu-central-2 |
WASABI_ENDPOINT | Wasabi端点URL | s3.eu-central-2.wasabisys.com |
PORT | 服务器端口(可选) | 3000 (默认) |
Wasabi地区
常见的Wasabi地区及其终点:
| 区域 | 端点 |
|---|---|
us-east-1 | s3.us-east-1.wasabisys.com |
us-east-2 | s3.us-east-2.wasabisys.com |
us-central-1 | s3.us-central-1.wasabisys.com |
us-west-1 | s3.us-west-1.wasabisys.com |
eu-central-1 | s3.eu-central-1.wasabisys.com |
eu-central-2 | s3.eu-central-2.wasabisys.com |
eu-west-1 | s3.eu-west-1.wasabisys.com |
eu-west-2 | s3.eu-west-2.wasabisys.com |
ap-northeast-1 | s3.ap-northeast-1.wasabisys.com |
ap-northeast-2 | s3.ap-northeast-2.wasabisys.com |
ap-southeast-1 | s3.ap-southeast-1.wasabisys.com |
ap-southeast-2 | s3.ap-southeast-2.wasabisys.com |
运行服务器
启动服务器
# Set environment variables first, then:
npm start
# Or run directly:
PORT=3000 node dist/index.js服务器将于启动 http://localhost:3000/mcp 健康检查在 http://localhost:3000/health.
使用Claude代码
JSON配置
添加到您的Claude Code MCP设置中(~/.config/claude-code/settings.json 或项目级别):
{
"mcpServers": {
"wasabi": {
"url": "http://localhost:3000/mcp",
"transport": "streamable-http"
}
}
}注: 在使用Claude Code之前,您必须单独启动服务器。
替代方案:使用环境变量运行服务器
创建一个 .env 文件:
WASABI_ACCESS_KEY_ID=your_access_key
WASABI_SECRET_ACCESS_KEY=your_secret_key
WASABI_REGION=eu-central-2
WASABI_ENDPOINT=s3.eu-central-2.wasabisys.com
PORT=3000然后启动服务器:
npm startapi参考
桶
管理Wasabi水桶。
参数:
action(字符串,必填):其中之一list,create,delete,locationname(string):Bucket名称(创建、删除、定位时需要)
示例:
// List all buckets
{ "action": "list" }
// Create a bucket
{ "action": "create", "name": "my-new-bucket" }
// Delete a bucket
{ "action": "delete", "name": "my-bucket" }
// Get bucket location
{ "action": "location", "name": "my-bucket" }______________________________________________________________________
对象
管理Wasabi桶中的对象。
参数:
action(字符串,必填):其中之一list,upload,download,delete,metadatabucket(字符串,必填):存储桶名称key(string):对象键/路径(上传、下载、删除、元数据需要)local_path(string):本地文件路径(上传和下载需要)prefix(string):列表操作的筛选器前缀max_keys(number):返回的最大对象数(默认值:1000)content_type(string):上传的MIME类型
示例:
// List objects
{ "action": "list", "bucket": "my-bucket" }
// List with prefix
{ "action": "list", "bucket": "my-bucket", "prefix": "reports/", "max_keys": 100 }
// Upload a file
{ "action": "upload", "bucket": "my-bucket", "key": "docs/report.pdf", "local_path": "/home/user/report.pdf" }
// Download a file
{ "action": "download", "bucket": "my-bucket", "key": "docs/report.pdf", "local_path": "/home/user/downloads/report.pdf" }
// Delete an object
{ "action": "delete", "bucket": "my-bucket", "key": "docs/old-report.pdf" }
// Get metadata
{ "action": "metadata", "bucket": "my-bucket", "key": "docs/report.pdf" }______________________________________________________________________
预签名
生成用于临时访问的预签名URL。
参数:
bucket(字符串,必填):存储桶名称key(字符串,必填):对象键/路径operation(字符串):get(下载)或put(上传)。违约:getexpires_in(数字):URL过期时间(秒)(默认值:3600)content_type(string):PUT操作的内容类型
示例:
// Generate download URL
{ "bucket": "my-bucket", "key": "docs/report.pdf" }
// Generate download URL with custom expiration
{ "bucket": "my-bucket", "key": "docs/report.pdf", "expires_in": 7200 }
// Generate upload URL
{ "bucket": "my-bucket", "key": "uploads/new-file.pdf", "operation": "put", "content_type": "application/pdf" }Claude使用示例
配置后,使用自然语言和Claude Code:
列出Buckets
List all my Wasabi buckets创建一个Bucket
Create a new Wasabi bucket called "my-backup"上传文件
Upload ~/documents/report.pdf to bucket "my-backup" with key "reports/2025/report.pdf"下载文件
Download "reports/2025/report.pdf" from bucket "my-backup" to ~/Downloads/生成预签名URL
Generate a presigned URL for "reports/2025/report.pdf" in "my-backup" that expires in 2 hours列出带前缀的对象
List all objects in "my-backup" bucket that start with "reports/"安全说明
- 从不将凭据提交到版本控制
- 使用环境变量或安全凭据管理
- 预签名URL提供临时访问-将其视为敏感URL
- 考虑使用IAM策略来限制bucket/对象访问
故障排除
服务器未启动
- 验证是否已设置所有环境变量
- 检查您的Wasabi凭证是否有效
- 确保端点与您的地区匹配
连接错误
- 验证您所在地区的端点URL是否正确
- 检查与Wasabi的网络连接
- 确认您的凭据具有适当的权限
上传/下载失败
- 验证文件路径是否存在并且可访问
- 检查存储桶权限
- 确保铲斗存在
许可证
麻省理工学院
作者
丹尼尔·罗斯希尔(public@danielrosehill.com)
贡献
问题和拉取请求欢迎访问 .
