# LocalStack MCP server

> Lets an AI agent manage, deploy, and debug local cloud emulations for AWS, Azure, and Snowflake using natural language.

- Repository: https://github.com/localstack/localstack-mcp-server
- Page: https://hostedmcp.org/servers/localstack/localstack-mcp-server
- Transport: stdio
- Stars: 29
- License: Apache-2.0
- Latest version: 0.5.0

## Install

### Claude Code

```sh
claude mcp add --env LOCALSTACK_AUTH_TOKEN=<YOUR_LOCALSTACK_AUTH_TOKEN> --env AWS_ACCESS_KEY_ID=<YOUR_AWS_ACCESS_KEY_ID> --env AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID=<YOUR_AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID> --env AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY=<YOUR_AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY> --env AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN=<YOUR_AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN> --env AWS_SECRET_ACCESS_KEY=<YOUR_AWS_SECRET_ACCESS_KEY> --env AWS_SESSION_TOKEN=<YOUR_AWS_SESSION_TOKEN> localstack-mcp-server -- npx -y @localstack/localstack-mcp-server
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "localstack-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@localstack/localstack-mcp-server"
      ],
      "env": {
        "LOCALSTACK_AUTH_TOKEN": "<YOUR_LOCALSTACK_AUTH_TOKEN>",
        "AWS_ACCESS_KEY_ID": "<YOUR_AWS_ACCESS_KEY_ID>",
        "AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID>",
        "AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY>",
        "AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN>",
        "AWS_SECRET_ACCESS_KEY": "<YOUR_AWS_SECRET_ACCESS_KEY>",
        "AWS_SESSION_TOKEN": "<YOUR_AWS_SESSION_TOKEN>"
      }
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "localstack-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@localstack/localstack-mcp-server"
      ],
      "env": {
        "LOCALSTACK_AUTH_TOKEN": "<YOUR_LOCALSTACK_AUTH_TOKEN>",
        "AWS_ACCESS_KEY_ID": "<YOUR_AWS_ACCESS_KEY_ID>",
        "AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID>",
        "AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY>",
        "AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN>",
        "AWS_SECRET_ACCESS_KEY": "<YOUR_AWS_SECRET_ACCESS_KEY>",
        "AWS_SESSION_TOKEN": "<YOUR_AWS_SESSION_TOKEN>"
      }
    }
  }
}
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "localstack-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@localstack/localstack-mcp-server"
      ],
      "env": {
        "LOCALSTACK_AUTH_TOKEN": "<YOUR_LOCALSTACK_AUTH_TOKEN>",
        "AWS_ACCESS_KEY_ID": "<YOUR_AWS_ACCESS_KEY_ID>",
        "AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID>",
        "AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY>",
        "AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN>",
        "AWS_SECRET_ACCESS_KEY": "<YOUR_AWS_SECRET_ACCESS_KEY>",
        "AWS_SESSION_TOKEN": "<YOUR_AWS_SESSION_TOKEN>"
      }
    }
  }
}
```

### Codex (`~/.codex/config.toml`)

```toml
[mcp_servers.localstack-mcp-server]
command = "npx"
args = ["-y", "@localstack/localstack-mcp-server"]

[mcp_servers.localstack-mcp-server.env]
LOCALSTACK_AUTH_TOKEN = "<YOUR_LOCALSTACK_AUTH_TOKEN>"
AWS_ACCESS_KEY_ID = "<YOUR_AWS_ACCESS_KEY_ID>"
AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID = "<YOUR_AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID>"
AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY = "<YOUR_AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY>"
AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN = "<YOUR_AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN>"
AWS_SECRET_ACCESS_KEY = "<YOUR_AWS_SECRET_ACCESS_KEY>"
AWS_SESSION_TOKEN = "<YOUR_AWS_SESSION_TOKEN>"
```

### Gemini CLI (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "localstack-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@localstack/localstack-mcp-server"
      ],
      "env": {
        "LOCALSTACK_AUTH_TOKEN": "<YOUR_LOCALSTACK_AUTH_TOKEN>",
        "AWS_ACCESS_KEY_ID": "<YOUR_AWS_ACCESS_KEY_ID>",
        "AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID>",
        "AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY>",
        "AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN": "<YOUR_AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN>",
        "AWS_SECRET_ACCESS_KEY": "<YOUR_AWS_SECRET_ACCESS_KEY>",
        "AWS_SESSION_TOKEN": "<YOUR_AWS_SESSION_TOKEN>"
      }
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `LOCALSTACK_AUTH_TOKEN` | yes | yes | LocalStack Auth Token (required for all LocalStack MCP tools) |
| `AWS_ACCESS_KEY_ID` | no | yes | Source AWS access key used by AWS Replicator to read external AWS resources |
| `AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID` | no | yes | Optional Replicator-specific source AWS access key. Use this instead of AWS_ACCESS_KEY_ID when the Replicator source account should be isolated from generic AWS config. |
| `AWS_REPLICATOR_SOURCE_AWS_SECRET_ACCESS_KEY` | no | yes | Optional Replicator-specific source AWS secret access key. Use with AWS_REPLICATOR_SOURCE_AWS_ACCESS_KEY_ID. |
| `AWS_REPLICATOR_SOURCE_AWS_SESSION_TOKEN` | no | yes | Optional Replicator-specific source AWS session token for temporary credentials. |
| `AWS_SECRET_ACCESS_KEY` | no | yes | Source AWS secret access key used by AWS Replicator to read external AWS resources |
| `AWS_SESSION_TOKEN` | no | yes | Optional source AWS session token used by AWS Replicator for temporary credentials |
| `APP_INSPECTOR` | no | no | Set to 1 in the LocalStack container environment to enable App Inspector by default across restarts. The MCP tool can also toggle App Inspector at runtime. |
| `AWS_DEFAULT_REGION` | no | no | Source AWS region used by AWS Replicator |
| `AWS_REPLICATOR_SOURCE_ENDPOINT_URL` | no | no | Optional Replicator-specific source AWS endpoint URL for advanced source-account scenarios. |
| `AWS_REPLICATOR_SOURCE_REGION_NAME` | no | no | Optional Replicator-specific source AWS region. Use with the AWS_REPLICATOR_SOURCE_* credential group. |
| `GOOGLE_GENERATIVE_AI_API_KEY` | no | no |  |

## FAQ

### Do I need an authentication token to use the tools?

Yes, all tools provided by this MCP server require a LocalStack Auth Token.

### Can I deploy infrastructure using Terraform or CDK?

Yes, the server handles infrastructure deployment for AWS environments using CDK, Terraform, and SAM.
