mcpField
S
s3

s3

ローカル
github.com/pulsemcpファイル・ストレージ818 週間前に更新

s3 について

S3 は、AWS S3 のバケットとオブジェクトを操作する MCP サーバーです。ツールグループごとにアクセス権を細かく制御でき、AI アシスタントの操作範囲を制限したい開発者に向いています。MinIO や LocalStack などの S3 互換サービスにも対応しています。

主な機能

  1. 01バケットとオブジェクトの一覧、取得、アップロード、コピー、削除
  2. 02読み取り専用と読み書きを分けるツールグループ
  3. 03環境変数による個別のツールの有効化・無効化
  4. 04AWS 認証情報の検証とヘルスチェック
  5. 05S3 互換エンドポイントとパススタイルのアドレス指定
  6. 06操作範囲を限定する単一バケットモード

活用シーン

  1. 01読み取り専用モードで AI アシスタントに S3 の内容を確認させる
  2. 02MinIO や LocalStack を使ったオブジェクトストレージ処理の検証
  3. 03AI によるアクセスを単一のバケットに限定する

MCP 対応

本プロジェクトは MCP サーバーであり、S3 操作を MCP クライアントにツールとして公開します。また、サーバーの設定と状態を確認するための s3://config リソースを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"com-pulsemcp-s3": {
"command": "npx",
"args": [
"-y",
"s3-aws-mcp-server"
],
"env": {
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>",
"AWS_REGION": "<AWS_REGION>",
"AWS_ENDPOINT_URL": "<AWS_ENDPOINT_URL>",
"S3_FORCE_PATH_STYLE": "<S3_FORCE_PATH_STYLE>",
"S3_BUCKET": "<S3_BUCKET>",
"S3_ENABLED_TOOLGROUPS": "<S3_ENABLED_TOOLGROUPS>",
"S3_ENABLED_TOOLS": "<S3_ENABLED_TOOLS>",
"S3_DISABLED_TOOLS": "<S3_DISABLED_TOOLS>",
"SKIP_HEALTH_CHECKS": "<SKIP_HEALTH_CHECKS>"
}
}
}
}
起動コマンドnpx -y s3-aws-mcp-server
設定が必要な環境変数
AWS_ACCESS_KEY_IDシークレットAWS access key ID for authentication.
AWS_SECRET_ACCESS_KEYシークレットAWS secret access key for authentication.
AWS_REGIONAWS region for S3 operations.
AWS_ENDPOINT_URLCustom S3 endpoint URL for MinIO or S3-compatible services.
S3_FORCE_PATH_STYLEUse path-style addressing instead of virtual-hosted-style.
S3_BUCKETConstrain all operations to a single bucket.
S3_ENABLED_TOOLGROUPSComma-separated tool groups: readonly or readwrite.
S3_ENABLED_TOOLSWhitelist specific tools by name.
S3_DISABLED_TOOLSBlacklist specific tools by name.
SKIP_HEALTH_CHECKSSkip AWS credential validation health checks at startup.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npms3-aws-mcp-server0.0.5

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

S3 MCP サーバー

きめ細かなツールアクセス制御を備えた、AWS S3 操作向けの MCP サーバーです。S3 バケットおよびオブジェクトの読み取り/書き込み操作に対応し、セキュリティと権限を管理するために、設定可能なツールグループを提供します。

主な特長

  • S3 バケットとオブジェクトの包括的な管理(一覧表示、取得、アップロード、コピー、削除)
  • ツールグループ(readonly、readwrite)によるきめ細かなアクセス制御
  • 環境変数による個別ツールの有効化/無効化
  • ヘルスチェックによる AWS 認証情報の検証
  • S3 互換エンドポイントに対応(MinIO、LocalStack など)
  • 厳密な型チェックを備えた TypeScript
  • 包括的なテスト(機能テスト、統合テスト、手動テスト)

機能

ツール
ツールグループ説明
list_bucketsreadonlyAWS アカウント内のすべての S3 バケットを一覧表示します
list_objectsreadonlyプレフィックスとページネーションを指定して、バケット内のオブジェクトを一覧表示します
get_objectreadonlyオブジェクトの内容をテキストとして取得します
head_bucketreadonlyバケットが存在し、アクセス可能かを確認します
put_objectreadwriteオブジェクトをアップロードまたは更新します
delete_objectreadwriteバケットからオブジェクトを削除します
copy_objectreadwrite同じバケット内、または別のバケットにオブジェクトをコピーします
create_bucketreadwrite新しい S3 バケットを作成します
delete_bucketreadwrite空の S3 バケットを削除します
リソース
リソース説明
s3://configサーバーの設定とステータス(デバッグ用)
ツールグループ

S3_ENABLED_TOOLGROUPS 環境変数を使用して、利用可能なツールを制御します。

グループ説明
readonly読み取り専用の操作(一覧表示、取得、確認)
readwrite書き込み操作(アップロード、削除、コピー、作成)

例:

  • S3_ENABLED_TOOLGROUPS="readonly" - 読み取り操作のみ
  • S3_ENABLED_TOOLGROUPS="readonly,readwrite" - すべての操作
  • 未設定 - すべてのツールが有効(デフォルト)
個別ツールの制御

特定のツールをきめ細かく制御します。

  • S3_ENABLED_TOOLS="list_buckets,get_object" - これらのツールのみを有効化します
  • S3_DISABLED_TOOLS="delete_bucket,delete_object" - これらのツールを無効化します
単一バケットモード

S3_BUCKET を使用して、すべての操作を特定のバケットに限定します。

S3_BUCKET="my-bucket"

設定すると:

  • すべてのオブジェクト操作が自動的にこのバケットに限定されます
  • バケットレベルのツール(list_buckets、create_bucket、delete_bucket、head_bucket)は非表示になります
  • bucket パラメーターが自動的に挿入され、ツールの入力から非表示になります
  • copy_object では、コピー元とコピー先の両方が指定したバケットに限定されます

より広範な S3 権限を付与することなく、アクセスを単一のバケットに制限する場合に便利です。

クイックスタート

設定
環境変数
変数必須説明デフォルト
AWS_ACCESS_KEY_IDはいAWS アクセスキー ID-
AWS_SECRET_ACCESS_KEYはいAWS シークレットアクセスキー-
AWS_REGIONいいえS3 操作用の AWS リージョンus-east-1
AWS_ENDPOINT_URLいいえカスタム S3 エンドポイント(MinIO など)-
S3_FORCE_PATH_STYLEいいえパス形式のアドレス指定を使用(MinIO 用)false
S3_BUCKETいいえ操作対象を単一のバケットに制限-
S3_ENABLED_TOOLGROUPSいいえカンマ区切りのツールグループすべて有効
S3_ENABLED_TOOLSいいえ有効にする特定のツール-
S3_DISABLED_TOOLSいいえ無効にする特定のツール-
SKIP_HEALTH_CHECKSいいえ認証情報の検証をスキップfalse
Claude Desktop の設定

MCP サーバーを初めて使用する場合は、Claude Desktop アプリケーションを用意し、公式の MCP セットアップ手順に従ってください。

macOS:~/Library/Application Support/Claude/claude_desktop_config.json

Windows:%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "s3": {
      "command": "npx",
      "args": ["-y", "s3-aws-mcp-server"],
      "env": {
        "AWS_ACCESS_KEY_ID": "your-access-key-id",
        "AWS_SECRET_ACCESS_KEY": "your-secret-access-key",
        "AWS_REGION": "us-east-1",
        "S3_ENABLED_TOOLGROUPS": "readonly"
      }
    }
  }
}

Claude Desktop を再起動すれば、準備完了です。

読み取り専用モード

より安全に調べるには、読み取り操作のみを有効にしてください。

{
  "env": {
    "S3_ENABLED_TOOLGROUPS": "readonly"
  }
}
S3 互換サービスでの使用

MinIO、LocalStack、その他の S3 互換サービスの場合:

{
  "env": {
    "AWS_ACCESS_KEY_ID": "minioadmin",
    "AWS_SECRET_ACCESS_KEY": "minioadmin",
    "AWS_REGION": "us-east-1",
    "AWS_ENDPOINT_URL": "http://localhost:9000",
    "S3_FORCE_PATH_STYLE": "true"
  }
}

注: S3_FORCE_PATH_STYLE は、仮想ホスト形式(bucket-name.localhost:9000)ではなく、パス形式(localhost:9000/bucket-name)のアドレス指定を使用する MinIO や一部の S3 互換サービスで必要です。

開発

依存関係のインストール
npm run install-all
ビルド
npm run build
開発モードでの実行
npm run dev
テスト
# Run functional tests
npm run test:run

# Run integration tests (full MCP protocol)
npm run test:integration

# Run manual tests (real AWS - requires .env)
npm run test:manual:setup  # First time only
npm run test:manual

# Run all automated tests
npm run test:all
手動テストのセットアップ

s3 ディレクトリに .env ファイルを作成します。

AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_REGION=us-east-1

次に、以下を実行します。

npm run test:manual

プロジェクト構成

s3/
├── local/                 # Local server implementation
│   ├── src/
│   │   ├── index.ts      # Main entry point with env validation
│   │   └── index.integration-with-mock.ts
│   └── package.json
├── shared/               # Shared business logic
│   ├── src/
│   │   ├── server.ts     # Server factory with DI
│   │   ├── tools.ts      # Tool registration with grouping
│   │   ├── tools/        # Individual tool implementations
│   │   ├── resources.ts  # Resource implementations
│   │   ├── s3-client/    # AWS S3 client wrapper
│   │   └── logging.ts
│   └── package.json
├── tests/                # Test suite
│   ├── functional/       # Unit tests with mocks
│   ├── integration/      # MCP protocol tests
│   ├── manual/          # Real API tests
│   └── mocks/           # Mock implementations
└── package.json         # Root workspace config

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。