AWS DynamoDB MCP Server
io.github.awslabs/dynamodb-mcp-server
Overview
AWS Labs MCP server for DynamoDB data modeling, validation with DynamoDB Local, source database analysis, CDK resource generation, cost analysis, and Python data access layer generation.
Documentation
AWS DynamoDB MCP Server
The AWS DynamoDB MCP Server is the official developer experience MCP server for Amazon DynamoDB. It provides DynamoDB data modeling guidance, validation, source database analysis, cost and performance calculations, CDK generation, schema validation, and Python data access layer generation.
Installation
The imported and documented default MCP client launch uses uvx over stdio:
{
"mcpServers": {
"awslabs-dynamodb-mcp-server": {
"command": "uvx",
"args": ["awslabs.dynamodb-mcp-server@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
The package is published on PyPI as awslabs.dynamodb-mcp-server version 2.1.3 and requires Python >=3.10. The README prerequisites are uv, Python installed with uv python install 3.10, and AWS credentials with access to AWS services. The install buttons also show AWS_PROFILE=default, AWS_REGION=us-west-2, and DDB-MCP-READONLY=true; the implementation uses read-only source database analysis by default.
The README also documents a Windows alternative using uv tool run --from awslabs.dynamodb-mcp-server@latest awslabs.dynamodb-mcp-server.exe, and a local Docker option after building awslabs/dynamodb-mcp-server:latest with docker build -t awslabs/dynamodb-mcp-server ..
Configuration
Common runtime variables include FASTMCP_LOG_LEVEL, AWS_PROFILE, and AWS_REGION. Optional source database analyzer variables include MYSQL_CLUSTER_ARN, MYSQL_SECRET_ARN, MYSQL_DATABASE, MYSQL_HOSTNAME, MYSQL_PORT, and MYSQL_MAX_QUERY_RESULTS. JAVA_HOME is optional for DynamoDB Local validation fallback when Docker, Podman, Finch, or nerdctl is unavailable.
For MySQL managed mode, RDS Data API access uses MYSQL_CLUSTER_ARN, MYSQL_SECRET_ARN, MYSQL_DATABASE, and AWS_REGION. Connection-based access uses MYSQL_HOSTNAME, MYSQL_PORT, MYSQL_SECRET_ARN, MYSQL_DATABASE, and AWS_REGION. Explicit tool parameters take precedence over environment variables, and only one connection method should be specified.
Capabilities
The server exposes dynamodb_data_modeling, dynamodb_data_model_validation, source_db_analyzer, generate_resources, dynamodb_data_model_schema_converter, dynamodb_data_model_schema_validator, generate_data_access_layer, and compute_performances_and_costs. It can guide DynamoDB modeling workflows, validate models against DynamoDB Local, analyze MySQL/PostgreSQL/SQL Server/Oracle sources, generate CDK apps, convert models to schema.json, validate schema/usage data, generate type-safe Python repository code, and calculate DynamoDB RCU/WCU/storage costs.
Requirements and Limitations
Data model validation requires a container runtime with a running daemon, or Java JRE 17 or newer via JAVA_HOME or PATH. The validator creates local DynamoDB resources and writes files such as dynamodb_model_validation.json and validation reports. Source database managed mode is MySQL only; PostgreSQL, SQL Server, and Oracle use self-service mode. Connection-based MySQL managed mode requires a Secrets Manager secret containing a host field matching the database hostname. Schema validation blocks path traversal and requires files within the current working directory or subdirectories. generate_resources currently supports only cdk; generate_data_access_layer currently targets Python. Native DynamoDB API functions were removed in version 2.0.0 in favor of AWS API MCP Server; SSE support was removed in version 1.0.0, so the registry target is stdio only. The hosted docs URL advertised in PyPI metadata returned 404 during review, so the GitHub subfolder is used as the website URL.