什么是 AWS SNS SQS MCP 服务器?
AWS SNS SQS MCP 服务器是一个轻量级应用,它将 Amazon 简单通知服务(SNS)和简单队列服务(SQS)操作作为标准化的 MCP 工具暴露出来,使大型语言模型(LLMs)和智能代理能够安全地以编程方式管理 AWS 消息资源。通过资源标记,它确保严格的访问控制,因此 MCP 服务器只能修改它创建的资源,防止意外或未授权的更改已存在的基础设施。
如何配置
-
前提条件
- 安装
uv
和 Python (3.10) - 准备您的 AWS 账户,并创建 IAM 角色,遵循最小权限原则(例如,
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,请设置
.env
文件,包含 AWS 凭证,并在 Docker 运行命令中使用该环境文件。
- 使用
-
服务器选项
- 默认情况下,资源创建是禁用的。通过命令行标志
--allow-resource-creation
来启用创建 SNS 主题或 SQS 队列的工具。 - 该服务器创建的所有资源都带有标签,只有带标签的资源才能被该服务器修改或删除,以确保您的安全。
- 默认情况下,资源创建是禁用的。通过命令行标志
如何使用
- 启动 MCP 服务器,并使用您的配置环境和访问凭证:
- 使用
uv
:uv run awslabs.amazon-sns-sqs-mcp-server --allow-resource-creation
- 使用 Docker 时,确保提供您的
.env
文件以获取 AWS 凭证。
- 使用
- 连接您的 MCP 客户端,通过
tools/list
端点列出可用的工具。 - 调用工具,如
create_topic
、create_queue
、publish
或send_message
,使用tools/call
端点并传递适当的参数。 - 管理资源安全性: 仅能通过 MCP 服务器更新或删除其创建的(即带标签的)资源。
- 在生产中禁用创建: 如果要防止意外更改,请在禁用资源创建的情况下运行服务器。
关键特性
- 安全、程序化创建和管理 Amazon SNS 主题及 SQS 队列,适用于 LLM 驱动的应用。
- 资源级访问控制:只有该服务器创建并标记的资源才能被修改,降低风险。
- 工具可以通过 MCP 动态发现和调用(
tools/list
,tools/call
)。 - 使用 Python (
uv
) 或 Docker 灵活部署。 - 通过 IAM 角色、配置文件和区域设置实施精细权限。
- 根据不同的环境和需求,在运行时启用/禁用资源创建。
- 内置配置、错误处理和安全性的最佳实践。
用例
- 在智能代理工作流或开发者助手中自动化 AWS 消息资源的编排。
- 构建需要发布通知、管理作业或跨 AWS 同步分布式任务的 LLM 驱动的开发工具。
- 使对话式界面能够创建、订阅、发布或监控 AWS 主题和队列,具有清晰的安全边界。
- 安全地将消息管理操作委托给 AI 代理,而无需冒险更改不相关的基础设施。
常见问题
Q1. 为什么我不能修改或删除我现有的 SNS/SQS 资源?
仅限通过 MCP 服务器创建的资源(即,带有其版本标签)可以被该服务器修改或删除,以确保不会意外干扰现有基础设施。
Q2. 如何启用或禁用主题或队列的创建?
默认情况下,资源创建是禁用的。通过 --allow-resource-creation
标志运行服务器以允许创建工具;省略或设置 --disallow-resource-creation
将隐藏这些工具并防止意外创建资源。
Q3. 如果我遇到权限错误该怎么办?
确保您的 IAM 角色或用户具有所需的权限(AmazonSNSFullAccess
、AmazonSQSFullAccess
或只读等效权限),并确保服务器环境中的 AWS 配置文件设置正确。
Q4. 在生产环境中使用该服务器安全吗?
是的,建议使用专用 IAM 配置文件并使用配置选项限制资源创建。只有带标签的资源会受到服务器的影响,并应遵循 AWS 最小权限最佳实践。
Q5. 使用 MCP 进行 SNS/SQS 操作有什么好处?
MCP 允许跨不同客户端、LLM 和基础设施安全地、标准化和互操作地访问消息资源,从而实现代理和应用代码的可移植性。