Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Cloudflare Wrangler (local dev state, miniflare cache)
.wrangler/

# build output
dist/
# generated types
Expand Down
4 changes: 4 additions & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -688,4 +688,8 @@ export default defineConfig({
vite: {
plugins: [tailwindcss()],
},

// Static site (SSG): deploy the `dist/` folder to any static host (e.g. Cloudflare Pages
// with build output directory `dist`). Agent discovery uses `public/_headers` and
// `public/.well-known/` — no Worker or middleware required.
});
58 changes: 21 additions & 37 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions public/.assetsignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
_worker.js
_routes.json
47 changes: 47 additions & 0 deletions public/.well-known/agent-skills/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
"skills": [
{
"name": "localstack-lifecycle",
"type": "skill-md",
"description": "Manage LocalStack container lifecycle (start, stop, status, restart).",
"url": "https://raw.githubusercontent.com/localstack/skills/main/skills/localstack-lifecycle/SKILL.md",
"digest": "sha256:7735719dbbe5044e18fd9340dfa8ec6da3333b647206d2535ed5575b3f2713ae"
},
{
"name": "iac-deployment",
"type": "skill-md",
"description": "Deploy infrastructure using Terraform, CDK, CloudFormation, and Pulumi.",
"url": "https://raw.githubusercontent.com/localstack/skills/main/skills/iac-deployment/SKILL.md",
"digest": "sha256:aca879fd81ed331068f3ff5baebf8603e98fb7103f8041d2099878483321d5e5"
},
{
"name": "state-management",
"type": "skill-md",
"description": "Save, load, and manage LocalStack state with Cloud Pods.",
"url": "https://raw.githubusercontent.com/localstack/skills/main/skills/state-management/SKILL.md",
"digest": "sha256:78a4ab070b6af721b7ae23cd7e9480cea852a18ddf1a8f28295e08540a5b5676"
},
{
"name": "logs-analysis",
"type": "skill-md",
"description": "Analyze LocalStack logs, identify errors, and debug issues.",
"url": "https://raw.githubusercontent.com/localstack/skills/main/skills/logs-analysis/SKILL.md",
"digest": "sha256:226368b25674567bb08f36e167334b172dee242b1c6269911ea4f0d213bd737a"
},
{
"name": "iam-policy-analyzer",
"type": "skill-md",
"description": "Analyze IAM policies and auto-generate least-privilege permissions.",
"url": "https://raw.githubusercontent.com/localstack/skills/main/skills/iam-policy-analyzer/SKILL.md",
"digest": "sha256:fd0c38ab117a52506cfa5d71637611122d6a59bbfe78e4396fcb6e28210cef24"
},
{
"name": "localstack-extensions",
"type": "skill-md",
"description": "Manage LocalStack extensions and plugins.",
"url": "https://raw.githubusercontent.com/localstack/skills/main/skills/localstack-extensions/SKILL.md",
"digest": "sha256:7d78fd6301ff11947c923fd679cae4b698bb3ba807c43547ab3ad08427390a14"
}
]
}
36 changes: 36 additions & 0 deletions public/.well-known/api-catalog
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"title": "LocalStack documentation",
"description": "Machine-readable documentation surfaces for agents and tools.",
"items": [
{
"href": "/llms.txt",
"type": "text/plain",
"description": "llms.txt index of documentation for LLM-oriented consumption"
},
{
"href": "/llms-full.txt",
"type": "text/plain",
"description": "Full documentation export (llms-full.txt)"
},
{
"href": "/llms-small.txt",
"type": "text/plain",
"description": "Compact documentation export (llms-small.txt)"
},
{
"href": "/sitemap-index.xml",
"type": "application/xml",
"description": "Sitemap index for crawlers and discovery"
},
{
"href": "/.well-known/mcp/server-card.json",
"type": "application/json",
"description": "MCP Server Card (SEP-2127) for LocalStack MCP discovery"
},
{
"href": "/.well-known/agent-skills/index.json",
"type": "application/json",
"description": "Agent Skills discovery index (RFC v0.2.0) for LocalStack skills"
}
]
}
41 changes: 41 additions & 0 deletions public/.well-known/mcp/server-card.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"$schema": "https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json",
"name": "io.github.localstack/localstack-mcp-server",
"version": "0.3.0",
"title": "LocalStack MCP Server",
"description": "Model Context Protocol server for LocalStack for AWS: manage containers, deploy CDK/Terraform/SAM, search LocalStack documentation, analyze logs, IAM policies, chaos experiments, Cloud Pods, extensions, ephemeral instances, and AWS CLI via awslocal. Runs locally via stdio; requires a LocalStack Auth Token.",
"websiteUrl": "https://docs.localstack.cloud/",
"repository": {
"url": "https://github.com/localstack/localstack-mcp-server",
"source": "github"
},
"capabilities": {
"tools": true,
"resources": false,
"prompts": false
},
"packages": [
{
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"identifier": "@localstack/localstack-mcp-server",
"version": "0.3.0",
"supportedProtocolVersions": ["2025-06-18"],
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"name": "LOCALSTACK_AUTH_TOKEN",
"description": "LocalStack Auth Token (required for all MCP tools). See https://docs.localstack.cloud/aws/getting-started/auth-token/",
"isRequired": true,
"isSecret": true
}
]
}
],
"_meta": {
"io.localstack.mcp/installation": "https://github.com/localstack/localstack-mcp-server#installation",
"io.localstack.mcp/npm": "https://www.npmjs.com/package/@localstack/localstack-mcp-server"
}
}
14 changes: 14 additions & 0 deletions public/_headers
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/
Link: </llms.txt>; rel="service-doc"; type="text/plain", </.well-known/api-catalog>; rel="api-catalog"; type="application/json", </sitemap-index.xml>; rel="describedby"; type="application/xml", </.well-known/mcp/server-card.json>; rel="alternate"; type="application/json", </.well-known/agent-skills/index.json>; rel="alternate"; type="application/json"
/index.html
Link: </llms.txt>; rel="service-doc"; type="text/plain", </.well-known/api-catalog>; rel="api-catalog"; type="application/json", </sitemap-index.xml>; rel="describedby"; type="application/xml", </.well-known/mcp/server-card.json>; rel="alternate"; type="application/json", </.well-known/agent-skills/index.json>; rel="alternate"; type="application/json"
/.well-known/mcp/server-card.json
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, OPTIONS
Access-Control-Allow-Headers: Content-Type
Cache-Control: public, max-age=3600
/.well-known/agent-skills/index.json
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, OPTIONS
Access-Control-Allow-Headers: Content-Type
Cache-Control: public, max-age=3600
3 changes: 2 additions & 1 deletion public/robots.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
User-agent: *
Allow: /
Content-Signal: ai-train=no, search=yes, ai-input=yes

Sitemap: https://docs.localstack.cloud/sitemap-index.xml
Sitemap: https://docs.localstack.cloud/sitemap-index.xml