概述
此服务器使您能够:
- 管理S3存储桶和对象
- 处理生命周期配置
- 设置和检索对象标记
- 管理存储桶策略
- 配置CORS设置
安装
根据您的设置,有多种方法可以使用此服务器。
光标(推荐)
将此添加到您的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镜像构建(例如,20250413-165732),请使用该标签而不是 latest。浏览可用版本 .Cursor将自动通过MCP服务器路由该请求。
确保它是绿色的,所有的工具都可用。
______________________________________________________________________
Docker(手动)
您可以通过Docker手动运行S3 MCP服务器:
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这使用了发布在 ashgw/s3 mcp.
______________________________________________________________________
仓库
克隆存储库并 cd 然后构建:
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环境变量
为AWS凭据设置以下环境变量:
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_REGION=your_region特性
- 列出Buckets:检索所有S3存储桶的列表。
- 创建Bucket:使用可选配置创建新的S3存储桶。
- 列出对象:列出指定bucket中的所有对象。
- 获取对象:检索指定对象的内容。
- 放置物体:将对象上传到指定的bucket。
- 删除对象:从指定的桶中删除对象。
- 生成预签名URL:创建用于访问或上传对象的预签名URL。
- 设置Bucket策略:更新或设置指定存储桶的策略。
- 获取Bucket策略:检索指定存储桶的当前策略。
- 删除Bucket策略:删除指定存储桶的当前策略。
- 生命周期配置:管理S3存储桶的生命周期规则。
- 对象标记:设置和检索S3对象的标签。
- CORS配置:获取并设置bucket的CORS规则。
- 复制对象:在S3中将对象从一个位置复制到另一个位置。
- 将文件下载到本地:将文件从指定的S3存储桶下载到本地路径。
- 上传本地文件:将本地文件上载到指定的S3存储桶。
使用示例很少
列出Buckets
response = await tool("list_buckets")
print(response)创建一个Bucket
response = await tool("create_bucket", {
"bucket_name": "my-new-bucket",
"region": "us-west-1",
"config": {
"blockPublicAccess": {
"BlockPublicAcls": True,
"IgnorePublicAcls": True,
"BlockPublicPolicy": True,
"RestrictPublicBuckets": True
},
"versioning": True,
"encryption": "AES256"
}
})
print(response)上传文件
response = await tool("upload_local_file", {
"bucket_name": "my-new-bucket",
"local_path": "/path/to/local/file.txt",
"key": "file.txt"
})
print(response)获取对象标签
response = await tool("get_object_tagging", {
"bucket_name": "my-new-bucket",
"key": "file.txt"
})
print(response)
