S3 MCP Server

S3 MCP Server

⚙️ 用于访问 Amazon S3 存储桶的模型上下文协议 (MCP) 服务器。此服务器通过 MCP 提供与 S3 存储的无缝集成,从而能够通过流式传输功能高效处理包括 PDF 在内的大型文件。

Geun-Oh

云存储
访问服务器

README

S3 MCP 服务器

一个用于访问 Amazon S3 存储桶的模型上下文协议 (MCP) 服务器。此服务器通过 MCP 提供与 S3 存储的无缝集成,从而能够通过流式传输功能高效处理包括 PDF 在内的大型文件。

特性

  • S3 存储桶对象列表,支持前缀过滤
  • 通过流式传输高效处理大型文件
  • 安全的 AWS 凭证管理
  • TypeScript 支持
  • 具有可自定义选项的 CLI 界面

安装

npx -y @geunoh/s3-mcp-server

用法

命令行选项

npx -y @geunoh/s3-mcp-server [options]

选项:

  • --port, -p: 服务器端口 (默认: 3000)
  • --region, -r: AWS 区域 (默认: ap-northeast-2)
  • --bucket, -b: S3 存储桶名称 (默认: my-dancing-bucket)

环境变量

必需:

export AWS_ACCESS_KEY_ID="your_access_key"
export AWS_SECRET_ACCESS_KEY="your_secret_key"

可选:

export AWS_REGION="ap-northeast-2"
export S3_BUCKET_NAME="my-bucket-name"

MCP 集成

添加到你的 mcp.json:

{
  "mcpServers": {
    "s3-mcp-server": {
      "command": "npx",
      "args": ["-y", "@geunoh/s3-mcp-server"],
      "env": {
        "AWS_ACCESS_KEY_ID": "YOUR_AWS_ACCESS_KEY_ID",
        "AWS_SECRET_ACCESS_KEY": "YOUR_AWS_SECRET_ACCESS_KEY",

        // optional
        "AWS_REGION": "ap-northeast-2",
        "S3_BUCKET_NAME": "my-bucket-name",
      }
    }
  }
}

可用的 MCP 函数

listObjects

列出 S3 存储桶中的对象。

参数:

  • prefix (可选): 按前缀过滤对象

getObject

从 S3 存储桶检索对象。通过流式传输针对大型文件进行了优化。

参数:

  • key: 要检索的对象的键

返回:

  • stream: 对象内容的可读流 (ReadableStream)
  • contentType: 对象的 MIME 类型
  • contentLength: 对象的大小(以字节为单位)
  • lastModified: 上次修改时间戳
  • text: 原始 pdf ByteArray 的文本缓冲区

AWS IAM 权限

最低所需权限(参见 s3-policy.json):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::my-bucket-name"
        }
    ]
}

开发

  1. 克隆存储库:
git clone https://github.com/Geun-Oh/s3-mcp-server.git
cd s3-mcp-server
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build
  1. 在本地运行:
node dist/cli.js

项目结构

.
├── src/              # TypeScript 源代码文件
├── dist/            # 编译后的 JavaScript 文件和运行时依赖项
├── tsconfig.json    # TypeScript 配置
└── package.json     # 项目配置和依赖项

部署

  1. 创建一个新的版本标签:
npm version patch
  1. 推送到 npm 注册表:
npm publish --access public

当推送新的版本标签时,GitHub Actions 工作流程将自动发布该软件包。

许可证

MIT

贡献

欢迎提交 Issues 和 Pull Requests。请确保您的更改保持现有的代码风格,并包含适当的测试。

推荐服务器

Google Drive MCP Server

Google Drive MCP Server

启用与 Google Drive 的集成,用于列出、读取和搜索文件,支持各种文件类型,并为 Google Workspace 文件提供自动导出功能。

本地
JavaScript
AWS MCP Server

AWS MCP Server

一个模型上下文协议服务器实现,使 Claude 能够通过自然语言命令在 S3 和 DynamoDB 服务上执行 AWS 操作。

本地
Python
Google Drive MCP Server

Google Drive MCP Server

与 Google Drive 集成,以实现文件列表、搜索和读取,以及 Google 表格的读取和写入。

本地
TypeScript
Azure MCP Server

Azure MCP Server

这个服务器实现了模型上下文协议,可以与 Azure Blob 存储和 Cosmos DB 无缝交互,从而实现操作的自动日志记录和审计跟踪。

Python
Box MCP Server

Box MCP Server

Box MCP 服务器方便使用开发者令牌认证在 Box 中搜索和读取 PDF 和 Word 文件。

JavaScript
MCP JSON Document Collection Server

MCP JSON Document Collection Server

一个模型上下文协议服务器,允许创建和管理多个 Fireproof JSON 数据库,并提供 CRUD 操作、查询功能以及云同步,以便与他人共享数据库。

JavaScript
Unstructured Document Processor MCP

Unstructured Document Processor MCP

一个模型上下文协议服务器,它使大型语言模型能够从各种文件格式的非结构化文档中提取和使用内容。

Python
Firebase MCP Server

Firebase MCP Server

一个提供统一接口以与 Firebase 服务(包括身份验证、Firestore 和存储)交互的服务器。

TypeScript
MCP Server for Apache OpenDAL™

MCP Server for Apache OpenDAL™

一个模型上下文协议服务器,通过 Apache OpenDAL™ 提供对包括 S3、Azure Blob 存储和 Google Cloud Storage 在内的多个存储服务的无缝访问。

Python
Cloudinary MCP Server

Cloudinary MCP Server

这个服务器提供了一些工具,可以使用 Claude/Cline 直接将图片和视频上传到 Cloudinary,从而方便资源管理,并提供可定制的选项,例如资源类型和公共 ID。

JavaScript