Overview

Overview

site icon
2025.04.14 0
PythonS3 管理文件存储文件管理
s3-mcp 是一个用于管理 Amazon S3 存储桶和对象的服务。它提供了丰富的功能,包括管理存储桶生命周期配置、设置和检索对象标签、管理存储桶策略以及配置 CORS 设置等。该服务适用于需要高效管理 S3 存储资源的开发者和团队。
View on GitHub

Overview

基本能力

产品定位

s3-mcp 是一个用于管理 Amazon S3 存储桶和对象的服务,旨在简化 S3 资源的管理和操作。

核心功能

  • 存储桶管理:创建、列出、删除存储桶,以及管理存储桶策略和生命周期配置。
  • 对象管理:上传、下载、删除对象,以及设置和检索对象标签。
  • 高级功能:生成预签名 URL、配置 CORS 规则、复制对象等。

适用场景

  • 需要自动化管理 S3 存储桶和对象的开发团队。
  • 需要频繁上传、下载和管理 S3 对象的应用程序。
  • 需要设置复杂存储桶策略和生命周期规则的企业用户。

工具列表

  • list_buckets:列出所有 S3 存储桶。
  • create_bucket:创建新的 S3 存储桶。
  • list_objects:列出指定存储桶中的所有对象。
  • get_object:检索指定对象的内容。
  • put_object:上传对象到指定存储桶。
  • delete_object:从指定存储桶中删除对象。
  • generate_presigned_url:生成预签名 URL。
  • set_bucket_policy:设置存储桶策略。
  • get_bucket_policy:获取存储桶策略。
  • delete_bucket_policy:删除存储桶策略。
  • lifecycle_configuration:管理生命周期规则。
  • object_tagging:设置和检索对象标签。
  • cors_configuration:配置 CORS 规则。
  • copy_object:复制对象。
  • download_file_to_local:下载文件到本地。
  • upload_local_file:上传本地文件到存储桶。

常见问题解答

  • 如何设置 AWS 凭证:通过环境变量 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_REGION 设置。
  • 如何指定 Docker 镜像版本:在 Docker 命令中使用特定标签代替 latest

使用教程

使用依赖

  • 安装 Docker:确保系统已安装 Docker。
  • 设置 AWS 凭证:通过环境变量设置 AWS 访问密钥和区域。

安装教程

使用 Cursor(推荐)

将以下配置添加到 Cursor MCP 配置中:

{
  "mcpServers": {
    "s3-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "AWS_SECRET_ACCESS_KEY=your_access_key",
        "-e",
        "AWS_ACCESS_KEY_ID=your_access_key",
        "-e",
        "AWS_REGION=your_region",
        "ashgw/s3-mcp:latest"
      ]
    }
  }
}

手动使用 Docker

运行以下命令:

docker run --rm -it \
  -e AWS_ACCESS_KEY_ID=your_access_key \
  -e AWS_SECRET_ACCESS_KEY=your_secret_key \
  -e AWS_REGION=your_region \
  ashgw/s3-mcp

从源码构建

克隆仓库并构建 Docker 镜像:

docker build -t s3-mcp .

运行镜像:

docker run --rm -e AWS_ACCESS_KEY_ID=your_access_key -e AWS_SECRET_ACCESS_KEY=your_secret_key -e AWS_REGION=your_region s3-mcp

调试方式

  • 确保 Docker 容器正常运行。
  • 检查环境变量是否正确设置。
  • 使用示例命令测试功能,如列出存储桶:
response = await tool("list_buckets")
print(response)

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。