返回 MCP 目录
public公开dns本地运行

mcp-s3

MCP S3文件管理器是一个通过Model Context Protocol(MCP)实现Amazon S3文件上传、下载和管理的工具,专为AI助手和工作流设计。

article

README

🚀 MCP S3文件管理器

MCP S3文件管理器可通过模型上下文协议(MCP)在亚马逊S3中上传、下载和管理文件,为AI工作流提供便捷的S3文件操作。它适用于Claude、Cursor等AI助手以及任何与MCP兼容的客户端。

🚀 快速开始

# 安装并运行(需要AWS凭证)
uvx mcp-s3 --root ~/uploads

# 或者全局安装
pip install mcp-s3

✨ 主要特性

  • 文件操作丰富:支持文件的上传、下载、列表查看和信息获取等操作。
  • 安全可靠:防止目录遍历攻击,使用环境变量管理凭证,预签名URL有时间限制,可检测文件冲突。
  • 使用便捷:保留原始文件名,可防止意外覆盖,支持强制覆盖选项,大文件支持进度跟踪。

📦 安装指南

运行而不安装(推荐)

uvx mcp-s3

全局安装

pip install mcp-s3

开发安装

git clone && uv sync

💻 使用示例

基础用法

上传文件

@mcp Upload my config.json file to S3
@mcp Upload the backup.zip with 2-hour expiration
@mcp Upload report.pdf with force overwrite enabled

下载文件

@mcp Download config.json from S3 to ./downloads/
@mcp Download backup-2024.zip from S3

列出文件

@mcp List all files in S3
@mcp List files starting with "logs/"
@mcp Show me the first 50 files in the bucket

获取文件信息

@mcp Get info about config.json in S3
@mcp Show details for backup.zip

高级用法

备份和共享代码

# 上传项目文件
@mcp Upload my entire src/ directory to S3
@mcp Generate a 7-day URL for team-config.json

CI/CD集成

# 在部署脚本中
mcp-s3 --root ./build upload dist.tar.gz

日志管理

# 上传应用程序日志
@mcp Upload today's error.log to S3
@mcp List all log files from this month

资产管理

# 管理项目资产
@mcp Upload design-assets.zip
@mcp Download latest-assets.zip to ./assets/

📚 详细文档

1. AWS凭证设置

在项目中创建.env文件:

AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_DEFAULT_REGION=us-east-1
S3_BUCKET_NAME=your-bucket-name

2. 添加到AI工具

Cursor IDE

添加到settings.json

{
  "mcp": {
    "servers": {
      "s3": {
        "command": "uvx",
        "args": ["mcp-s3", "--root", "~/uploads"],
        "env": {
          "AWS_ACCESS_KEY_ID": "your_key",
          "AWS_SECRET_ACCESS_KEY": "your_secret", 
          "S3_BUCKET_NAME": "your-bucket"
        }
      }
    }
  }
}

Claude Desktop

添加到配置文件:

{
  "mcpServers": {
    "s3": {
      "command": "mcp-s3",
      "args": ["--root", "~/uploads"],
      "env": {
        "AWS_ACCESS_KEY_ID": "your_key",
        "AWS_SECRET_ACCESS_KEY": "your_secret",
        "S3_BUCKET_NAME": "your-bucket"
      }
    }
  }
}

开发设置

git clone https://github.com/dayongd1/mcp-s3.git
cd mcp-s3
uv sync
uv run mcp-s3 --root ~/test-uploads

测试

# 测试基本功能
python examples/test_mcp_server.py

# 测试命名冲突
python examples/test_naming_conflicts.py

# 测试所有功能
python examples/test_download.py
python examples/test_list_files.py
python examples/test_get_file_info.py

🔧 技术细节

  • 路径安全:防止目录遍历攻击。
  • 凭证管理:使用环境变量管理凭证,避免硬编码密钥。
  • 预签名URL:默认提供24小时的限时访问。
  • 冲突检测:防止意外覆盖文件。

🚫 故障排除

"Bucket not found"

# 检查桶名称和区域
aws s3 ls s3://your-bucket-name

"Access denied"

# 验证AWS凭证
python examples/test_aws_connection.py

"File already exists"

# 使用强制覆盖或重命名文件
@mcp Upload config.json with force overwrite enabled

📄 许可证

本项目采用MIT许可证。

📚 链接

  • PyPI:https://pypi.org/project/mcp-s3/
  • GitHub:https://github.com/dayongd1/mcp-s3
  • MCP文档:https://modelcontextprotocol.io/
  • AWS S3设置:请参阅AWS_SETUP_GUIDE.md
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端