关于 R2 Upload MCP Server
R2 Upload MCP Server 是将本地文件上传到 Cloudflare R2 存储的 MCP 服务,面向需要通过 Agent 上传文件的用户。它可自动识别 MIME 类型,并返回文件的公开 URL。
主要功能
- 01上传文件到 R2 存储桶
- 02自动检测 MIME 类型
- 03支持自定义对象键和内容类型
- 04返回公开文件 URL
- 05通过环境变量配置
适用场景
- 01上传图片并获取公开链接
- 02将文档存入 R2 存储桶
- 03为上传文件指定对象键或内容类型
MCP 相关
它通过 stdio 向 MCP 客户端提供 `upload_file` 工具,将本地文件上传到配置的 R2 存储桶并返回公开 URL。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
R2 上传 MCP 服务
一个用于将文件上传到 Cloudflare R2 存储的模型上下文协议(MCP)服务。
功能
- 将文件上传到 R2 存储桶,并自动检测 MIME 类型
- 支持自定义对象键和内容类型
- 返回已上传文件的公开 URL
- 支持通过环境变量配置
安装
cd apps/r2-upload
pnpm install
pnpm build
配置
服务会根据环境变量自动完成配置。请设置以下必需的环境变量:
必需的环境变量
R2_ACCOUNT_ID:你的 Cloudflare 账户 IDR2_ACCESS_KEY_ID:R2 API 访问密钥 IDR2_SECRET_ACCESS_KEY:R2 API 访问密钥R2_BUCKET_NAME:R2 存储桶名称
可选的环境变量
R2_ENDPOINT:自定义端点 URL(默认为https://{accountId}.r2.cloudflarestorage.com)R2_CUSTOM_DOMAIN:公开文件 URL 的自定义域名(默认为 R2 开发域名)
获取 R2 凭据
- 登录 Cloudflare 控制面板
- 前往 R2 对象存储
- 如果尚未创建 R2 存储桶,请先创建
- 前往“Manage R2 API tokens”
- 创建一个对你的存储桶具有读写权限的新 API 令牌
- 记下访问密钥 ID 和访问密钥
工具
upload_file
将文件上传到已配置的 R2 存储桶。
参数:
filePath(必需):要上传的本地文件路径key(可选):存储桶中的对象键/名称(默认为文件名)contentType(可选):文件的 MIME 类型(如果未提供则自动检测)
使用示例
配置好环境变量后,你可以直接上传文件:
{
"filePath": "/path/to/your/file.jpg",
"key": "uploads/my-image.jpg"
}
支持的文件类型
服务会自动检测常见文件扩展名对应的 MIME 类型:
- 图片:.jpg、.jpeg、.png、.gif、.webp
- 文档:.pdf、.txt、.json、.html、.css
- 脚本:.js
- 视频:.mp4、.mov、.avi
- 音频:.mp3、.wav
对于其他文件类型,默认使用 application/octet-stream,也可以指定自定义的 contentType。
MCP 配置
将以下内容添加到你的 mcp.json 配置文件中:
{
"mcpServers": {
"r2-upload": {
"command": "node",
"args": ["./apps/r2-upload/dist/index.js"],
"env": {
"R2_ACCOUNT_ID": "your-cloudflare-account-id",
"R2_ACCESS_KEY_ID": "your-r2-access-key-id",
"R2_SECRET_ACCESS_KEY": "your-r2-secret-access-key",
"R2_BUCKET_NAME": "your-bucket-name",
"R2_ENDPOINT": "https://your-account-id.r2.cloudflarestorage.com",
"R2_CUSTOM_DOMAIN": "files.yourdomain.com"
}
}
}
}
环境变量
在 MCP 配置中设置这些环境变量以配置服务。如果所有必需的环境变量都已设置,服务即可立即上传文件。
自定义域名设置
如果你已为 R2 存储桶配置自定义域名(例如 files.yourdomain.com),请设置 R2_CUSTOM_DOMAIN 环境变量。服务将使用你的自定义域名而非默认的 R2 开发域名来返回公开 URL。
运行服务
# Build first
pnpm build
# Run standalone
pnpm start
该服务以 stdio MCP 服务的形式运行,并通过 stdin/stdout 进行通信。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。