Table of Contents
AWS MCP servers turn Claude Code from a smart autocomplete into a genuine AWS collaborator. If you build on AWS with Claude Code, you’ve probably hit the wall where the assistant knows AWS in general but doesn’t know your AWS, your account, your Lambda functions, your CloudWatch logs, your current pricing, or the latest service docs. That gap is exactly what the Model Context Protocol (MCP) closes.
The good news is you don’t have to build any of this yourself. The Open Source AWS MCP Servers catalog already ships 54 servers and counting, covering everything from documentation lookup and infrastructure deployment to cost analytics, CloudWatch observability, and niche domains like healthcare and lifesciences. You can slice the catalog by how you work (vibe coding, conversational assistants, autonomous background agents) or by what you need (essential setup, AI/ML, data, developer tools, integrations, and more), which makes it easy to find the handful that actually matter for your stack.
This post picks seven high-impact AWS MCP servers from that catalog, gives you the exact claude mcp add command for each, and shows why they change the way you work with Claude Code.
Why You Should Add AWS MCP Servers
A Claude Code session without AWS MCP servers is working blind on three things:
- Up-to-date AWS documentation. Base model knowledge goes stale. New services ship, APIs change, best practices evolve. Claude shouldn’t be guessing the latest IAM condition key or the newest Bedrock model ID.
- Your live AWS environment. Without tooling, Claude cannot see which Lambda functions exist, what a CloudFormation stack currently looks like, or what an alarm fired on last night.
- Grounded decisions. “What’s the cheapest instance for this workload?” or “Is this IaC safe to deploy?” should be answered against real AWS data, not educated guesses.
AWS MCP servers from AWS Labs solve all three. Each one is a narrowly-scoped, tool-calling bridge that Claude can invoke on demand.
Prerequisites
Before adding any of these AWS MCP servers, make sure you have the basics in place:
- Claude Code installed. The
claudeCLI is how you’ll register each server. uv/uvx. Most AWS Labs MCP servers run viauvx, which handles Python environment management for you. On macOS:brew install uv.- Python 3.10 or newer. Required by the AWS Labs servers.
uvcan manage this for you (uv python install 3.13), so you don’t need a system Python. - AWS CLI credentials configured. Every server except
aws-knowledge-mcp-serverauthenticates via the standard boto3 credential chain. The examples below use thedefaultprofile; substitute your own. Runaws configureif you haven’t already. - IAM permissions for the services you plan to use. Pricing needs
pricing:*, CloudWatch needscloudwatch:*andlogs:*, serverless needs SAM/CloudFormation permissions, and so on. Each server’s AWS Labs page lists the exact policy it expects. - Network egress to AWS APIs. If you’re behind a corporate proxy, make sure your shell environment has the right
HTTPS_PROXYset before launching Claude Code.
Once those are in place, you can add the servers one line at a time.
The 7 AWS MCP Servers and How to Add Them
Run each command once. Configuration persists, and the server connects on the next Claude Code session.
| Server | Command to add |
|---|---|
| aws-knowledge-mcp-server | claude mcp add --transport http aws-knowledge-mcp-server https://knowledge-mcp.global.api.aws |
| aws-api-mcp-server | claude mcp add aws-api-mcp-server uvx awslabs.aws-api-mcp-server@latest -e AWS_REGION=us-east-1 |
| aws-iac-mcp-server | claude mcp add aws-iac-mcp-server uvx awslabs.aws-iac-mcp-server@latest -e AWS_PROFILE=default -e FASTMCP_LOG_LEVEL=ERROR |
| lambda-tool-mcp-server | claude mcp add lambda-tool-mcp-server uvx awslabs.lambda-tool-mcp-server@latest -e AWS_PROFILE=default -e AWS_REGION=us-east-1 |
| aws-pricing-mcp-server | claude mcp add aws-pricing-mcp-server uvx awslabs.aws-pricing-mcp-server@latest -e AWS_PROFILE=default -e AWS_REGION=us-east-1 -e FASTMCP_LOG_LEVEL=ERROR |
| cloudwatch-mcp-server | claude mcp add cloudwatch-mcp-server uvx awslabs.cloudwatch-mcp-server@latest -e AWS_PROFILE=default -e FASTMCP_LOG_LEVEL=ERROR |
| aws-serverless-mcp-server | claude mcp add aws-serverless-mcp-server -e AWS_PROFILE=default -e AWS_REGION=us-east-1 -- uvx awslabs.aws-serverless-mcp-server@latest --allow-write --allow-sensitive-data-access |
A few practical notes:
- The
aws-knowledge-mcp-serveris a public HTTP endpoint. No AWS credentials, no rate-limited tokens, just remote docs lookup. - Everything else runs locally via
uvxand uses your configured AWS profile (here,default). Make sureuvis installed. - The
aws-serverless-mcp-servercommand uses--to pass--allow-writeand--allow-sensitive-data-accessto the server itself rather than toclaude mcp add. Those flags enable mutating operations and CloudWatch log access. Omit them if you want a read-only setup.
Managing Servers: Reconnect, List, Remove
A few commands worth knowing once your servers are wired up:
| Action | Command |
|---|---|
| List all servers and health status | claude mcp list |
| Show details for one server | claude mcp get <name> |
| Reconnect a server inside a session | Type /mcp in the Claude Code prompt, pick the server, choose Reconnect |
| Remove a server | claude mcp remove <name> |
| Re-add a previously removed server | Re-run its claude mcp add ... command |
/mcp is the fastest way to recover from a transient failure. It reconnects in place without restarting your session.
A Note on “Disable”
Claude Code’s CLI does not have a claude mcp disable command. There’s no way to temporarily turn a server off while keeping its config in place. Your options are:
claude mcp remove <name>. Drops the server entirely. Bring it back by re-running the originalclaude mcp add ....- Keep your setup commands in a shell script. Commenting out a line and re-running the script becomes your de-facto “disable” toggle, with the added benefit of reproducibility across machines.
If you find yourself flipping servers on and off often, the script approach is the cleanest pattern today.
Troubleshooting: When Servers Fail to Connect
If claude mcp list shows some of the servers stuck on ✗ Failed to connect, the culprit is almost always the same thing: Claude Code gives each MCP server 30 seconds to complete its handshake, and uvx often burns most of that budget resolving and installing packages on first launch. Turning on debug mode makes it obvious:
MCP server "aws-api-mcp-server" Server stderr: Installed 89 packages in 24.19s
Connection failed after 30076ms: connection timed out after 30000ms
The server itself is fine. It just never got a chance to start. The heavier servers (cloudwatch pulls in scipy, numpy, pandas, statsmodels) are the most likely to trip this. A Python version mismatch between uvx‘s default interpreter and your system can make it worse if pre-built wheels aren’t available.
The cleanest fix is to stop paying that startup cost every time. Install each server once as a persistent uv tool:
uv tool install --python 3.13 awslabs.aws-api-mcp-server
uv tool install --python 3.13 awslabs.aws-iac-mcp-server
uv tool install --python 3.13 awslabs.lambda-tool-mcp-server
uv tool install --python 3.13 awslabs.aws-pricing-mcp-server
uv tool install --python 3.13 awslabs.cloudwatch-mcp-server
uv tool install --python 3.13 awslabs.aws-serverless-mcp-server
Then remove the uvx-based entries and re-add each server pointing to the installed binary at ~/.local/bin/awslabs.<server-name>. For example:
claude mcp remove cloudwatch-mcp-server
claude mcp add cloudwatch-mcp-server ~/.local/bin/awslabs.cloudwatch-mcp-server \
-e AWS_PROFILE=default -e FASTMCP_LOG_LEVEL=ERROR
After this, startup drops from ~25 seconds to well under a second, and claude mcp list flips everything to ✓ Connected. You can still update the tools later with uv tool upgrade --all.
Benefits of Using AWS MCP Servers
Once these AWS MCP servers are wired in, the day-to-day feel of working with Claude Code on AWS changes noticeably:
- Authoritative documentation on tap.
aws-knowledge-mcp-serverpulls from the current AWS docs, so Claude stops inventing flags that don’t exist and starts quoting the right ones. - Real API access, safely scoped.
aws-api-mcp-serverlets Claude make AWS API calls via your credentials. Describe resources, inspect configurations, and verify assumptions without copy-pasting CLI output back and forth. - IaC that actually fits your environment.
aws-iac-mcp-servergenerates and validates CloudFormation/CDK/Terraform against your account context instead of a generic template. - Lambda as first-class tools.
lambda-tool-mcp-serverexposes your own AWS Lambda functions as callable tools, so Claude can invoke them like any other utility. Powerful for internal platforms. - Grounded cost conversations.
aws-pricing-mcp-servergives Claude live pricing data, so “which is cheaper, Fargate or EC2 for this?” becomes a real answer, not a hand-wave. - Observability that closes the loop.
cloudwatch-mcp-serverlets Claude read CloudWatch metrics, logs, and alarms. When something breaks, the debugging loop stays inside the conversation. - End-to-end serverless workflows.
aws-serverless-mcp-servercovers AWS SAM deployments, function scaffolding, and log inspection. The full build-deploy-debug cycle. - Less context-switching. Each AWS MCP server replaces a tab, a CLI invocation, or a doc search. The cumulative effect is fewer interruptions and a tighter feedback loop.
Conclusion
AWS MCP servers are the difference between an AI assistant that talks about AWS and one that works with AWS. The seven servers above cover the axes that matter most for day-to-day cloud work: documentation, APIs, infrastructure-as-code, compute, cost, observability, and serverless. Each is a one-line install, and together they turn Claude Code into a teammate that can read your environment, reason about it, and act on it.
Start with the ones closest to your current workload. aws-knowledge-mcp-server and cloudwatch-mcp-server are low-risk wins. Then layer in the rest as you go. If any of them refuse to connect, switch that server from uvx to a pre-installed uv tool binary and the timeout disappears. Restart your Claude Code session after adding them, and you’re set.
If you found this tutorial insightful, please do bookmark 🔖 it! Also please do share it with your friends and colleagues!