AWS リソース MCP サーバー
概要
boto3 を介して任意の AWS リソースをクエリするための、生成された Python コードの実行を提供するモデルコンテキストプロトコル (MCP) サーバー実装。
自己責任でお願いします。操作をReadyOnlyに限定していないため、慎重な運用担当者がこのツールを使って管理操作を行うことができます。実行できる操作の権限は、AWSユーザーロールによって決まります。
デモ: Dynamodb の権限エラーを修正する
https://github.com/user-attachments/assets/de88688d-d7a0-45e1-94eb-3f5d71e9a7c7
Related MCP server: MCP Python Toolbox
なぜ別の AWS MCP サーバーが必要なのでしょうか?
AWS Chatbot を開発者アクセスで試してみました。無料利用枠ではリソースに対して月25クエリまでという制限があります。次の利用枠は月額19ドルで、私が使わない機能の90%が含まれています。結果はJSON形式で、多くの制限があります。
aws-mcpを使用しようとしましたが、いくつかの問題が発生しました。
セットアップの手間: Gitリポジトリをクローンしてローカルセットアップを行う必要があった
安定性の問題: 私のMacでは十分に安定していませんでした
Node.jsスタック: Python開発者として、私はNode.jsのコードベースに効果的に貢献することができませんでした。
そこで私は次のような新しいアプローチを考案しました。
Docker イメージから直接実行 - git クローンは不要
安定性を高めるためにPythonとboto3を使用
Pythonユーザーが簡単に貢献できるようにする
コード実行のための適切なサンドボックスが含まれています
すべてをコンテナに入れて清潔に保つ
モデルコンテキストプロトコルとその動作の詳細については、 Anthropic の MCP ドキュメントを参照してください。
コンポーネント
リソース
サーバーは次のリソースを公開します。
aws://query_resources: boto3 クエリを通じて AWS リソースへのアクセスを提供する動的リソース
クエリの例
実行できるクエリの例を次に示します。
S3 バケットを一覧表示します。
最新の CodePipeline デプロイメントを取得します。
注:すべてのコードスニペットは、クライアントに返されるresult変数を設定する必要があります。 result変数は、AWS固有のオブジェクトと日時値を適切に処理しながら、自動的にJSON形式に変換されます。
ツール
サーバーは AWS クエリを実行するためのツールを提供します。
aws_resources_query_or_modifyboto3 コードスニペットを実行して AWS リソースをクエリまたは変更する
入力:
code_snippet(文字列): boto3 を使用して AWS リソースをクエリする Python コードコードはクエリ出力を
result変数に設定する必要がある
許可されるインポート:
ボト3
オペレーター
JSON
日時
ピッツ
日付ユーティリティ
再
時間
利用可能な組み込み関数:
基本型: dict、list、tuple、set、str、int、float、bool
演算: len、max、min、sorted、filter、map、sum、any、all
オブジェクト処理: hasattr、getattr、isinstance
その他: 印刷、輸入
実装の詳細
サーバーにはいくつかの安全機能が含まれています。
インポートとコード構造を検証するための AST ベースのコード分析
組み込み関数が制限された制限された実行環境
AWS 固有のオブジェクトを適切に処理して結果を JSON シリアル化します
適切なエラー処理と報告
設定
前提条件
AWSリソースをクエリするには、適切な権限を持つAWS認証情報が必要です。認証情報は、以下の方法で取得できます。
AWSアカウントでIAMユーザーを作成する
プログラムによるアクセスのためのアクセスキーの生成
IAM ユーザーがクエリを実行する AWS サービスに必要な権限を持っていることを確認する
次の環境変数が必要です。
AWS_ACCESS_KEY_ID: AWSアクセスキーAWS_SECRET_ACCESS_KEY: AWSシークレットキーAWS_SESSION_TOKEN: (オプション) 一時認証情報を使用する場合のAWSセッショントークンAWS_DEFAULT_REGION: AWS リージョン (設定されていない場合はデフォルトで 'us-east-1' になります)
~/.aws/credentialsファイルに保存されているプロファイルを使用することもできます。これを行うには、 AWS_PROFILE環境変数にプロファイル名を設定します。
注意: AWS 認証情報は安全に保管し、バージョン管理にコミットしないでください。
Smithery経由でインストール
Smithery経由で Claude Desktop 用の AWS Resources MCP Server を自動的にインストールするには:
Dockerのインストール
イメージはローカルでビルドすることも、Docker Hubからプルすることもできます。このイメージはLinuxプラットフォーム用にビルドされています。
サポートされているプラットフォーム
Linux/amd64
Linux/arm64
Linux/arm/v7
オプション1: Docker Hubからプルする
オプション2: ローカルで構築する
コンテナを実行します。
または、保存された資格情報とプロファイルを使用します。
クロスプラットフォームパブリッシング
複数のプラットフォーム向けにDockerイメージを公開するには、 docker buildxコマンドを使用します。以下の手順に従ってください。
新しいビルダー インスタンスを作成します(まだ作成していない場合)。
docker buildx create --use複数のプラットフォーム用のイメージをビルドしてプッシュします。
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t buryhuang/mcp-server-aws-resources:latest --push .指定されたプラットフォームでイメージが使用可能であることを確認します。
docker buildx imagetools inspect buryhuang/mcp-server-aws-resources:latest