Skip to content

Commit 8be6aaf

Browse files
authored
add localstack extensions tool (#12)
1 parent 2d7f810 commit 8be6aaf

File tree

4 files changed

+339
-7
lines changed

4 files changed

+339
-7
lines changed

README.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@
55
66
A [Model Context Protocol](https://modelcontextprotocol.io/docs/getting-started/intro) (MCP) server that provides tools to manage and interact with your [LocalStack for AWS](https://www.localstack.cloud/localstack-for-aws) container for simplified local cloud development and testing. The LocalStack MCP Server provides simplified integration between MCP-compatible apps and your local LocalStack for AWS development environment, enabling secure and direct communication with LocalStack's emulated services and additional developer experience features.
77

8-
<a href="https://glama.ai/mcp/servers/@localstack/localstack-mcp-server">
9-
<img width="380" height="200" src="https://glama.ai/mcp/servers/@localstack/localstack-mcp-server/badge" alt="LocalStack Server MCP server" />
10-
</a>
11-
128
This server eliminates custom scripts and manual LocalStack management with direct access to:
139

1410
- Start, stop, restart, and monitor LocalStack for AWS container status with built-in auth.
@@ -17,6 +13,7 @@ This server eliminates custom scripts and manual LocalStack management with dire
1713
- Parse logs, catch errors, and auto-generate IAM policies from violations. (requires active license)
1814
- Inject chaos faults and network effects into LocalStack to test system resilience. (requires active license)
1915
- Manage LocalStack state snapshots via [Cloud Pods](https://docs.localstack.cloud/aws/capabilities/state-management/cloud-pods/) for development workflows. (requires active license)
16+
- Install, remove, list, and discover [LocalStack Extensions](https://docs.localstack.cloud/aws/capabilities/extensions/) from the marketplace. (requires active license)
2017
- Connect AI assistants and dev tools for automated cloud testing workflows.
2118

2219
## Tools Reference
@@ -31,7 +28,8 @@ This server provides your AI with dedicated tools for managing your LocalStack e
3128
| [`localstack-iam-policy-analyzer`](./src/tools/localstack-iam-policy-analyzer.ts) | Handles IAM policy management and violation remediation | - Set IAM enforcement levels including `enforced`, `soft`, and `disabled` modes<br/>- Search logs for permission-related violations<br/>- Generate IAM policies automatically from detected access failures<br/>- Requires a valid LocalStack Auth Token |
3229
| [`localstack-chaos-injector`](./src/tools/localstack-chaos-injector.ts) | Injects and manages chaos experiment faults for system resilience testing | - Inject, add, remove, and clear service fault rules<br/>- Configure network latency effects<br/>- Comprehensive fault targeting by service, region, and operation<br/>- Built-in workflow guidance for chaos experiments<br/>- Requires a valid LocalStack Auth Token |
3330
| [`localstack-cloud-pods`](./src/tools/localstack-cloud-pods.ts) | Manages LocalStack state snapshots for development workflows | - Save current state as Cloud Pods<br/>- Load previously saved Cloud Pods instantly<br/>- Delete Cloud Pods or reset to a clean state<br/>- Requires a valid LocalStack Auth Token |
34-
| [`localstack-aws-client`](./src/tools/localstack-aws-client.ts) | Runs AWS CLI commands inside the LocalStack container | - Executes commands via `awslocal` inside the running container<br/>- Sanitizes commands to block shell chaining<br/>- Auto-detects LocalStack coverage errors and links to docs |
31+
| [`localstack-extensions`](./src/tools/localstack-extensions.ts) | Installs, uninstalls, lists, and discovers LocalStack Extensions | - Manage installed extensions via CLI actions (`list`, `install`, `uninstall`)<br/>- Browse the LocalStack Extensions marketplace (`available`)<br/>- Requires a valid LocalStack Auth Token support |
32+
| [`localstack-aws-client`](./src/tools/localstack-aws-client.ts) | Runs AWS CLI commands inside the LocalStack for AWS container | - Executes commands via `awslocal` inside the running container<br/>- Sanitizes commands to block shell chaining<br/>- Auto-detects LocalStack coverage errors and links to docs |
3533
| [`localstack-docs`](./src/tools/localstack-docs.ts) | Searches LocalStack documentation through CrawlChat | - Queries LocalStack docs through a public CrawlChat collection<br/>- Returns focused snippets with source links only<br/>- Helps answer coverage, configuration, and setup questions without requiring LocalStack runtime |
3634

3735
## Installation
@@ -45,7 +43,7 @@ For other MCP Clients, refer to the [configuration guide](#configuration).
4543

4644
- [LocalStack CLI](https://docs.localstack.cloud/getting-started/installation/#localstack-cli) and Docker installed in your system path
4745
- [`cdklocal`](https://github.com/localstack/aws-cdk-local) or [`tflocal`](https://github.com/localstack/terraform-local) installed in your system path for running infrastructure deployment tooling
48-
- A [valid LocalStack Auth Token](https://docs.localstack.cloud/aws/getting-started/auth-token/) to enable Pro services IAM Policy Analyzer, Cloud Pods, and Chaos Injector tools (**optional**)
46+
- A [valid LocalStack Auth Token](https://docs.localstack.cloud/aws/getting-started/auth-token/) to enable Pro services, IAM Policy Analyzer, Cloud Pods, Chaos Injector, and Extensions tools (**optional**)
4947
- [Node.js v22.x](https://nodejs.org/en/download/) installed in your system path
5048

5149
### Configuration
@@ -109,4 +107,8 @@ Built on the [XMCP](https://github.com/basementstudio/xmcp) framework, you can a
109107

110108
## License
111109

112-
[Apache License 2.0](./LICENSE)
110+
[Apache License 2.0](./LICENSE)
111+
112+
<a href="https://glama.ai/mcp/servers/@localstack/localstack-mcp-server">
113+
<img width="380" height="200" src="https://glama.ai/mcp/servers/@localstack/localstack-mcp-server/badge" alt="LocalStack Server MCP server" />
114+
</a>

manifest.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@
4747
"name": "localstack-cloud-pods",
4848
"description": "Manages LocalStack state snapshots (Cloud Pods) for saving, loading, deleting, and resetting"
4949
},
50+
{
51+
"name": "localstack-extensions",
52+
"description": "Install, uninstall, list, and discover LocalStack Extensions from the marketplace"
53+
},
5054
{
5155
"name": "localstack-docs",
5256
"description": "Search the LocalStack documentation to find guides, API references, and configuration details"
@@ -121,6 +125,28 @@
121125
"arguments": ["action", "pod_name"],
122126
"text": "Please ${arguments.action} Cloud Pod in the LocalStack container with the pod name ${arguments.pod_name}."
123127
},
128+
{
129+
"name": "extensions-list",
130+
"description": "List installed LocalStack extensions",
131+
"text": "List all LocalStack extensions currently installed on my machine."
132+
},
133+
{
134+
"name": "extensions-available",
135+
"description": "Browse available LocalStack extensions",
136+
"text": "Show me the available extensions in the LocalStack marketplace."
137+
},
138+
{
139+
"name": "extensions-install",
140+
"description": "Install a LocalStack extension",
141+
"arguments": ["extension_name"],
142+
"text": "Install the LocalStack extension ${arguments.extension_name}."
143+
},
144+
{
145+
"name": "extensions-uninstall",
146+
"description": "Uninstall a LocalStack extension",
147+
"arguments": ["extension_name"],
148+
"text": "Uninstall the LocalStack extension ${arguments.extension_name}."
149+
},
124150
{
125151
"name": "localstack-docs-search",
126152
"description": "Search LocalStack documentation",

src/lib/localstack/license-checker.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export enum ProFeature {
77
IAM_ENFORCEMENT = "localstack.platform.plugin/iam-enforcement",
88
CLOUD_PODS = "localstack.platform.plugin/pods",
99
CHAOS_ENGINEERING = "localstack.platform.plugin/chaos",
10+
EXTENSIONS = "localstack.platform.plugin/extensions",
1011
}
1112

1213
export interface LicenseCheckResult {

0 commit comments

Comments
 (0)