mcpField
L
localstack

localstack

本地服务
github.com/giovanemartins云与基础设施134 周前更新

关于 localstack

localstack 将 LocalStack 管理的 AWS 服务封装为工具,供开发和测试期间的 AI Agent 操作本地 AWS 基础设施。涵盖存储、消息、数据库、计算与配置等服务。

主要功能

  1. 01管理 S3 存储桶和对象
  2. 02操作 SQS 队列与消息
  3. 03管理 SNS 主题和订阅
  4. 04配置 EventBridge 规则与事件
  5. 05操作 Kinesis、DynamoDB 和 Lambda
  6. 06管理 Secrets Manager、SSM 与 SES

适用场景

  1. 01按规格初始化本地开发环境
  2. 02为集成测试填充 DynamoDB 或 S3 数据
  3. 03发布并检查事件流转结果
  4. 04本地调试时调用 Lambda 并查看日志

MCP 相关

此 MCP 服务将 LocalStack 管理的 AWS 服务作为工具开放给 MCP 客户端。通过环境变量配置 LocalStack 端点、区域和凭据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"giovanemartins-localstack": {
"command": "npx",
"args": [
"-y",
"@giovane.martins/localstack"
],
"env": {
"LOCALSTACK_ENDPOINT": "<LOCALSTACK_ENDPOINT>",
"AWS_REGION": "<AWS_REGION>",
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>"
}
}
}
}
启动命令npx -y @giovane.martins/localstack
需要配置的环境变量
LOCALSTACK_ENDPOINTLocalStack endpoint URL
AWS_REGIONAWS region
AWS_ACCESS_KEY_ID密钥AWS access key ID
AWS_SECRET_ACCESS_KEY密钥AWS secret access key

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@giovane.martins/localstack1.1.5

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

LocalStack MCP 服务

MCP Registry npm

此 MCP 服务将 LocalStack 管理的 AWS 服务作为 AI Agent 工具提供,使大模型和 AI Agent 能够在开发和测试期间与本地 AWS 基础设施交互。

安装

此服务已发布到 npm 和 MCP Registry。无需本地构建。

npm install -g @giovane.martins/localstack

也可以通过 npx 直接运行(无需安装):

npx @giovane.martins/localstack

要求

  • Node.js 20+
  • Docker(用于 LocalStack)

本地开发

# 1. Start LocalStack
docker compose up -d

# 2. Install dependencies
pnpm install

# 3. Build
pnpm run build

# 4. Run
pnpm start

配置

所有配置均通过环境变量进行:

变量默认值描述
LOCALSTACK_ENDPOINThttp://localhost:4566LocalStack 基础 URL
AWS_REGIONus-east-1AWS 区域
AWS_ACCESS_KEY_IDtestLocalStack 的虚假凭证
AWS_SECRET_ACCESS_KEYtestLocalStack 的虚假凭证

运行测试

需要 LocalStack 正在运行(docker compose up -d)。

pnpm test

MCP 客户端配置

使用已发布的 npm 包(推荐)

将以下内容添加到 MCP 客户端配置中(例如 ~/.config/claude/claude_desktop_config.json):

{
  "mcpServers": {
    "localstack": {
      "command": "npx",
      "args": ["-y", "@giovane.martins/localstack"],
      "env": {
        "LOCALSTACK_ENDPOINT": "http://localhost:4566",
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "test",
        "AWS_SECRET_ACCESS_KEY": "test"
      }
    }
  }
}
使用本地构建
{
  "mcpServers": {
    "localstack": {
      "command": "node",
      "args": ["/path/to/mcp-servers/localstack/dist/index.js"],
      "env": {
        "LOCALSTACK_ENDPOINT": "http://localhost:4566",
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "test",
        "AWS_SECRET_ACCESS_KEY": "test"
      }
    }
  }
}
在开发时使用 tsx(无需构建)
{
  "mcpServers": {
    "localstack": {
      "command": "npx",
      "args": ["tsx", "/path/to/mcp-servers/localstack/src/index.ts"],
      "env": {
        "LOCALSTACK_ENDPOINT": "http://localhost:4566",
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "test",
        "AWS_SECRET_ACCESS_KEY": "test"
      }
    }
  }
}

可用工具

S3
工具描述
s3_list_buckets列出所有 S3 存储桶
s3_create_bucket创建存储桶
s3_delete_bucket删除存储桶
s3_put_object上传对象(文本/JSON 内容)
s3_get_object将对象下载为文本
s3_delete_object删除对象
s3_list_objects列出对象,可选按前缀筛选
SQS
工具描述
sqs_list_queues列出所有队列
sqs_create_queue创建标准队列或 FIFO 队列
sqs_delete_queue删除队列
sqs_send_message发送消息
sqs_receive_messages接收最多 10 条消息(支持长轮询)
sqs_delete_message根据收据句柄删除消息
sqs_purge_queue清空队列中的所有消息
SNS
工具描述
sns_list_topics列出所有主题
sns_create_topic创建标准主题或 FIFO 主题
sns_delete_topic删除主题
sns_subscribe将终端节点订阅到主题
sns_unsubscribe取消订阅主题
sns_list_subscriptions_by_topic列出主题的所有订阅
sns_publish向主题发布消息
EventBridge
工具描述
eventbridge_list_buses列出所有事件总线
eventbridge_create_bus创建自定义事件总线
eventbridge_delete_bus删除自定义事件总线
eventbridge_list_rules列出总线上的规则
eventbridge_put_rule创建或更新规则(事件模式或计划)
eventbridge_delete_rule删除规则
eventbridge_describe_rule描述规则
eventbridge_enable_rule启用规则
eventbridge_disable_rule禁用规则
eventbridge_put_targets添加或更新规则目标
eventbridge_list_targets列出规则的目标
eventbridge_remove_targets从规则中移除目标
eventbridge_put_events向总线发送自定义事件(最多 10 个)
Kinesis
工具描述
kinesis_list_streams列出所有流
kinesis_create_stream创建流
kinesis_delete_stream删除流
kinesis_describe_stream描述流(状态、分片)
kinesis_put_record写入一条记录
kinesis_put_records写入多条记录(最多 500 条)
kinesis_get_records从分片获取记录
DynamoDB
工具描述
dynamodb_list_tables列出所有表
dynamodb_create_table创建表(分区键 + 可选的排序键)
dynamodb_delete_table删除表
dynamodb_describe_table描述表
dynamodb_put_item写入(创建或替换)项目
dynamodb_get_item根据键获取项目
dynamodb_delete_item根据键删除项目
dynamodb_scan扫描所有项目(可选筛选表达式)
dynamodb_query根据键条件查询
Lambda
工具描述
lambda_list_functions列出所有函数
lambda_get_function获取函数详情
lambda_create_function根据 Base64 编码的 ZIP 创建函数
lambda_delete_function删除函数
lambda_invoke调用函数并返回其响应和日志
Secrets Manager
工具描述
secretsmanager_list_secrets列出所有密钥
secretsmanager_create_secret创建新密钥
secretsmanager_get_secret获取密钥的值
secretsmanager_update_secret更新密钥的值
secretsmanager_describe_secret描述密钥元数据
secretsmanager_delete_secret删除密钥(可选强制删除)
secretsmanager_restore_secret恢复之前删除的密钥
SSM Parameter Store
工具描述
ssm_get_parameter按名称获取参数
ssm_put_parameter创建或更新参数
ssm_delete_parameter删除参数
ssm_delete_parameters批量删除最多 10 个参数
ssm_get_parameters_by_path获取指定路径前缀下的所有参数
ssm_describe_parameters列出并描述参数
SES
工具描述
ses_list_identities列出所有已验证身份
ses_verify_email_identity验证电子邮件地址
ses_get_identity_verification_attributes获取身份的验证状态
ses_delete_identity删除身份
ses_send_email发送电子邮件(纯文本和/或 HTML)

使用场景

  • 开发环境初始化 — 根据规范一次性创建 S3 存储桶、SQS 队列、DynamoDB 表和 SSM 参数
  • 测试数据填充 — 在运行集成测试前向 DynamoDB 或 S3 填充数据
  • 事件驱动调试 — 向 EventBridge/SNS/Kinesis 发布消息,并在不离开 IDE 的情况下检查下游影响
  • 密钥/配置管理 — 在本地调试会话期间读取和更新 Secrets Manager / SSM 中的值
  • Lambda 冒烟测试 — 调用 Lambda 函数、捕获响应和日志,并快速迭代
  • 队列清空/检查 — 无需运行消费者即可接收并检查 SQS 消息

项目结构

localstack/
├── docker-compose.yml      # LocalStack container
├── package.json
├── tsconfig.json
├── vitest.config.ts
├── src/
│   ├── index.ts            # MCP server entry point
│   ├── config.ts           # Environment config
│   ├── tools/              # One file per AWS service
│   │   ├── s3.ts
│   │   ├── sqs.ts
│   │   ├── sns.ts
│   │   ├── eventbridge.ts
│   │   ├── kinesis.ts
│   │   ├── dynamodb.ts
│   │   ├── lambda.ts
│   │   ├── secretsmanager.ts
│   │   ├── ssm.ts
│   │   └── ses.ts
│   └── utils/
│       ├── client.ts       # Shared AWS client factory (LocalStack endpoint)
│       └── errors.ts       # Standardised MCP error formatting
└── tests/                  # Integration tests (real LocalStack)
    ├── s3.test.ts
    ├── sqs.test.ts
    ├── sns.test.ts
    ├── eventbridge.test.ts
    ├── kinesis.test.ts
    ├── dynamodb.test.ts
    ├── lambda.test.ts
    ├── secretsmanager.test.ts
    ├── ssm.test.ts
    └── ses.test.ts

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。