AWS MCP Server

AWS MCP Server

Enables management and provisioning of AWS resources like EC2, S3, and RDS using natural language prompts through the Model Context Protocol. It allows users to automate complex infrastructure tasks, such as setting up VPCs and security groups, via a chat interface.

Category
Visit Server

README

<div align="center"> <img src="assets/banner.svg" width="1200" alt="demo"/> </div>

🎬 Demo

See it in action! Here's how easy it is to spin up a full-blown EC2 setup β€” VPC, subnets, security groups, this works β€” all through natural language prompts to an AI Model Context Protocol (MCP) server.

<div align="center" style="margin-top:20px;margin-bottom:20px;"> <img src="assets/demo.gif" width="1200" alt="demo"/> </div>


✨ Features

Currently supports

  1. RDS
  2. S3
  3. EC2
  4. VPC
  5. Subnet
  6. Internet Gateway
  7. Route Table
  8. Security Group
  9. Key Pair
  10. Instance Tag
  11. AMI

More AWS services (like Lambda, API Gateway, etc.) coming soon! Contributions welcome πŸš€


πŸ“‹ Prerequisites

For Development:

  • Node.js >= 18.0.0
  • pnpm >= 10.0.0

For Docker Deployment:

  • Docker and Docker Compose

For Both:

  • AWS Account with AWS credentials (Access Key ID and Secret Access Key)

βš™οΈ Developer Setup

1. Clone the repo

git clone https://github.com/lokeswaran-aj/aws-mcp.git
cd aws-mcp

❗️Currently, the server reads credentials from MCP configuration headers. In future versions, we'll support AWS Role ARN.

2. Install dependencies

pnpm install

πŸ’‘ Make sure you have pnpm installed globally. If not:

npm install -g pnpm

3. Run the dev server

pnpm dev

🐳 Docker Deployment

Quick Start with Docker

Option 1: Using Docker Compose (Recommended)

docker-compose up -d

Option 2: Using Docker directly

# Build the image
docker build -t aws-mcp .

# Run with port mapping
docker run -d --name aws-mcp-server -p 8080:8080 aws-mcp

The server will be available at:

  • MCP HTTP Stream: http://localhost:8080/mcp
  • MCP SSE: http://localhost:8080/sse

Managing Docker Containers

# View logs
docker-compose logs -f

# Stop container
docker-compose down

# Rebuild and restart
docker-compose build --no-cache && docker-compose up -d

# Stop aws-mcp-server and remove container
docker stop aws-mcp-server && docker rm aws-mcp-server

πŸ’‘ AWS credentials are still passed via HTTP headers (same as development setup). No container configuration needed.


πŸ§ͺ Example: Cursor Configuration

To use this server with Cursor, add the following to your ~/.cursor/mcp.json:

{
  "mcpServers": {
    "aws": {
      "serverUrl": "http://localhost:8080/mcp",
      "headers": {
        "AWS_ACCESS_KEY_ID": "YOUR_AWS_ACCESS_KEY_ID",
        "AWS_SECRET_ACCESS_KEY": "YOUR_AWS_SECRET_ACCESS_KEY",
        "AWS_SESSION_TOKEN": "YOUR_AWS_SESSION_TOKEN"
      }
    }
  }
}

❗️ Use http://localhost:8080/mcp if your client supports HTTP streamable(For eg: Cursor). Use http://localhost:8080/sse if your client supports only SSE(For eg: Windsurf).

MCP HTTP streamable endpoint: http://localhost:8080/mcp

MCP SSE endpoint: http://localhost:8080/sse


πŸ“ Project Structure

.
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ server.ts             # AWS MCP server setup - Entry point
β”‚   β”œβ”€β”€ aws-clients.ts        # AWS SDK client setup
β”‚   β”œβ”€β”€ config/               # App configuration
β”‚   β”œβ”€β”€ tools/                # Tools definitions
β”‚   β”‚   β”œβ”€β”€ rds/              # RDS operations
β”‚   β”‚   β”œβ”€β”€ s3/               # S3 operations
β”‚   β”‚   β”œβ”€β”€ ec2/              # EC2 operations
β”‚   β”‚   β”œβ”€β”€ vpc/              # VPC operations
β”‚   β”‚   β”œβ”€β”€ subnet/           # Subnet operations
β”‚   β”‚   β”œβ”€β”€ internet-gateway/ # Internet Gateway operations
β”‚   β”‚   β”œβ”€β”€ route-table/      # Route Table operations
β”‚   β”‚   β”œβ”€β”€ security-group/   # Security Group operations
β”‚   β”‚   β”œβ”€β”€ key-pair/         # Key Pair operations
β”‚   β”‚   β”œβ”€β”€ instance-tag/     # Instance Tag operations
β”‚   β”‚   β”œβ”€β”€ ami/              # AMI operations
β”‚   β”œβ”€β”€ schema/               # Tool input schemas
β”‚   β”œβ”€β”€ types/                # TypeScript definitions
β”‚   └── utils/                # Helper functions
β”œβ”€β”€ package.json              # Dependencies and scripts
└── README.md                 # This file

πŸ“Œ Roadmap

  • [x] Support RDS (Create, List, Update, Delete)
  • [x] Add S3 tools
  • [x] Add Network tools
  • [x] Add EC2 tools
  • [ ] Add Lambda tools
  • [ ] Add API Gateway tools
  • [ ] Add IAM tools
  • [ ] Add ECS tools

🀝 Contributing

Want to help make AWS infra chat-native? Pull requests, feedback, and feature suggestions are welcome!

  • Clone and fork the repo
  • Create your feature branch (git checkout -b feat/add-ec2)
  • Commit and push
  • Open a PR πŸ™Œ

πŸ“„ License

MIT β€” do what you want, just give credit where it's due. ✌️


⚑ Powered by

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured