S3文件上传服务

一个轻量级的MCP服务器,允许AI编码代理将文件上传到任何S3兼容的存储桶并获取公共URL。

  • by afomera
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 afomera/s3-mcp

使用说明

@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" }

许可证

麻省理工学院