AWS SNS SQS MCP Server

AWS SNS SQS MCP Server

AWS SNS SQS MCP サーバーは、生成AIモデルが Amazon SNS トピックと SQS キューを安全に作成、管理、操作できるようにするブリッジです。標準化されたモデルコンテキストプロトコル(MCP)を通じて、コンテキストを認識したAIアプリケーションがAWS上でメッセージリソースを読み書きし、整理することを可能にします。このサーバーはSNSとSQSの操作をMCPツールとして公開します。


プロトコルを表示

AWS SNS SQS MCP サーバーとは?

AWS SNS SQS MCP サーバーは軽量なアプリケーションで、Amazon Simple Notification Service (SNS) と Simple Queue Service (SQS) の操作を標準化されたMCPツールとして公開します。これにより、大規模言語モデル(LLM)やインテリジェントエージェントが、AWSのメッセージリソースを安全にプログラム的に管理できます。厳格なアクセス制御がリソースタグ付けによって確保され、MCPサーバーは自分が作成したリソースのみを変更できるため、既存のインフラに誤ってまたは不正に変更を加えることがありません。

設定方法

  1. 前提条件

    • uv と Python (3.10) をインストールします。
    • 最小権限の原則に従った IAM ロールを持つ AWS アカウントを準備します(例: 機能全体のために AmazonSNSFullAccess / AmazonSQSFullAccess、制限された操作のための読み取り専用ロール)。
    • ホストマシン上にこのロールの AWS CLI プロファイルを設定します。
  2. インストール

    • 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実行コマンドで環境ファイルとして使用します。
  3. サーバーオプション

    • デフォルトではリソース作成が無効になっています。SNSトピックやSQSキューを作成するツールを有効にするには、--allow-resource-creationというコマンドラインフラグを渡します。
    • このサーバーによって作成されたすべてのリソースにはタグが付けられ、タグ付けされたリソースのみがサーバーによって変更または削除できます。セキュリティのためです。

使用方法

  1. 設定された環境とアクセス資格情報で MCP サーバーをスタート:
    • uv を使用して:
      uv run awslabs.amazon-sns-sqs-mcp-server --allow-resource-creation
      
    • Docker を使用する場合、AWS 資格情報のために .env ファイルを提供してください。
  2. MCP クライアントを接続し、tools/list エンドポイントを介して利用可能なツールを一覧表示します。
  3. create_topiccreate_queuepublish、または send_message などのツールを呼び出し、適切なパラメータを渡して tools/call エンドポイントを使用します。
  4. リソースのセキュリティを管理: MCP サーバーによって作成されたリソース(つまり、タグ付けされたもの)のみが更新または削除できます。
  5. 本番環境での作成を無効にする: 誤った変更を防ぐために、リソース作成を無効にしてサーバーを実行します。

主な機能

  • LLM駆動のアプリケーションのためのAmazon SNSトピックとSQSキューの安全でプログラム的な作成と管理。
  • リソースレベルのアクセス制御: このサーバーによって作成され、タグ付けされたリソースのみが変更可能で、リスクを最小限に抑えます。
  • MCPを通じてツールを動的に発見し、呼び出すことができます(tools/listtools/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ロールまたはユーザーが必要な権限(AmazonSNSFullAccessAmazonSQSFullAccess、または対応する読み取り専用)を持っていることを確認し、サーバー環境でAWSプロファイルが正しく設定されているか確認してください。

Q4. このサーバーを本番環境で安全に使用できますか?
はい、専用のIAMプロファイルを使用し、構成フラグを使用してリソース作成を制限することをお勧めします。このサーバーによって影響を受けるのはタグ付けされたリソースのみであり、AWSの最小権限のベストプラクティスに従う必要があります。

Q5. SNS/SQS操作にMCPを使用するメリットは何ですか?
MCPを使用すると、異なるクライアント、LLM、およびインフラ間でメッセージリソースへの安全で標準化された相互運用可能なアクセスが可能となり、エージェントやアプリケーションコードの可搬性が向上します。