AWS SNS SQS MCP サーバーとは?
AWS SNS SQS MCP サーバーは軽量なアプリケーションで、Amazon Simple Notification Service (SNS) と Simple Queue Service (SQS) の操作を標準化されたMCPツールとして公開します。これにより、大規模言語モデル(LLM)やインテリジェントエージェントが、AWSのメッセージリソースを安全にプログラム的に管理できます。厳格なアクセス制御がリソースタグ付けによって確保され、MCPサーバーは自分が作成したリソースのみを変更できるため、既存のインフラに誤ってまたは不正に変更を加えることがありません。
設定方法
-
前提条件
uv
と Python (3.10) をインストールします。- 最小権限の原則に従った IAM ロールを持つ AWS アカウントを準備します(例: 機能全体のために
AmazonSNSFullAccess
/AmazonSQSFullAccess
、制限された操作のための読み取り専用ロール)。 - ホストマシン上にこのロールの AWS CLI プロファイルを設定します。
-
インストール
uv
または Docker を使用して、マシン上にawslabs.amazon-sns-sqs-mcp-server
をインストールして実行します。- MCP クライアント(例: CLI または API)をこのサーバーを含むように設定します。設定例:
{ "mcpServers": { "awslabs.amazon-sns-sqs-mcp-server": { "command": "uvx", "args": ["awslabs.amazon-sns-sqs-mcp-server@latest"], "env": { "AWS_PROFILE": "your-aws-profile", "AWS_REGION": "us-east-1" } } } }
- Dockerを使用する場合は、AWS資格情報を含む
.env
ファイルをセットアップし、Docker実行コマンドで環境ファイルとして使用します。
-
サーバーオプション
- デフォルトではリソース作成が無効になっています。SNSトピックやSQSキューを作成するツールを有効にするには、
--allow-resource-creation
というコマンドラインフラグを渡します。 - このサーバーによって作成されたすべてのリソースにはタグが付けられ、タグ付けされたリソースのみがサーバーによって変更または削除できます。セキュリティのためです。
- デフォルトではリソース作成が無効になっています。SNSトピックやSQSキューを作成するツールを有効にするには、
使用方法
- 設定された環境とアクセス資格情報で MCP サーバーをスタート:
uv
を使用して:uv run awslabs.amazon-sns-sqs-mcp-server --allow-resource-creation
- Docker を使用する場合、AWS 資格情報のために
.env
ファイルを提供してください。
- MCP クライアントを接続し、
tools/list
エンドポイントを介して利用可能なツールを一覧表示します。 create_topic
、create_queue
、publish
、またはsend_message
などのツールを呼び出し、適切なパラメータを渡してtools/call
エンドポイントを使用します。- リソースのセキュリティを管理: MCP サーバーによって作成されたリソース(つまり、タグ付けされたもの)のみが更新または削除できます。
- 本番環境での作成を無効にする: 誤った変更を防ぐために、リソース作成を無効にしてサーバーを実行します。
主な機能
- LLM駆動のアプリケーションのためのAmazon SNSトピックとSQSキューの安全でプログラム的な作成と管理。
- リソースレベルのアクセス制御: このサーバーによって作成され、タグ付けされたリソースのみが変更可能で、リスクを最小限に抑えます。
- MCPを通じてツールを動的に発見し、呼び出すことができます(
tools/list
、tools/call
)。 - Python(
uv
)またはDockerによる柔軟な展開。 - IAMロール、プロファイル、およびリージョン設定による細かい権限管理。
- 異なる環境やニーズに応じて実行時にリソース作成を有効/無効にできます。
- 構成、エラーハンドリング、セキュリティに関するベストプラクティスが組み込まれています。
使用例
- インテリジェントエージェントのワークフローや開発者アシスタント内でのAWSメッセージリソースのオーケストレーションを自動化します。
- 通知を発行し、ジョブを管理し、AWS全体で分散タスクを同期させる必要があるLLM駆動の開発ツールを構築します。
- 会話型UIを使用してAWSのトピックやキューを作成、購読、発行、監視し、明確なセキュリティ境界を提供します。
- AIエージェントにメッセージ管理操作を安全に委任し、無関係なインフラに対する誤った変更のリスクを回避します。
FAQ
Q1. 既存のSNS/SQSリソースをなぜ変更または削除できないのですか?
MCPサーバーによって作成されたリソース(つまり、バージョンタグが付いたもの)のみがこのサーバーによって変更または削除できます。これにより、既存のインフラに誤って干渉することを防ぎます。
Q2. トピックやキューの作成を有効または無効にするにはどうすればよいですか?
デフォルトではリソース作成は無効になっています。作成ツールを許可するために --allow-resource-creation
フラグを指定してサーバーを実行してください。これらのツールを非表示にし、誤ったリソース作成を防ぐためには、--disallow-resource-creation
を指定して実行します。
Q3. 権限エラーが出た場合はどうすればよいですか?
IAMロールまたはユーザーが必要な権限(AmazonSNSFullAccess
、AmazonSQSFullAccess
、または対応する読み取り専用)を持っていることを確認し、サーバー環境でAWSプロファイルが正しく設定されているか確認してください。
Q4. このサーバーを本番環境で安全に使用できますか?
はい、専用のIAMプロファイルを使用し、構成フラグを使用してリソース作成を制限することをお勧めします。このサーバーによって影響を受けるのはタグ付けされたリソースのみであり、AWSの最小権限のベストプラクティスに従う必要があります。
Q5. SNS/SQS操作にMCPを使用するメリットは何ですか?
MCPを使用すると、異なるクライアント、LLM、およびインフラ間でメッセージリソースへの安全で標準化された相互運用可能なアクセスが可能となり、エージェントやアプリケーションコードの可搬性が向上します。