Skip to main content

AWS Documentation MCP Server

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

  1. Install uv from Astral or the GitHub README
  2. Install Python 3.10 or newer using uv python install 3.10 (or a more recent version)

Installation

CursorVS Code
Install MCP ServerInstall on 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_PARTITION to aws-cn to 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_AGENT to 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

VariableDescriptionDefault
FASTMCP_LOG_LEVELLogging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)WARNING
AWS_DOCUMENTATION_PARTITIONAWS partition (aws or aws-cn)aws
MCP_USER_AGENTCustom User-Agent string for HTTP requestsChrome-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:

AWS Documentation MCP Demo

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(search_phrase: str, limit: int) -> list[dict]

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