LocalStack MCP Server 是一个面向 LocalStack 的 Model Context Protocol(MCP)服务器,目标是让 AI 智能体在本机上管理与交互 LocalStack 环境,从而在本地模拟云服务,帮助软件团队和 AI 智能体更快、更安全地验证安全性、质量与可靠性。该服务器目前以实验性公开预览形式提供。
用途
- 通过自然语言让 MCP 客户端(如 Cursor、Claude、VS Code 等)直接操作本机的 LocalStack 环境及其模拟的 AWS 服务,无需编写自定义脚本或手动管理 LocalStack。
主要能力
- 生命周期管理:启动、停止、重启并监控 LocalStack 的 AWS、Snowflake 和 Azure 模拟器,并内置认证。
- 基础设施部署:部署 CDK、Terraform、SAM 项目,并支持自动配置检测。
- 文档检索:搜索 LocalStack 文档,获取指南、API 参考和配置细节。
- 日志与权限:解析日志、捕获错误,并可根据违规情况自动生成 IAM 策略。
- 故障注入:向 LocalStack 注入混沌故障和网络效应,用于测试系统韧性。
- 状态管理:通过 Cloud Pods 管理 LocalStack 状态快照;通过基于文件的导入导出工作流在本地导出、导入、检查和重置 LocalStack 状态。
- 扩展管理:从市场安装、移除、列出和发现 LocalStack Extensions。
- 临时实例:启动和管理 Ephemeral Instances,用于远程 LocalStack 测试工作流。
- 资源复制:使用 AWS Replicator 将外部 AWS 资源复制到 LocalStack,使 IaC 栈能在本地解析共享依赖。
- 流程检查:通过 App Inspector 检查应用流程,包括 traces、spans、events、payload 元数据以及 IAM 策略评估。
- 预置提示词:从现成的 MCP prompts 启动可重复的 LocalStack 工作流,包括基础设施验证和集成测试生成。
使用方式
- 推荐通过交互式设置向导安装:向导会检测已安装的 MCP 客户端,询问希望的运行方式,并自动写入配置。它还会检查前置条件(Node.js、Docker),从环境中读取或询问 LOCALSTACK_AUTH_TOKEN,并可接受额外的 LocalStack 配置(如 DEBUG=1,PERSISTENCE=1)。向导也支持完全非交互式运行,便于写入 dotfiles 或脚本;可通过 npx -y @localstack/localstack-mcp-server init --help 查看所有选项。
- 手动配置:在 MCP 客户端配置文件中添加使用 npx 运行服务器的配置。服务器通过 Docker 守护进程管理 LocalStack。
- Docker 方式:localstack/localstack-mcp-server 镜像内置 Terraform/tflocal、CDK/cdklocal、SAM/samlocal 和 Snowflake CLI,宿主只需安装 Docker;容器通过挂载的 Docker socket 在宿主上以 sibling 容器方式运行 LocalStack。
- 从源码运行:可将 command 和 args 指向本地构建版本。
- 内置工具开发:基于 XMCP 框架,可通过在 src/tools 目录新增文件并在 manifest.json 中记录来添加新工具。
前置条件
- Docker 已安装并运行。
- 若需部署 CDK、Terraform 或 SAM 项目,系统路径中需安装 cdklocal、tflocal 或 samlocal。
- 若使用 Snowflake 工具,系统路径中需安装 Snowflake CLI(snow)。
- 若使用 Azure 工具,系统路径中需安装 Azure CLI(az)。
- 所有 MCP 工具均需要有效的 LocalStack Auth Token,并以 LOCALSTACK_AUTH_TOKEN 配置。
- Node.js v20 或更高版本需安装在系统路径中。
可向智能体提出的示例
- “启动 LocalStack 并部署 ./infra 中的 Terraform 项目,然后告诉我哪些资源已启动。”
- “我的 Lambda 调用失败了。读取 LocalStack 日志,找出权限错误,并生成修复它们的 IAM 策略。”
- “向 DynamoDB 注入 500ms 延迟,并确认我的重试逻辑仍然有效。”
- “在 LocalStack 文档中搜索如何启用 S3 事件通知并总结步骤。”
- “启动 LocalStack Azure 模拟器,创建资源组和存储账户,并将 ./data/sample.csv 上传到新的 blob 容器。”
迁移说明(无 CLI 生命周期)
- 自 v0.6.0 起,MCP 服务器不再使用或要求 localstack CLI,LocalStack 容器直接通过 Docker Engine API 创建。
- 启动时不再读取 ~/.localstack/*.env 配置文件和 DOCKER_FLAGS;请通过 localstack-management start 操作的 envVars 参数传递配置,或在 MCP 服务器环境中设置 LOCALSTACK_ 前缀变量。
- 除 LOCALSTACK_* / PROVIDER_OVERRIDE_* 外,仅会从宿主环境转发一组精选的常见无前缀配置变量。
- 默认发布端口 443;若本地 443 被占用,可设置 GATEWAY_LISTEN=:4566 跳过。
- 服务器创建的容器名为 localstack-main;外部启动的 localstack-aws 容器仍会被检测和管理,重启会保留其名称、镜像和卷。
- AWS Replicator 特定源凭证可使用 AWS_REPLICATOR_SOURCE_ 前缀变体,不要混用前缀与无前缀的源凭证组。
限制与状态
- 该服务器目前为实验性公开预览。
- 所有 MCP 工具均需要 LOCALSTACK_AUTH_TOKEN。
- 使用 Azure 工具、Snowflake 工具、CDK/Terraform/SAM 部署分别需要对应 CLI 或工具安装在系统路径中。
- 具体收费、价格、平台细节暂未提供。
项目采用 Apache License 2.0 许可,仓库位于 GitHub。