AWS SNS SQS MCP Server

AWS SNS SQS MCP Server

AWS SNS SQS MCP伺服器是一個橋接器,允許生成式AI模型通過標準化的模型上下文協議(MCP)安全地創建、管理及與Amazon SNS主題和SQS佇列互動。這個伺服器使得上下文感知的AI應用能夠在AWS上以嚴格的安全控制讀取、寫入和組織消息資源,並將SNS和SQS操作曝光為MCP工具。


查看協議

什麼是AWS SNS SQS MCP伺服器?

AWS SNS SQS MCP伺服器是一個輕量級應用程式,將Amazon簡單通知服務(SNS)和簡單佇列服務(SQS)的操作作為標準化的MCP工具,讓大型語言模型(LLMs)和智能代理安全且以程式化方式管理AWS消息資源。它透過資源標籤確保嚴格的存取控制,使得MCP伺服器只能修改其創建的資源,避免意外或未經授權的變更。

如何配置

  1. 先決條件

    • 安裝uv和Python (3.10)
    • 準備您的AWS帳戶,設置IAM角色,遵循最小權限原則(例如,為了完整功能使用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,請設置一個.env檔案以包含AWS憑證,並在Docker運行命令中使用該環境檔案。
  3. 伺服器選項

    • 預設情況下,資源創建是禁用的。通過命令行標誌--allow-resource-creation來啟用創建SNS主題或SQS佇列的工具。
    • 此伺服器創建的所有資源都被標記,只有標記的資源能被伺服器修改或刪除,以保護您的安全。

如何使用

  1. 啟動MCP伺服器,使用您配置的環境和存取憑證:
    • 使用uv
      uv run awslabs.amazon-sns-sqs-mcp-server --allow-resource-creation
      
    • 使用Docker時,確保提供您的.env檔案以進行AWS憑證。
  2. 連接您的MCP客戶端,通過tools/list端點列出可用的工具。
  3. 調用工具,如create_topiccreate_queuepublishsend_message,使用tools/call端點並傳遞適當的參數。
  4. 管理資源安全: 只有由MCP伺服器創建的資源(即標記的)才可通過它進行更新或刪除。
  5. 在生產環境中禁用創建: 若希望防止意外更改,請在禁用資源創建的情況下運行伺服器。

主要特點

  • 為LLM驅動的應用程式安全、程式化地創建和管理Amazon SNS主題和SQS佇列。
  • 基於資源的存取控制:只有由此伺服器創建並標記的資源才能被修改,從而降低風險。
  • 可以通過MCP動態發現和調用工具(tools/listtools/call)。
  • 使用Python(uv)或Docker進行靈活部署。
  • 通過IAM角色、配置檔和區域設置實現精細的權限控制。
  • 根據不同環境和需求在運行時啟用/禁用資源創建。
  • 內建的配置、錯誤處理和安全最佳實踐。

使用案例

  • 自動化AWS消息資源在智能代理工作流或開發助手中的協調。
  • 構建需要發布通知、管理作業或在AWS上同步分佈任務的LLM驅動的開發者工具。
  • 啟用對話式UI創建、訂閱、發布或監控AWS主題和佇列,並設置清晰的安全邊界。
  • 安全地將消息管理操作委派給AI代理,而不冒著意外更改不相關基礎設施的風險。

常見問題

Q1. 為什麼我不能修改或刪除我現有的SNS/SQS資源?
只有由MCP伺服器創建的資源(即帶有其版本標籤的資源)才能由此伺服器修改或刪除,以確保它不會意外干擾現有的基礎設施。

Q2. 如何啟用或禁用主題或佇列的創建?
預設情況下,資源創建是禁用的。運行伺服器時用--allow-resource-creation標誌來允許創建工具;省略或設置--disallow-resource-creation以隱藏這些工具並防止意外創建資源。

Q3. 如果我遇到權限錯誤該怎麼辦?
確保您的IAM角色或用戶擁有所需的權限(AmazonSNSFullAccessAmazonSQSFullAccess或其只讀等價),以及在伺服器環境中正確設置了AWS配置檔。

Q4. 我可以安全地在生產環境中使用此伺服器嗎?
是的,建議使用專用的IAM配置檔並使用配置標誌限制資源創建。只有被標記的資源會受到伺服器的影響,您應遵循AWS最小權限的最佳實踐。

Q5. 使用MCP進行SNS/SQS操作的優勢是什麼?
MCP允許安全、標準化和可互操作的方式訪問各種客戶端、LLMs和基礎設施中的消息資源,允許代理和應用程式代碼的可攜性。