MCP Hub
Back to servers

localstack

Requires Setup

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

Registry
Stars
1
Updated
Mar 8, 2026
Validated
Mar 10, 2026

Quick Install

npx -y @giovane.martins/localstack

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.

npm install -g @giovane.martins/localstack

Or run directly with npx (no install required):

npx @giovane.martins/localstack

Requirements

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

Local Development

# 1. Start LocalStack
docker compose up -d

# 2. Install dependencies
pnpm install

# 3. Build
pnpm run build

# 4. Run
pnpm 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).

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):

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

{
  "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)

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

Reviews

No reviews yet

Sign in to write a review