Localstack

io.github.giovanemartinsPublished by GitHub account giovanemartinsv1.1.5Updated Oct 24, 2026

MCP server for LocalStack AWS services, enabling AI agents to interact with local AWS infra.

Overview

AI-generated overview

Local MCP server that lets an assistant create, inspect and modify AWS resources in a local LocalStack instance across S3, SQS, SNS, EventBridge, Kinesis…

What you can do
  • Manage S3 buckets and objects: list, create, delete, upload and download text or JSON content
  • Work with SQS queues and messages: create, send, receive, delete, purge
  • Handle SNS topics and subscriptions, and publish messages
  • Operate EventBridge buses, rules, targets and custom events
  • Manage Kinesis streams and records, and DynamoDB tables, items, scans and queries
  • Run Lambda functions and read their responses and logs; manage Secrets Manager secrets, SSM parameters and SES identities and email sending
When to use it
Useful when developing or testing AWS-based applications locally: bootstrapping buckets, queues, tables and parameters from a spec, seeding test data, debugging event-driven flows, or smoke-testing Lambda functions without touching real AWS accounts.
Requirements
Runs locally via npm or npx, so Node.js 20+ is needed, plus Docker to run LocalStack itself. Configuration is by environment variables: LOCALSTACK_ENDPOINT (default AWS_REGION, AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, which the README shows as fake test values. Desktop client only.
Before you install
The tools create, overwrite and delete resources and data, including buckets, tables, queues, secrets and parameters, and can send email through SES. Credentials are passed as environment variables; the README expects dummy LocalStack values, so avoid pointing it at real AWS endpoints or supplying live AWS keys. Secret values read through Secrets Manager and SSM are returned to the assistant.

Installation

In SourceWeft

  1. Open Localstack in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

LocalStack MCP Server

[MCP Registry] [npm]

MCP server that exposes LocalStack-managed AWS services as AI-agent tools, enabling LLMs and AI agents to interact with local AWS infrastructure during development and testing.

Installation

The server is published to npm and the MCP Registry. No local build needed.

bash
npm install -g @giovane.martins/localstack

Or run directly with npx (no install required):

bash
npx @giovane.martins/localstack

Requirements

  • Node.js 20+
  • Docker (for LocalStack)

Local Development

bash
# 1. Start LocalStackdocker compose up -d
# 2. Install dependenciespnpm install
# 3. Buildpnpm run build
# 4. Runpnpm start

Configuration

All configuration is via environment variables:

VariableDefaultDescription
LOCALSTACK_ENDPOINThttp://localhost:4566LocalStack base URL
AWS_REGIONus-east-1AWS region
AWS_ACCESS_KEY_IDtestFake credentials for LocalStack
AWS_SECRET_ACCESS_KEYtestFake credentials for LocalStack

Running Tests

Requires LocalStack running (docker compose up -d).

bash
pnpm test

MCP Client Configuration

Using the published npm package (recommended)

Add to your MCP client config (e.g. ~/.config/claude/claude_desktop_config.json):

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"      }    }  }}

Using a local build

json
{  "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"      }    }  }}

Using tsx for development (no build step)

json
{  "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"      }    }  }}

Available Tools

S3

ToolDescription
s3_list_bucketsList all S3 buckets
s3_create_bucketCreate a bucket
s3_delete_bucketDelete a bucket
s3_put_objectUpload an object (text/JSON content)
s3_get_objectDownload an object as text
s3_delete_objectDelete an object
s3_list_objectsList objects with optional prefix filter

SQS

ToolDescription
sqs_list_queuesList all queues
sqs_create_queueCreate a standard or FIFO queue
sqs_delete_queueDelete a queue
sqs_send_messageSend a message
sqs_receive_messagesReceive up to 10 messages (with long-polling support)
sqs_delete_messageDelete a message by receipt handle
sqs_purge_queuePurge all messages from a queue

SNS

ToolDescription
sns_list_topicsList all topics
sns_create_topicCreate a standard or FIFO topic
sns_delete_topicDelete a topic
sns_subscribeSubscribe an endpoint to a topic
sns_unsubscribeUnsubscribe from a topic
sns_list_subscriptions_by_topicList all subscriptions for a topic
sns_publishPublish a message to a topic

EventBridge

ToolDescription
eventbridge_list_busesList all event buses
eventbridge_create_busCreate a custom event bus
eventbridge_delete_busDelete a custom event bus
eventbridge_list_rulesList rules on a bus
eventbridge_put_ruleCreate or update a rule (event pattern or schedule)
eventbridge_delete_ruleDelete a rule
eventbridge_describe_ruleDescribe a rule
eventbridge_enable_ruleEnable a rule
eventbridge_disable_ruleDisable a rule
eventbridge_put_targetsAdd or update rule targets
eventbridge_list_targetsList targets for a rule
eventbridge_remove_targetsRemove targets from a rule
eventbridge_put_eventsSend custom events to a bus (max 10)

Kinesis

ToolDescription
kinesis_list_streamsList all streams
kinesis_create_streamCreate a stream
kinesis_delete_streamDelete a stream
kinesis_describe_streamDescribe a stream (status, shards)
kinesis_put_recordPut a single record
kinesis_put_recordsPut multiple records (max 500)
kinesis_get_recordsGet records from a shard

DynamoDB

ToolDescription
dynamodb_list_tablesList all tables
dynamodb_create_tableCreate a table (partition key + optional sort key)
dynamodb_delete_tableDelete a table
dynamodb_describe_tableDescribe a table
dynamodb_put_itemPut (create or replace) an item
dynamodb_get_itemGet an item by key
dynamodb_delete_itemDelete an item by key
dynamodb_scanScan all items (with optional filter expression)
dynamodb_queryQuery by key condition

Lambda

ToolDescription
lambda_list_functionsList all functions
lambda_get_functionGet function details
lambda_create_functionCreate a function from a base64-encoded ZIP
lambda_delete_functionDelete a function
lambda_invokeInvoke a function and return its response + logs

Secrets Manager

ToolDescription
secretsmanager_list_secretsList all secrets
secretsmanager_create_secretCreate a new secret
secretsmanager_get_secretGet the value of a secret
secretsmanager_update_secretUpdate the value of a secret
secretsmanager_describe_secretDescribe secret metadata
secretsmanager_delete_secretDelete a secret (with optional force delete)
secretsmanager_restore_secretRestore a previously deleted secret

SSM Parameter Store

ToolDescription
ssm_get_parameterGet a parameter by name
ssm_put_parameterCreate or update a parameter
ssm_delete_parameterDelete a parameter
ssm_delete_parametersDelete up to 10 parameters in batch
ssm_get_parameters_by_pathGet all parameters under a path prefix
ssm_describe_parametersList and describe parameters

SES

ToolDescription
ses_list_identitiesList all verified identities
ses_verify_email_identityVerify an email address
ses_get_identity_verification_attributesGet verification status for identities
ses_delete_identityDelete an identity
ses_send_emailSend an email (plain text and/or HTML)

Use Cases

  • Dev environment bootstrap — create S3 buckets, SQS queues, DynamoDB tables, and SSM parameters in one shot from a spec
  • Test data seeding — populate DynamoDB or S3 before running integration tests
  • Event-driven debugging — publish to EventBridge/SNS/Kinesis and inspect downstream effects without leaving the IDE
  • Secret/config management — read and update Secrets Manager / SSM values during local debug sessions
  • Lambda smoke testing — invoke Lambda functions, capture responses and logs, iterate quickly
  • Queue drain / inspect — receive and inspect SQS messages without a consumer running

Project Structure

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

Source: README.md at commit 6d17dbb

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.1.5LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts