S3 MCP Server

S3 MCP Server

一个 Amazon S3 模型上下文协议服务器,允许像 Claude 这样的大型语言模型与 AWS S3 存储进行交互,提供用于列出存储桶、列出对象和检索对象内容的工具。

Category
访问服务器

Tools

list-buckets

List available S3 buckets

list-objects

List objects in an S3 bucket

get-object

Retrieve an object from an S3 bucket

README

S3 MCP 服务器

一个 Amazon S3 模型上下文协议 (MCP) 服务器,提供与 S3 存储桶和对象交互的工具。

https://github.com/user-attachments/assets/d05ff0f1-e2bf-43b9-8d0c-82605abfb666

概述

此 MCP 服务器允许像 Claude 这样的大型语言模型 (LLM) 与 AWS S3 存储交互。它提供以下工具:

  • 列出可用的 S3 存储桶
  • 列出存储桶中的对象
  • 检索对象内容

该服务器使用 TypeScript 和 MCP SDK 构建,为 LLM 提供了一种安全且标准化的方式来与 S3 交互。

安装

前提条件

  • Node.js 18 或更高版本
  • npm 或 yarn
  • 已配置的 AWS 凭证(通过环境变量或 AWS 凭证文件)

设置

  1. 通过 npm 安装:
# 通过 npm 全局安装
npm install -g aws-s3-mcp

# 或者作为项目中的依赖项安装
npm install aws-s3-mcp
  1. 如果从源代码构建:
# 克隆存储库
git clone https://github.com/samuraikun/aws-s3-mcp.git
cd aws-s3-mcp

# 安装依赖项并构建
npm install
npm run build
  1. 配置 AWS 凭证和 S3 访问权限:

创建一个 .env 文件,其中包含您的 AWS 配置:

AWS_REGION=us-east-1
S3_BUCKETS=bucket1,bucket2,bucket3
S3_MAX_BUCKETS=5
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key

或者将这些设置为环境变量。

配置

可以使用以下环境变量配置服务器:

变量 描述 默认值
AWS_REGION S3 存储桶所在的 AWS 区域 us-east-1
S3_BUCKETS 允许的 S3 存储桶名称的逗号分隔列表 (空)
S3_MAX_BUCKETS 列表中返回的最大存储桶数 5
AWS_ACCESS_KEY_ID AWS 访问密钥(如果未使用默认凭证) (来自 AWS 配置)
AWS_SECRET_ACCESS_KEY AWS 密钥(如果未使用默认凭证) (来自 AWS 配置)

运行服务器

您可以使用 Node.js 运行服务器:

# 使用 npx (无需安装)
npx aws-s3-mcp

# 如果全局安装
npm install -g aws-s3-mcp
aws-s3-mcp

# 如果从克隆的存储库运行
npm start

# 或者直接运行
node dist/index.js

连接到 Claude Desktop

要将此服务器与 Claude Desktop 结合使用:

  1. 编辑您的 Claude Desktop 配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. 将 S3 MCP 服务器添加到配置中:

{
  "mcpServers": {
    "s3": {
      "command": "npx",
      "args": ["aws-s3-mcp"],
      "env": {
        "AWS_REGION": "us-east-1",
        "S3_BUCKETS": "bucket1,bucket2,bucket3",
        "S3_MAX_BUCKETS": "5",
        "AWS_ACCESS_KEY_ID": "your-access-key",
        "AWS_SECRET_ACCESS_KEY": "your-secret-key"
      }
    }
  }
}

重要提示:使用上述配置时,请注意以下事项

  • AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 替换为您实际的凭证
  • S3_BUCKETS 应包含您要允许访问的存储桶的逗号分隔列表
  • AWS_REGION 应设置为您的存储桶所在的区域

💣 如果 Claude Desktop 上发生错误

如果在 Claude Desktop 中使用上述配置时遇到错误,请尝试使用绝对路径,如下所示:

# 获取 node 和 aws-s3-mcp 的路径
which node
which aws-s3-mcp
{
  "globalShortcut": "",
  "mcpServers": {
    "s3": {
      "command": "your-absolute-path-to-node",
      "args": ["your-absolute-path-to-aws-s3-mcp/dist/index.js"],
      "env": {
        "AWS_REGION": "your-aws-region",
        "S3_BUCKETS": "your-s3-buckets",
        "S3_MAX_BUCKETS": "your-max-buckets",
        "AWS_ACCESS_KEY_ID": "your-access-key",
        "AWS_SECRET_ACCESS_KEY": "your-secret-key"
      }
    }
  }
}

可用工具

list-buckets

列出服务器有权访问的可用 S3 存储桶。此工具遵循 S3_BUCKETS 配置,该配置限制了显示的存储桶。

参数:

示例输出:

[
  {
    "Name": "my-images-bucket",
    "CreationDate": "2022-03-15T10:30:00.000Z"
  },
  {
    "Name": "my-documents-bucket",
    "CreationDate": "2023-05-20T14:45:00.000Z"
  }
]

list-objects

列出指定 S3 存储桶中的对象。

参数:

  • bucket(必需):要从中列出对象的 S3 存储桶的名称
  • prefix(可选):用于过滤对象的前缀(如文件夹路径)
  • maxKeys(可选):要返回的最大对象数

示例输出:

[
  {
    "Key": "images/photo1.jpg",
    "LastModified": "2023-10-10T08:12:15.000Z",
    "Size": 2048576,
    "StorageClass": "STANDARD"
  },
  {
    "Key": "images/photo2.jpg",
    "LastModified": "2023-10-12T15:30:45.000Z",
    "Size": 1536000,
    "StorageClass": "STANDARD"
  }
]

get-object

从指定的 S3 存储桶检索对象。文本文件以纯文本形式返回,而二进制文件返回有限的详细信息。

参数:

  • bucket(必需):S3 存储桶的名称
  • key(必需):要检索的对象的键(路径)

示例文本输出:

This is the content of a text file stored in S3.
It could be JSON, TXT, CSV or other text-based formats.

示例二进制输出:

Binary content (image/jpeg): base64 data is /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRof...

安全注意事项

  • 服务器将仅访问 S3_BUCKETS 环境变量中指定的存储桶
  • AWS 凭证必须具有对存储桶的适当权限
  • 配置 AWS 权限时,请使用最小权限原则
  • 对于生产用途,请考虑使用具有特定 S3 权限的 IAM 角色

与 Claude 一起使用

在桌面应用程序中与 Claude 交互时,您可以要求它执行 S3 操作,例如:

  • "列出我的所有 S3 存储桶"
  • "显示我的 images 存储桶的内容"
  • "从我的 my-documents-bucket 中获取 README.txt 文件"

Claude 将使用适当的 MCP 工具来执行请求并向您显示结果。

许可证

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选