S3 MCP Server

by samuraikun
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides tools for listing available S3 buckets, listing objects within a bucket, and retrieving object contents from AWS S3 storage.

S3 MCP サーバー

S3 バケットおよびオブジェクトと対話するためのツールを提供する Amazon S3 モデルコンテキストプロトコル (MCP) サーバー。

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 経由でインストール:
# Install globally via npm npm install -g aws-s3-mcp # Or as a dependency in your project npm install aws-s3-mcp
  1. ソースからビルドする場合:
# Clone the repository git clone https://github.com/samuraikun/aws-s3-mcp.git cd aws-s3-mcp # Install dependencies and build npm install npm run build
  1. AWS 認証情報と S3 アクセスを構成します。

AWS 設定で.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_REGIONS3バケットが配置されているAWSリージョンus-east-1
S3_BUCKETS許可された S3 バケット名のカンマ区切りリスト(空の)
S3_MAX_BUCKETSリストに返されるバケットの最大数5
AWS_ACCESS_KEY_IDAWS アクセスキー(デフォルトの認証情報を使用していないとき)(AWS 設定から)
AWS_SECRET_ACCESS_KEYAWS 秘密キー(デフォルトの認証情報を使用していないとき)(AWS 設定から)

サーバーの実行

Node.js を使用してサーバーを実行できます。

# Using npx (without installing) npx aws-s3-mcp # If installed globally npm install -g aws-s3-mcp aws-s3-mcp # If running from cloned repository npm start # Or directly node dist/index.js

Claudeデスクトップに接続しています

このサーバーを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 で上記の構成でエラーが発生した場合は、次のように絶対パスを使用してみてください。

# Get the path of node and 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" } } } }

利用可能なツール

リストバケット

サーバーがアクセス権限を持つ利用可能な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" } ]

リストオブジェクト

指定された 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" } ]

オブジェクトを取得

指定された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 と対話する場合、次のような S3 操作を実行するように要求できます。

  • 「すべてのS3バケットを一覧表示する」
  • 「画像バケットの内容を見せてください」
  • 「my-documents-bucket から README.txt ファイルを取得する」

Claude は適切な MCP ツールを使用してリクエストを実行し、結果を表示します。

ライセンス

マサチューセッツ工科大学

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Claude のような大規模言語モデルが AWS S3 ストレージと対話できるようにし、バケットの一覧表示、オブジェクトの一覧表示、オブジェクトの内容の取得を行うツールを提供する Amazon S3 モデルコンテキストプロトコル サーバー。

  1. Overview
    1. Installation
      1. Prerequisites
      2. Setup
    2. Configuration
      1. Running the Server
        1. Connecting to Claude Desktop
          1. 💣 If error occurs on Claude Desktop
        2. Available Tools
          1. list-buckets
          2. list-objects
          3. get-object
        3. Security Considerations
          1. Usage with Claude
            1. License
              ID: f43ejwha58