Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
2005298
Improve source_analyer tool
shetsa-amzn Oct 15, 2025
3f2e0b1
commiting the test files
shetsa-amzn Oct 15, 2025
119ab30
Improving Database Analysis Queries and changes to data modeller
shetsa-amzn Oct 16, 2025
8add119
Cleaning up queries and data modeller prompt
shetsa-amzn Oct 21, 2025
218e890
adding extra condition to ignore system or performance schema related…
shetsa-amzn Oct 21, 2025
9270ffc
Merge branch 'main' into source-analys-improvements
shetsa-amzn Oct 28, 2025
14228b4
Fixing secret and formating issue
shetsa-amzn Oct 28, 2025
d884804
Fixing the unit tests
shetsa-amzn Oct 28, 2025
714a8c4
Increasing the test coverage
shetsa-amzn Oct 28, 2025
a2283b2
Merge branch 'main' into source-analys-improvements
shetsa-amzn Oct 29, 2025
d756b8a
Merge branch 'main' into source-analys-improvements
shetsa-amzn Oct 30, 2025
2c867f4
Increasing the test coverage
shetsa-amzn Oct 28, 2025
43db35a
Merge branch 'main' into source-analys-improvements
shetsa-amzn Oct 31, 2025
c3748e1
add some more test for markdown formater
shetsa-amzn Oct 31, 2025
0a78d8f
Update the readme
shetsa-amzn Oct 31, 2025
296921d
Adding precommit changes
shetsa-amzn Oct 31, 2025
69c0249
Merge branch 'main' into source-analys-improvements
shetsa-amzn Nov 3, 2025
a0fd557
Merge branch 'main' into source-analys-improvements
shetsa-amzn Nov 3, 2025
c2116e3
Removing the unreachable code
shetsa-amzn Nov 3, 2025
6f60846
Increasing coverage for partially covered lines on markdown_formatter.py
shetsa-amzn Nov 3, 2025
63aae3f
Merge branch 'main' into source-analys-improvements
shetsa-amzn Nov 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@
"filename": "src/dynamodb-mcp-server/README.md",
"hashed_secret": "37b5ecd16fe6c599c85077c7992427df62b2ab71",
"is_verified": false,
"line_number": 100,
"line_number": 152,
"is_secret": false
}
],
Expand All @@ -215,7 +215,7 @@
"filename": "src/dynamodb-mcp-server/awslabs/dynamodb_mcp_server/database_analyzers.py",
"hashed_secret": "38a2bae6275b4d868c488758d213827833cd8570",
"is_verified": false,
"line_number": 103,
"line_number": 107,
"is_secret": false
}
],
Expand All @@ -235,15 +235,15 @@
"filename": "src/dynamodb-mcp-server/tests/test_source_db_integration.py",
"hashed_secret": "fe1bae27cb7c1fb823f496f286e78f1d2ae87734",
"is_verified": false,
"line_number": 19,
"line_number": 18,
"is_secret": false
},
{
"type": "Secret Keyword",
"filename": "src/dynamodb-mcp-server/tests/test_source_db_integration.py",
"hashed_secret": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3",
"is_verified": false,
"line_number": 286,
"line_number": 292,
"is_secret": false
}
],
Expand Down Expand Up @@ -896,5 +896,5 @@
}
]
},
"generated_at": "2025-10-30T19:32:08Z"
"generated_at": "2025-10-31T16:14:13Z"
}
181 changes: 78 additions & 103 deletions src/dynamodb-mcp-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,34 @@ Right now the DynamoDB MCP server contains two tools that support data modeling
* `dynamodb_data_modeling` - Retrieves the complete DynamoDB Data Modeling Expert prompt
* `source_db_analyzer` - Executes predefined SQL queries against source databases to analyze schema and access patterns

## Migration Notice
## Instructions

Starting with version 2.0.0, this server focuses exclusively on DynamoDB design and modeling guidance. All operational DynamoDB management tools (table operations, item operations, queries, backups, etc.) have been removed in favor of the [AWS API MCP Server](https://github.com/awslabs/mcp/tree/main/src/aws-api-mcp-server) which provides the same capability and more.
To design a data model in natural language you can simply ask your AI agent to “use my DynamoDB MCP to help me design a DynamoDB data model,” or something similar. If you want to analyze your MySQL query patterns then you can follow these additional steps below to setup connectivity and then say something like “analyze my MySQL database and then help me design a DynamoDB data model.”

**This server does not do:**
### Prerequisites

- ❌ Operational DynamoDB management (CRUD operations)
- ❌ Table creation or data migration
- ❌ Direct data queries or transformations
1. Install `uv` from [Astral](https://docs.astral.sh/uv/getting-started/installation/) or the [GitHub README](https://github.com/astral-sh/uv#installation)
2. Install Python using `uv python install 3.10`
3. Set up AWS credentials with access to AWS services

### Recommended: AWS API MCP Server
* Consider setting up Read-only permission if you don't want the LLM to modify any resources

For operational DynamoDB management (retrieving data, managing tables, etc.), use the [AWS API MCP Server](https://github.com/awslabs/mcp/tree/main/src/aws-api-mcp-server) which provides comprehensive DynamoDB operations. [Migration guide available here](https://github.com/awslabs/mcp/tree/main/src/aws-api-mcp-server).
### Installation

### Not Recommended: Legacy Version
Use the configurations below to install the MCP without configuring the MySQL source database analyzer.

If you must use the previous operational tools, you can pin to version 1.0.9, though this is not recommended:
| Cursor | VS Code |
|:------:|:-------:|
| [![Install MCP Server](https://cursor.com/deeplink/mcp-install-light.svg)](https://cursor.com/en/install-mcp?name=awslabs.dynamodb-mcp-server&config=JTdCJTIyY29tbWFuZCUyMiUzQSUyMnV2eCUyMGF3c2xhYnMuZHluYW1vZGItbWNwLXNlcnZlciU0MGxhdGVzdCUyMiUyQyUyMmVudiUyMiUzQSU3QiUyMkREQi1NQ1AtUkVBRE9OTFklMjIlM0ElMjJ0cnVlJTIyJTJDJTIyQVdTX1BST0ZJTEUlMjIlM0ElMjJkZWZhdWx0JTIyJTJDJTIyQVdTX1JFR0lPTiUyMiUzQSUyMnVzLXdlc3QtMiUyMiUyQyUyMkZBU1RNQ1BfTE9HX0xFVkVMJTIyJTNBJTIyRVJST1IlMjIlN0QlMkMlMjJkaXNhYmxlZCUyMiUzQWZhbHNlJTJDJTIyYXV0b0FwcHJvdmUlMjIlM0ElNUIlNUQlN0Q%3D)| [![Install on VS Code](https://img.shields.io/badge/Install_on-VS_Code-FF9900?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=DynamoDB%20MCP%20Server&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22awslabs.dynamodb-mcp-server%40latest%22%5D%2C%22env%22%3A%7B%22DDB-MCP-READONLY%22%3A%22true%22%2C%22AWS_PROFILE%22%3A%22default%22%2C%22AWS_REGION%22%3A%22us-west-2%22%2C%22FASTMCP_LOG_LEVEL%22%3A%22ERROR%22%7D%2C%22disabled%22%3Afalse%2C%22autoApprove%22%3A%5B%5D%7D) |

Add the MCP to your favorite agentic tools. (e.g. for Amazon Q Developer CLI MCP, `~/.aws/amazonq/mcp.json`):

```json
{
"mcpServers": {
"awslabs.dynamodb-mcp-server": {
"command": "uvx",
"args": ["awslabs.dynamodb-mcp-server@1.0.9"],
"args": ["awslabs.dynamodb-mcp-server@latest"],
"env": {
"DDB-MCP-READONLY": "true",
"AWS_PROFILE": "default",
Expand All @@ -48,9 +52,57 @@ If you must use the previous operational tools, you can pin to version 1.0.9, th
}
```

## Instructions
### Windows Installation

To design a data model in natural language you can simply ask your AI agent to “use my DynamoDB MCP to help me design a DynamoDB data model,” or something similar. If you want to analyze your MySQL query patterns then you can follow these additional steps below to setup connectivity and then say something like “analyze my MySQL database and then help me design a DynamoDB data model.”
For Windows users, the MCP server configuration format is slightly different:

```json
{
"mcpServers": {
"awslabs.dynamodb-mcp-server": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uv",
"args": [
"tool",
"run",
"--from",
"awslabs.dynamodb-mcp-server@latest",
"awslabs.dynamodb-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-west-2"
}
}
}
}
```

or docker after a successful `docker build -t awslabs/dynamodb-mcp-server .`:

```json
{
"mcpServers": {
"awslabs.dynamodb-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"--interactive",
"--env",
"FASTMCP_LOG_LEVEL=ERROR",
"awslabs/dynamodb-mcp-server:latest"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
```

## Source Database Integration

Expand Down Expand Up @@ -108,28 +160,30 @@ Add these environment variables to DynamoDB MCP Server configuration to enable M
}
```

## Prerequisites
## Migration Notice

1. Install `uv` from [Astral](https://docs.astral.sh/uv/getting-started/installation/) or the [GitHub README](https://github.com/astral-sh/uv#installation)
2. Install Python using `uv python install 3.10`
3. Set up AWS credentials with access to AWS services
Starting with version 2.0.0, this server focuses exclusively on DynamoDB design and modeling guidance. All operational DynamoDB management tools (table operations, item operations, queries, backups, etc.) have been removed in favor of the [AWS API MCP Server](https://github.com/awslabs/mcp/tree/main/src/aws-api-mcp-server) which provides the same capability and more.

* Consider setting up Read-only permission if you don't want the LLM to modify any resources
**This server does not do:**

## Installation
- ❌ Operational DynamoDB management (CRUD operations)
- ❌ Table creation or data migration
- ❌ Direct data queries or transformations

| Cursor | VS Code |
|:------:|:-------:|
| [![Install MCP Server](https://cursor.com/deeplink/mcp-install-light.svg)](https://cursor.com/en/install-mcp?name=awslabs.dynamodb-mcp-server&config=JTdCJTIyY29tbWFuZCUyMiUzQSUyMnV2eCUyMGF3c2xhYnMuZHluYW1vZGItbWNwLXNlcnZlciU0MGxhdGVzdCUyMiUyQyUyMmVudiUyMiUzQSU3QiUyMkREQi1NQ1AtUkVBRE9OTFklMjIlM0ElMjJ0cnVlJTIyJTJDJTIyQVdTX1BST0ZJTEUlMjIlM0ElMjJkZWZhdWx0JTIyJTJDJTIyQVdTX1JFR0lPTiUyMiUzQSUyMnVzLXdlc3QtMiUyMiUyQyUyMkZBU1RNQ1BfTE9HX0xFVkVMJTIyJTNBJTIyRVJST1IlMjIlN0QlMkMlMjJkaXNhYmxlZCUyMiUzQWZhbHNlJTJDJTIyYXV0b0FwcHJvdmUlMjIlM0ElNUIlNUQlN0Q%3D)| [![Install on VS Code](https://img.shields.io/badge/Install_on-VS_Code-FF9900?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=DynamoDB%20MCP%20Server&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22awslabs.dynamodb-mcp-server%40latest%22%5D%2C%22env%22%3A%7B%22DDB-MCP-READONLY%22%3A%22true%22%2C%22AWS_PROFILE%22%3A%22default%22%2C%22AWS_REGION%22%3A%22us-west-2%22%2C%22FASTMCP_LOG_LEVEL%22%3A%22ERROR%22%7D%2C%22disabled%22%3Afalse%2C%22autoApprove%22%3A%5B%5D%7D) |
### Recommended: AWS API MCP Server

Add the MCP to your favorite agentic tools. (e.g. for Amazon Q Developer CLI MCP, `~/.aws/amazonq/mcp.json`):
For operational DynamoDB management (retrieving data, managing tables, etc.), use the [AWS API MCP Server](https://github.com/awslabs/mcp/tree/main/src/aws-api-mcp-server) which provides comprehensive DynamoDB operations. [Migration guide available here](https://github.com/awslabs/mcp/tree/main/src/aws-api-mcp-server).

### Not Recommended: Legacy Version

If you must use the previous operational tools, you can pin to version 1.0.9, though this is not recommended:

```json
{
"mcpServers": {
"awslabs.dynamodb-mcp-server": {
"command": "uvx",
"args": ["awslabs.dynamodb-mcp-server@latest"],
"args": ["awslabs.dynamodb-mcp-server@1.0.9"],
"env": {
"DDB-MCP-READONLY": "true",
"AWS_PROFILE": "default",
Expand All @@ -142,82 +196,3 @@ Add the MCP to your favorite agentic tools. (e.g. for Amazon Q Developer CLI MCP
}
}
```

### Windows Installation

For Windows users, the MCP server configuration format is slightly different:

```json
{
"mcpServers": {
"awslabs.dynamodb-mcp-server": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uv",
"args": [
"tool",
"run",
"--from",
"awslabs.dynamodb-mcp-server@latest",
"awslabs.dynamodb-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-west-2"
}
}
}
}
```


or docker after a successful `docker build -t awslabs/dynamodb-mcp-server .`:

```json
{
"mcpServers": {
"awslabs.dynamodb-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"--interactive",
"--env",
"FASTMCP_LOG_LEVEL=ERROR",
"awslabs/dynamodb-mcp-server:latest"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
```

## Limitations & Considerations

### **Application-Level Patterns:**

* Queries generated dynamically in application code
* Caching layer behavior (Redis, Memcached)
* Real-time vs. analytics query differentiation
* Background job access patterns

### Business Context:

* Data consistency requirements
* Compliance and audit requirements
* Geographic distribution requirements

### Recommendation:

Supplement analysis with documentation or natural language descriptions based on:

* Application code review
* Architecture documentation review
* Stakeholder interviews with development team
* Load testing results analysis

There are also more complex patterns that result from stored procedures, triggers, aggregations, that the tool does not currently handle consistently but we plan to improve in future iterations.
Loading
Loading