awslabs/mcp
The canonical open-source AWS MCP collection, now in maintenance mode behind the Agent Toolkit for AWS.
awslabs/mcp is the broadest first-party AWS agent surface available: 61 MCP servers, 1,028 test files, Apache-2.0, and one-command uvx installs. It is also officially winding down. AWS now recommends the Agent Toolkit for AWS as the successor, so this repo is the right choice today for open-source, self-hosted AWS tooling but should be treated as a stopgap, not a long-term bet.
$uvx awslabs.aws-documentation-mcp-server@latest
$uvx awslabs.@latest (61 servers available)
$git clone https://github.com/awslabs/mcp.git && cd src/&& uv sync && uv run
install if
- Developers building coding agents that operate on AWS. The IaC, ECS, EKS, serverless, and database servers give a coding agent real, scoped AWS access without hand-writing API glue.
- Teams that need open-source, self-hosted, auditable AWS tooling. Apache-2.0, full source, no managed-service dependency. If you cannot route through a hosted product, this is the reference implementation.
- Anyone prototyping AWS-aware agents today. The documentation server alone is immediately useful and needs no credentials, making it the lowest-friction starting point.
skip if
- Production teams that can adopt the Agent Toolkit for AWS. AWS explicitly recommends the Toolkit for production because it adds IAM condition keys to distinguish agent actions, CloudWatch and CloudTrail visibility, and evaluated skills. If the Toolkit covers your services, prefer it.
- Anyone who needs a single, stable, long-term dependency. This collection is in a documented wind-down. The most useful servers are migrating out over time.
- Non-AWS users. Every server is AWS-specific. There is no value here outside the AWS ecosystem.
What It Does
awslabs/mcp is the official, open-source Model Context Protocol server collection published by AWS Labs. It ships 61 separate Python MCP servers under src/, each giving a coding agent or assistant scoped access to a slice of AWS: documentation search, CloudFormation/CDK infrastructure-as-code, ECS and EKS container management, DynamoDB and Neptune and PostgreSQL data access, Bedrock and SageMaker AI workloads, cost and billing, CloudWatch observability, IAM, Lambda, Step Functions, and specialized verticals like HealthOmics and HealthLake. Each server is an independently installable PyPI package (awslabs.), run through uvx, and exposes a small focused toolset over the MCP stdio transport. The flagship aws-documentation-mcp-server lets an agent search AWS docs and read pages back as markdown. The collection targets developers building coding agents, conversational assistants, and autonomous background agents that need to operate on AWS resources.
The Good
Official vendor breadth that nothing else matches. Sixty-one first-party servers from the awslabs org cover compute, databases, analytics, serverless, IaC, AI/ML, cost, security, and healthcare lifesciences. At 9,356 stars and 1,609 forks it is one of the most-forked MCP repositories in existence. No other open-source collection gives an agent this much official, scoped AWS surface in one place.
Engineering quality is exceptionally high for a vendor repo. The tree contains 1,028 test files and 1,072 source Python files (excluding tests). Security hygiene is real, not cosmetic: a 38KB .secrets.baseline, .gitleaks.toml, trivy.yaml, a .pre-commit-config.yaml, and an OSSF Scorecard badge are all wired in. There is a 1,096-line DESIGN_GUIDELINES.md that defines how new servers must be structured, plus a DEVELOPER_GUIDE.md and CONTRIBUTING.md. This is the discipline you expect from a platform team, not a demo repo.
Functional verification passed cleanly on real calls. The aws-documentation-mcp-server installed via uvx in 122ms (42 packages), completed the full MCP handshake (initialize, initialized, tools/list), and advertised all four capability classes: experimental, prompts, resources, tools. A live search_documentation call for "S3 bucket naming" returned ranked results with URL, title, and context. A live read_documentation call fetched the real S3 bucket naming rules page and converted it to markdown. The 4 tools (read_documentation, read_sections, search_documentation, recommend) all behave as documented. This is a working MCP server, not a README.
Install and configuration are first-class. The 1,071-line root README ships copy-paste install cards for Kiro, Cursor, and VS Code for every server, each as a one-line uvx awslabs. command with the right environment variables (AWS_PROFILE, AWS_REGION, FASTMCP_LOG_LEVEL). Servers are individually versioned on PyPI with regular releases, and the collection is hosted at awslabs.github.io/mcp.
The Bad
AWS has named a successor and recommends you migrate to it. The README opens with a notice that the Agent Toolkit for AWS is "now live" as the successor to these MCP servers, plugins, and skills, and that "if you're building production software using coding agents, we recommend Agent Toolkit for AWS." The repo "continues to work and accept contributions," but "over time, the most useful projects here will move into Agent Toolkit for AWS." Ten docs/migration-*.md files spell out the move. For anyone planning a multi-year integration, that is a sunset signal you cannot ignore. This is the single biggest caveat and the reason Value is capped at 4 rather than 5.
The reported server version is the SDK version, not the package version. The MCP initialize handshake returns serverInfo.version: 1.28.1, but the installed package is awslabs.aws-documentation-mcp-server version 1.1.26 (confirmed via importlib.metadata). The 1.28.1 is the underlying mcp[cli] SDK version, surfaced because FastMCP() is instantiated without an explicit version= argument. It is a minor transparency quirk, but anyone parsing serverInfo for telemetry or compatibility checks will read the wrong number.
Coverage is wide but uneven, and one server is deprecated. The collection spans 61 servers, but at least one (ccapi-mcp-server) is marked DEPRECATED with a redirect to aws-iac-mcp-server. Quality and maintenance pace vary across the set. The 1,071-line README is navigable only because of its table of contents, and picking the right server for a given task requires reading that wall of install badges. Many servers require live AWS credentials (AWS_PROFILE) and region configuration, so the "one-command install" promise only fully holds for the documentation and a few read-only servers.
Smoke Test Results
Tested on the host (macOS, aarch64) using a shallow clone plus uvx and the reusable GearScope MCP stdio client. No sbx microVM was used. The flagship aws-documentation-mcp-server was the test target because it is the "Getting Started" server and needs no AWS credentials.
Run A. Fresh install via uvx, no AWS credentials
$ git clone --depth 1 https://github.com/awslabs/mcp.git -> 88M, 61 servers in src/
✅ clone succeeded
$ uvx --python 3.12 awslabs.aws-documentation-mcp-server@latest --help
Downloaded 42 packages in 122ms
✅ package installed (exit 0; FastMCP prints no --help text)
Pass rate: 2 of 2. Clean install with no credentials and no AWS account. The --help produced no text because FastMCP servers do not implement a help flag, which is expected for this server type.
Run B. Server starts and MCP handshake completes
$ python3 mcp-stdio-client.py uvx --python 3.12 -- awslabs.aws-documentation-mcp-server@latest
=== INITIALIZE ===
serverInfo: {"name": "awslabs.aws-documentation-mcp-server", "version": "1.28.1"}
protocolVersion: 2024-11-05
capabilities: ['experimental', 'prompts', 'resources', 'tools']
=== TOOLS/LIST ===
tool count: 4
first 12 names: ['read_documentation', 'read_sections', 'search_documentation', 'recommend']
=== RESOURCES/LIST === resources count: 0
=== PROMPTS/LIST === prompts count: 0
✅ full handshake + tools/list succeeded
Pass rate: 1 of 1. The server advertises all four MCP capability classes (experimental, prompts, resources, tools), returns 4 tools, and reports protocol version 2024-11-05. This is the canonical "does it speak MCP correctly" verdict.
Run C. Tools respond with real output (functional verification)
$ mcp-client.py --call search_documentation --args '{"search_phrase":"S3 bucket naming","limit":3}'
isError: False, content blocks: 1
"search_results": [ { "rank_order": 1,
"url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html",
"title": "General purpose bucket naming rules - Amazon Simple Storage Service",
"context": "S3 bucket naming rules cover length, characters, u..." } ]
✅ live AWS search returned ranked results
$ mcp-client.py --call read_documentation --args '{"url":"https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html"}'
isError: False, content blocks: 1
AWS Documentation from ...bucketnamingrules.html:
# General purpose bucket naming rules
When you create a general purpose bucket, make sure that you consider the length, valid characters,
formatting, and uniqueness of bucket names...
✅ real page fetched and converted to markdown
Functional pass rate: 2 of 2. Both tool calls returned live AWS documentation data with isError: false. This confirms the server does what it claims, not merely that it starts.
What the runs tell you
The collection installs and runs cleanly without an AWS account for the documentation server, and the tools return genuine data. The only friction is that credential-requiring servers (the majority that touch live AWS resources) cannot be functionally verified without an account, but the install, handshake, and tool-enumeration path is identical across all 61 servers because they share the same FastMCP scaffolding.
Setup Walkthrough
- Install
uv(from Astral) if you do not have it. The servers require Python 3.10 or newer, whichuvxprovisions automatically. - Pick a server from the README table and run it one command:
uvx awslabs.aws-documentation-mcp-server@latest. - Point your MCP client at it. For Claude Code, Cursor, or VS Code, copy the JSON block from the server's README, which already encodes the
uvxcommand, args, and env vars. - For credential-requiring servers, set
AWS_PROFILEandAWS_REGION(or equivalent env) in the MCP client config. Use the least-privilege IAM policy for the server's scope. - To run from source instead:
git clone,cd src/,uv sync, thenuv run.
Post-install gotcha: serverInfo.version reflects the mcp[cli] SDK version (1.28.1), not the package version (1.1.26). Do not gate compatibility logic on that field without cross-checking PyPI.
Alternatives
- Agent Toolkit for AWS - the official AWS successor. Adds agent-scoped IAM, CloudTrail audit logging, and accuracy-evaluated skills. The recommended path for production AWS agent work.
- googleapis/mcp-toolbox - the comparable first-party cloud MCP collection from Google, for the GCP side of a multi-cloud agent.
- microsoft/azure-devops-mcp - the official Microsoft MCP for Azure DevOps, for the Azure side. Use these alongside awslabs/mcp if your agent spans clouds.
Reviews stay honest because nobody pays us to publish them. If this one saved you time, throw a coin.
Tip the reviewer- reviewed by
- GearScope
- tested
- 2026-06-30 · macOS (Apple Silicon)
- last verified
- 2026-06-30
- depth
- HANDS-ON
- sponsorship
- none, ever
Want the next one?
Five honest reviews and a verdict you can trust. Every Friday. No spam, no affiliate links.