An AWS Labs Model Context Protocol (MCP) server for AWS Documentation
Project description
AWS Documentation MCP Server
Model Context Protocol (MCP) server for AWS Documentation
This MCP server provides tools to access AWS documentation, search for content, and get recommendations.
Features
- Read Documentation: Fetch and convert AWS documentation pages to markdown format
- Search Documentation: Search AWS documentation using the official search API (global only)
- Recommendations: Get content recommendations for AWS documentation pages (global only)
- Get Available Services List: Get a list of available AWS services in China regions (China only)
Prerequisites
Installation Requirements
- Install
uvfrom Astral or the GitHub README - Install Python 3.10 or newer using
uv python install 3.10(or a more recent version)
Installation
| Cursor | VS Code |
|---|---|
Configure the MCP server in your MCP client configuration:
{
"mcpServers": {
"awslabs.aws-documentation-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-documentation-mcp-server@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_DOCUMENTATION_PARTITION": "aws",
"MCP_USER_AGENT": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
},
"disabled": false,
"autoApprove": []
}
}
}
For Amazon Q Developer CLI, add the MCP client configuration and tool command to the agent file in ~/.aws/amazonq/cli-agents.
Example, ~/.aws/amazonq/cli-agents/default.json
{
"mcpServers": {
"awslabs.aws-documentation-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-documentation-mcp-server@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_DOCUMENTATION_PARTITION": "aws"
},
"disabled": false,
"autoApprove": []
}
},
"tools": [
// .. other existing tools
"@awslabs.aws-documentation-mcp-server"
],
}
Windows Installation
For Windows users, the MCP server configuration format is slightly different:
{
"mcpServers": {
"awslabs.aws-documentation-mcp-server": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uv",
"args": [
"tool",
"run",
"--from",
"awslabs.aws-documentation-mcp-server@latest",
"awslabs.aws-documentation-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_DOCUMENTATION_PARTITION": "aws"
}
}
}
}
Note: Set
AWS_DOCUMENTATION_PARTITIONtoaws-cnto query AWS China documentation instead of global AWS documentation.Corporate Networks: If you're behind a corporate proxy or firewall that blocks certain User-Agent strings, set
MCP_USER_AGENTto match your browser's User-Agent to an allowable string.
or docker after a successful docker build -t mcp/aws-documentation .:
{
"mcpServers": {
"awslabs.aws-documentation-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"--interactive",
"--env",
"FASTMCP_LOG_LEVEL=ERROR",
"--env",
"AWS_DOCUMENTATION_PARTITION=aws",
"mcp/aws-documentation:latest"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
Environment Variables
| Variable | Description | Default |
|---|---|---|
FASTMCP_LOG_LEVEL |
Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) | WARNING |
AWS_DOCUMENTATION_PARTITION |
AWS partition (aws or aws-cn) |
aws |
MCP_USER_AGENT |
Custom User-Agent string for HTTP requests | Chrome-based default |
Corporate Network Support
For corporate environments with proxy servers or firewalls that block certain User-Agent strings:
{
"env": {
"MCP_USER_AGENT": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
}
}
Basic Usage
Example:
- "look up documentation on S3 bucket naming rule. cite your sources"
- "recommend content for page https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html"
Tools
read_documentation
Fetches an AWS documentation page and converts it to markdown format.
read_documentation(url: str) -> str
search_documentation (global only)
Searches AWS documentation using the official AWS Documentation Search API.
search_documentation(ctx: Context, search_phrase: str, limit: int, product_types: Optional[List[str]], guide_types: Optional[List[str]]) -> SearchResponse
recommend (global only)
Gets content recommendations for an AWS documentation page.
recommend(url: str) -> list[dict]
get_available_services (China only)
Gets a list of available AWS services in China regions.
get_available_services() -> str
Development
For getting started with development on the AWS Documentation MCP server, please refer to the awslabs/mcp DEVELOPER_GUIDE first. Everything below this is specific to AWS Documentation MCP Server development.
Running tests
Unit tests: uv run --frozen pytest --cov --cov-branch --cov-report=term-missing
Unit tests with integration tests: uv run --frozen pytest --cov --cov-branch --cov-report=term-missing --run-live
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file awslabs_aws_documentation_mcp_server-1.1.13.tar.gz.
File metadata
- Download URL: awslabs_aws_documentation_mcp_server-1.1.13.tar.gz
- Upload date:
- Size: 3.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73a8722d3fe290f89e05987f3e23086deb823dcab32e967d6e72598c0601a699
|
|
| MD5 |
21419d7cd5af9058d323dab0b404b18d
|
|
| BLAKE2b-256 |
32d0fe559e06521571c9ee7e6f2b7b903fb3220fc9d49d4a3e08e4289768b178
|
Provenance
The following attestation bundles were made for awslabs_aws_documentation_mcp_server-1.1.13.tar.gz:
Publisher:
release.yml on awslabs/mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
awslabs_aws_documentation_mcp_server-1.1.13.tar.gz -
Subject digest:
73a8722d3fe290f89e05987f3e23086deb823dcab32e967d6e72598c0601a699 - Sigstore transparency entry: 760605239
- Sigstore integration time:
-
Permalink:
awslabs/mcp@b9285f738decde5882800b52bdafd0d7917af735 -
Branch / Tag:
refs/tags/2025.12.20251211225414 - Owner: https://github.com/awslabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b9285f738decde5882800b52bdafd0d7917af735 -
Trigger Event:
push
-
Statement type:
File details
Details for the file awslabs_aws_documentation_mcp_server-1.1.13-py3-none-any.whl.
File metadata
- Download URL: awslabs_aws_documentation_mcp_server-1.1.13-py3-none-any.whl
- Upload date:
- Size: 25.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
721cc5b757671639b2515eaf0618da9b2391f39a907222d792054e2e0636a65a
|
|
| MD5 |
9050b7a5c51986a2088159ee27d33ac1
|
|
| BLAKE2b-256 |
f9b8101f3d4f563a1ccb9d932cc10304877c1463e0472fb691dde35a491e4fab
|
Provenance
The following attestation bundles were made for awslabs_aws_documentation_mcp_server-1.1.13-py3-none-any.whl:
Publisher:
release.yml on awslabs/mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
awslabs_aws_documentation_mcp_server-1.1.13-py3-none-any.whl -
Subject digest:
721cc5b757671639b2515eaf0618da9b2391f39a907222d792054e2e0636a65a - Sigstore transparency entry: 760605244
- Sigstore integration time:
-
Permalink:
awslabs/mcp@b9285f738decde5882800b52bdafd0d7917af735 -
Branch / Tag:
refs/tags/2025.12.20251211225414 - Owner: https://github.com/awslabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b9285f738decde5882800b52bdafd0d7917af735 -
Trigger Event:
push
-
Statement type: