S3 MCP Server
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 とインターフェースするための安全で標準化された方法を提供します。
Related MCP server: AWS MCP Server
インストール
前提条件
Node.js 18以上
npmまたはyarn
AWS 認証情報が設定されている(環境変数または AWS 認証情報ファイル経由)
Docker(オプション、コンテナ化されたセットアップ用)
設定
npm 経由でインストール:
# Install globally via npm
npm install -g aws-s3-mcp
# Or as a dependency in your project
npm install aws-s3-mcpソースからビルドする場合:
# 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 buildAWS 認証情報と 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または、これらを環境変数として設定します。
構成
サーバーは次の環境変数を使用して構成できます。
変数 | 説明 | デフォルト |
| S3バケットが配置されているAWSリージョン |
|
| 許可された S3 バケット名のカンマ区切りリスト | (空の) |
| リストに返されるバケットの最大数 |
|
| AWS アクセスキー(デフォルトの認証情報を使用していないとき) | (AWS 設定から) |
| AWS 秘密キー(デフォルトの認証情報を使用していないとき) | (AWS 設定から) |
サーバーの実行
直接Node.js実行
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.jsDocker のセットアップ 🐳
Docker CLI または Docker Compose を使用して、S3 MCP サーバーを Docker コンテナとして実行できます。
Docker CLIの使用
Docker イメージをビルドします。
docker build -t aws-s3-mcp .環境変数を使用してコンテナを実行します。
# Option 1: Pass environment variables directly
docker run -d \
-e AWS_REGION=us-east-1 \
-e S3_BUCKETS=bucket1,bucket2 \
-e S3_MAX_BUCKETS=5 \
-e AWS_ACCESS_KEY_ID=your-access-key \
-e AWS_SECRET_ACCESS_KEY=your-secret-key \
--name aws-s3-mcp-server \
aws-s3-mcp
# Option 2: Use environment variables from .env file
docker run -d \
--env-file .env \
--name aws-s3-mcp-server \
aws-s3-mcpコンテナのログを確認します。
docker logs aws-s3-mcp-serverコンテナを停止して削除します。
docker stop aws-s3-mcp-server
docker rm aws-s3-mcp-serverコンテナーは、直接の HTTP 接続ではなく、Docker exec を介して Claude Desktop で使用されるように設計されているため、ポートを公開しないことに注意してください。
Docker Composeの使用
Docker コンテナをビルドして起動します。
# Build and start the container
docker compose up -d s3-mcp
# View logs
docker compose logs -f s3-mcpコンテナを停止するには:
docker compose downMinIO で Docker を使ってテストする
Docker Compose セットアップには、ローカル テスト用の MinIO サービスが含まれています。
# Start MinIO and the MCP server
docker compose up -d
# Access MinIO console at http://localhost:9001
# Default credentials: minioadmin/minioadminMinIO サービスは、2 つのテスト バケット ( test-bucket-1とtest-bucket-2 ) を自動的に作成し、テスト用のサンプル ファイルをアップロードします。
MCP Inspectorでのデバッグ
MCP Inspector を使用してサーバーをデバッグするには:
# Run inspector with local Node.js
sh run-inspector.sh
# Run inspector with Docker Compose and MinIO
sh run-inspector.sh --docker-compose
# Run inspector with Docker CLI (without Docker Compose)
sh run-inspector.sh --docker--docker-composeオプションを使用すると、スクリプトは次の処理を実行します。
MinIOとS3 MCPサーバーコンテナが実行されていない場合は起動します。
S3 MCPサーバーに接続されたMCPインスペクターを起動します。
その後、S3ツールをローカルのMinIOインスタンスに対してテストすることができます。
Claudeデスクトップに接続しています
このサーバーをClaude Desktopで使用するには:
Claude Desktop 構成ファイルを編集します。
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
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"
}
}
}
}Claude デスクトップ用の Docker オプション 🐳
また、MCP サーバーで実行中の Docker コンテナを使用するように Claude Desktop を構成することもできます。
{
"mcpServers": {
"s3": {
"command": "docker",
"args": ["exec", "-i", "aws-s3-mcp-server", "node", "dist/index.js"],
"env": {}
}
}
}⚠️ 重要な前提条件: この Docker 構成が機能するには、Claude Desktop を起動する前に、まず Docker コンテナをビルドして実行する必要があります。
# 1. First, build the Docker image (only needed once or after changes) docker build -t aws-s3-mcp . # 2. Then start the container (required each time before using with Claude) # Using Docker Compose (recommended) docker compose up -d s3-mcp # Or using Docker CLI docker run -d --name aws-s3-mcp-server --env-file .env aws-s3-mcp実行中のコンテナがない場合、Claude Desktop は S3 ツールを使用しようとするとエラーを表示します。
上記のDocker設定では、
execを使用してMCPリクエストを実行中のコンテナに直接送信しています。Claudeはネットワークポートを経由せずコンテナと直接通信するため、ポートマッピングは必要ありません。
注意: 設定内のコンテナ名 (
aws-s3-mcp-server) が実行中のコンテナの名前と一致していることを確認してください。
重要: 上記の設定を使用する場合は、次の点に注意してください。
AWS_ACCESS_KEY_IDとAWS_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": "sample.pdf",
"LastModified": "2023-10-10T08:12:15.000Z",
"Size": 2048576,
"StorageClass": "STANDARD"
},
{
"Key": "sample.md",
"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 内の PDF ファイルを要約する」
「my-documents-bucket から README.txt ファイルを取得する」
Claude は適切な MCP ツールを使用してリクエストを実行し、結果を表示します。
ライセンス
マサチューセッツ工科大学
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseBqualityDmaintenanceAn MCP server that provides tools for interacting with AWS S3 buckets, enabling direct access to S3 operations through the Model Context Protocol.1
- AlicenseAqualityFmaintenanceA Model Context Protocol server implementation that enables Claude to perform AWS operations on S3 and DynamoDB services through natural language commands.23127MIT
- FlicenseCqualityDmaintenanceA Model Context Protocol server allowing Claude AI to interact with AWS resources through natural language, enabling users to query and manage AWS services without using the traditional AWS Console or CLI.36
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server for AWS S3 integration using FastMCP and boto3. This server provides access to S3 functionality through MCP-compatible tools.101MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/samuraikun/aws-s3-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server