mcp-s3

使用说明

  • 项目简介
    • mcp-s3 是一个完整的 MCP 服务器实现,旨在把 S3 兼容对象存储暴露给基于 MCP 协议的 AI 助手/LLM 客户端。它实现了对存储资源(桶、对象)的数据访问能力,以及对 S3 相关工具(列桶、列对象、获取对象、上传/删除/复制对象、生成预签URL 等)的注册和执行能力。服务器通过 MCP 的 JSON-RPC 机制与客户端通信,封装了会话管理、连接配置、拦截与中间件机制,便于在企业场景中以安全、可扩展的方式提供上下文服务。
  • 主要功能点
    • MCP 服务器核心:创建并运行 MCP 服务器,支持将工具注册到服务器并通过 MCP 客户端进行调用。
    • 资源与工具托管:实现对 S3 资源(桶、对象)的读取、列举、获取元数据、上传、删除、复制、生成预签 URL 等功能。
    • 多连接/多账户支持:通过多连接管理器(multiserver)实现对多账户/区域的统一访问。
    • 安全与扩展性:自带只读模式、大小限制、前缀 ACL、审计与日志中间件等扩展能力,支持中间件、拦截器、变换器等插件式扩展。
    • 支持 MCP 传输协议:内置 stdio 传输,便于融入现有开发环境,也可通过其他传输实现与客户端通信。
  • 安装步骤
    • 获取源码并编译
      • 直接从仓库克隆并构建即可(参考仓库提供的 Makefile 与 Go 模块管理)。亦可通过 go install 安装可执行二进制。
    • 运行方式
      • 直接运行 mcp-s3 的可执行文件:通过环境变量配置 S3 连接参数(如 AWS 区域、访问密钥、端点等),或使用多连接配置进行初始化。
      • 支持通过 StdioTransport、WebSocket、Server-Sent Events 等传输方式,与 MCP 客户端进行通信。
  • 服务器配置(JSON 配置示例,含 server name、command、args 等注释)
    • serverName: 指定 MCP 服务器在客户端中的名称(如 s3)。
    • command: 启动服务器的命令名,示例中为 mcp-s3。
    • args: 启动命令的参数列表,按实际需求填写。若无额外参数,可留空。
    • 备注:客户端连接 MCP 服务器时,通常只需要在客户端配置中指定服务器的启动命令及参数,服务器端的配置会在运行时生效,MCP 客户端本身不需要了解服务器内部实现细节。 JSON 参考格式(纯文本描述,不包含代码块): { "serverName": "s3", "command": "mcp-s3", "args": [] } 说明:
    • serverName 指定对外唯一标识的服务器名称,便于客户端在多服务器场景中进行区分和路由。
    • command 为服务器的启动命令名,通常与仓库中的可执行文件名称保持一致。
    • args 为启动参数数组,若无特定参数可为空,若有环境变量覆盖或调试参数,请按实际需要填写。
  • 基本使用方法
    • 启动服务器:以运行环境为准,执行服务器二进制,确保环境变量(如 AWS 认证、S3 端点、区域等)正确配置。
    • 客户端接入:将服务器启动命令及配置提供给 MCP 客户端。客户端通过 MCP 协议的 JSON-RPC 请求读取资源、调用工具、获取 Prompts 等,以统一的接口进行交互。
    • 常用扩展:可通过中间件、拦截器、分析/变换器等插件对工具执行过程进行自定义处理(如日志、审计、前后置处理等)。

服务器信息