使用说明
@afomera/s3 mcp
轻量级 主控程序 允许AI编码代理将文件上传到任何与S3兼容的bucket并获取公共URL的服务器。与 Cloudflare R2 的, AWS S3, MinIO, 数字海洋空间, 回火B2, 芥末,以及任何其他S3兼容提供商。
主要用例:在公关审查期间上传截图、图像和其他资产,然后将网址粘贴到GitHub评论和问题中。
快速开始
Cloudflare R2 的
claude mcp add s3-mcp \
-s user \
-e S3_ENDPOINT=https://<account_id>.r2.cloudflarestorage.com \
-e S3_ACCESS_KEY_ID=your_key \
-e S3_SECRET_ACCESS_KEY=your_secret \
-e S3_BUCKET=my-assets \
-e S3_PUBLIC_URL=https://assets.example.com \
-- npx -y @afomera/s3-mcp
AWS S3
claude mcp add s3-mcp \
-s user \
-e S3_ENDPOINT=https://s3.us-east-1.amazonaws.com \
-e S3_REGION=us-east-1 \
-e S3_ACCESS_KEY_ID=AKIA... \
-e S3_SECRET_ACCESS_KEY=your_secret \
-e S3_BUCKET=my-assets \
-e S3_PUBLIC_URL=https://my-assets.s3.amazonaws.com \
-- npx -y @afomera/s3-mcp
MinIO(本地开发)
claude mcp add s3-mcp \
-s user \
-e S3_ENDPOINT=http://localhost:9000 \
-e S3_REGION=us-east-1 \
-e S3_ACCESS_KEY_ID=minioadmin \
-e S3_SECRET_ACCESS_KEY=minioadmin \
-e S3_BUCKET=dev-assets \
-e S3_PUBLIC_URL=http://localhost:9000/dev-assets \
-- npx -y @afomera/s3-mcp
数字海洋空间
claude mcp add s3-mcp \
-s user \
-e S3_ENDPOINT=https://nyc3.digitaloceanspaces.com \
-e S3_REGION=nyc3 \
-e S3_ACCESS_KEY_ID=your_key \
-e S3_SECRET_ACCESS_KEY=your_secret \
-e S3_BUCKET=my-space \
-e S3_PUBLIC_URL=https://my-space.nyc3.digitaloceanspaces.com \
-- npx -y @afomera/s3-mcp
团队分享(.mcp.json)
添加到您的项目 .mcp.json 因此,整个团队会自动获取MCP服务器:
{
"mcpServers": {
"s3-mcp": {
"command": "npx",
"args": ["-y", "@afomera/s3-mcp"],
"env": {
"S3_ENDPOINT": "${S3_ENDPOINT}",
"S3_ACCESS_KEY_ID": "${S3_ACCESS_KEY_ID}",
"S3_SECRET_ACCESS_KEY": "${S3_SECRET_ACCESS_KEY}",
"S3_BUCKET": "${S3_BUCKET}",
"S3_PUBLIC_URL": "${S3_PUBLIC_URL}"
}
}
}
}
每个团队成员在他们的环境中设置实际值。
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
S3_ENDPOINT |
是 | S3兼容提供商的完整端点URL |
S3_ACCESS_KEY_ID |
是 | 访问密钥 |
S3_SECRET_ACCESS_KEY |
是 | 密钥 |
S3_BUCKET |
是 | 存储桶名称 |
S3_PUBLIC_URL |
是 | bucket的公共基URL |
S3_REGION |
否 | 地区(默认为 auto) |
S3_PATH_PREFIX |
否 | 所有键都有自动前缀(例如。 uploads/) |
工具
upload_file
将本地文件上传到bucket并返回其公共URL。
{ "file_path": "/path/to/screenshot.png" }
退货: { "url": "https://...", "key": "...", "size": 45230, "content_type": "image/png" }
upload_base64
直接上传base64编码的数据。
{ "data": "iVBORw0KGgo...", "filename": "screenshot.png" }
upload_from_url
从URL获取一个文件并将其上传到bucket。
{ "url": "https://ci.example.com/artifacts/screenshot.png" }
list_files
列出存储桶中的文件,可选择按前缀过滤。
{ "prefix": "20250207", "max_results": 20 }
delete_file
从bucket中删除文件。
{ "key": "20250207-a1b2c3-screenshot.png" }
许可证
麻省理工学院