AWS SNS SQS MCP Server

AWS SNS SQS MCP Server

AWS SNS SQS MCP 服务器是一个桥梁,允许生成性人工智能模型安全地创建、管理和与 Amazon SNS 主题及 SQS 队列进行交互,使用标准化的模型上下文协议 (MCP)。该服务器使上下文感知的人工智能应用能够在 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. 在生产中禁用创建: 如果要防止意外更改,请在禁用资源创建的情况下运行服务器。

关键特性

  • 安全、程序化创建和管理 Amazon SNS 主题及 SQS 队列,适用于 LLM 驱动的应用。
  • 资源级访问控制:只有该服务器创建并标记的资源才能被修改,降低风险。
  • 工具可以通过 MCP 动态发现和调用(tools/listtools/call)。
  • 使用 Python (uv) 或 Docker 灵活部署。
  • 通过 IAM 角色、配置文件和区域设置实施精细权限。
  • 根据不同的环境和需求,在运行时启用/禁用资源创建。
  • 内置配置、错误处理和安全性的最佳实践。

用例

  • 在智能代理工作流或开发者助手中自动化 AWS 消息资源的编排。
  • 构建需要发布通知、管理作业或跨 AWS 同步分布式任务的 LLM 驱动的开发工具。
  • 使对话式界面能够创建、订阅、发布或监控 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 允许跨不同客户端、LLM 和基础设施安全地、标准化和互操作地访问消息资源,从而实现代理和应用代码的可移植性。