Sample S3 Model Context Protocol Server について
Sample S3 Model Context Protocol Server は、Amazon S3 からデータを取得する MCP サーバーのサンプルで、現時点では PDF ドキュメントのみに対応しています。S3 上のオブジェクトを LLM のコンテキストに取り込みたい開発者や、実装例を参照したい開発者に適しています。
主な機能
- 01S3 上の PDF ドキュメントをリソースとして公開
- 02バケットとバケット内オブジェクトの一覧取得
- 03完全なキー名によるオブジェクトの取得
- 04リソースの対象は最大 1000 件のオブジェクト
活用シーン
- 01S3 に保存された PDF を Claude Desktop で読み込む
- 02S3 のドキュメントを対象とした質疑応答や要約
- 03AWS S3 にアクセスする MCP サーバーの実装例の学習
MCP 対応
本プロジェクトは MCP サーバーであり、S3 データをリソースとして公開し、ListBuckets、ListObjectsV2、GetObject のツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
サンプル S3 Model Context Protocol サーバー
S3 から PDF などのデータを取得する MCP サーバーの実装です。
機能
リソース
リソースを通じて AWS S3 のデータを公開します。(GET エンドポイントのようなものと考えてください。情報を LLM のコンテキストに読み込むために使用します。)現在は PDF ドキュメントのみをサポートしており、オブジェクト数は 1000 個までに制限されています。
ツール
- ListBuckets
- 認証されたリクエスト送信者が所有するすべてのバケットの一覧を返します
- ListObjectsV2
- リクエストごとに、バケット内のオブジェクトの一部またはすべて(最大 1,000 個)を返します
- GetObject
- Amazon S3 からオブジェクトを取得します。GetObject リクエストでは、オブジェクトの完全なキー名を指定してください。汎用バケットでは、仮想ホスト形式のリクエストとパス形式のリクエストの両方がサポートされています
設定
AWS 認証情報の設定
- AWS Management Console から AWS アクセスキー ID、シークレットアクセスキー、リージョンを取得します。
- これらの認証情報に AWS S3 への適切なアクセス権限があることを確認します。
Claude Desktop での使用
Claude Desktop
MacOS の場合:~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows の場合:%APPDATA%/Claude/claude_desktop_config.json
開発版/未公開サーバーの設定
{
"mcpServers": {
"s3-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/Users/user/generative_ai/model_context_protocol/s3-mcp-server",
"run",
"s3-mcp-server"
]
}
}
}
公開済みサーバーの設定
{
"mcpServers": {
"s3-mcp-server": {
"command": "uvx",
"args": [
"s3-mcp-server"
]
}
}
}
開発
ビルドと公開
パッケージを配布用に準備するには、次の手順を実行します。
- 依存関係を同期し、ロックファイルを更新します。
uv sync
- パッケージの配布物をビルドします。
uv build
これにより、dist/ ディレクトリにソース配布物と wheel 配布物が作成されます。
- PyPI に公開します。
uv publish
注:環境変数またはコマンドフラグを使って PyPI の認証情報を設定する必要があります。
- トークン:
--tokenまたはUV_PUBLISH_TOKEN - またはユーザー名/パスワード:
--username/UV_PUBLISH_USERNAMEおよび--password/UV_PUBLISH_PASSWORD
デバッグ
MCP サーバーは stdio 経由で実行されるため、デバッグが難しい場合があります。最適なデバッグ体験のために、MCP Inspector の使用を強くおすすめします。
次のコマンドを使い、npm から MCP Inspector を起動できます。
npx @modelcontextprotocol/inspector uv --directory /Users/user/generative_ai/model_context_protocol/s3-mcp-server run s3-mcp-server
起動すると、Inspector にブラウザーでアクセスできる URL が表示され、デバッグを開始できます。
セキュリティ
詳細については、CONTRIBUTING を参照してください。
ライセンス
このライブラリは MIT-0 License の下でライセンスされています。LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。