awslabs.dynamodb-mcp-server 1.0.9__py3-none-any.whl → 2.0.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of awslabs.dynamodb-mcp-server might be problematic. Click here for more details.
- awslabs/__init__.py +20 -0
- awslabs/dynamodb_mcp_server/__init__.py +1 -1
- awslabs/dynamodb_mcp_server/common.py +1 -282
- awslabs/dynamodb_mcp_server/database_analysis_queries.py +210 -0
- awslabs/dynamodb_mcp_server/database_analyzers.py +383 -0
- awslabs/dynamodb_mcp_server/prompts/dynamodb_architect.md +13 -0
- awslabs/dynamodb_mcp_server/server.py +153 -858
- awslabs_dynamodb_mcp_server-2.0.2.dist-info/METADATA +256 -0
- awslabs_dynamodb_mcp_server-2.0.2.dist-info/RECORD +13 -0
- awslabs_dynamodb_mcp_server-1.0.9.dist-info/METADATA +0 -180
- awslabs_dynamodb_mcp_server-1.0.9.dist-info/RECORD +0 -11
- {awslabs_dynamodb_mcp_server-1.0.9.dist-info → awslabs_dynamodb_mcp_server-2.0.2.dist-info}/WHEEL +0 -0
- {awslabs_dynamodb_mcp_server-1.0.9.dist-info → awslabs_dynamodb_mcp_server-2.0.2.dist-info}/entry_points.txt +0 -0
- {awslabs_dynamodb_mcp_server-1.0.9.dist-info → awslabs_dynamodb_mcp_server-2.0.2.dist-info}/licenses/LICENSE +0 -0
- {awslabs_dynamodb_mcp_server-1.0.9.dist-info → awslabs_dynamodb_mcp_server-2.0.2.dist-info}/licenses/NOTICE +0 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: awslabs.dynamodb-mcp-server
|
|
3
|
+
Version: 2.0.2
|
|
4
|
+
Summary: The official MCP Server for interacting with AWS DynamoDB
|
|
5
|
+
Project-URL: homepage, https://awslabs.github.io/mcp/
|
|
6
|
+
Project-URL: docs, https://awslabs.github.io/mcp/servers/dynamodb-mcp-server/
|
|
7
|
+
Project-URL: documentation, https://awslabs.github.io/mcp/servers/dynamodb-mcp-server/
|
|
8
|
+
Project-URL: repository, https://github.com/awslabs/mcp.git
|
|
9
|
+
Project-URL: changelog, https://github.com/awslabs/mcp/blob/main/src/dynamodb-mcp-server/CHANGELOG.md
|
|
10
|
+
Author: Amazon Web Services
|
|
11
|
+
Author-email: AWSLabs MCP <203918161+awslabs-mcp@users.noreply.github.com>, Erben Mo <moerben@amazon.com>
|
|
12
|
+
License: Apache-2.0
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
License-File: NOTICE
|
|
15
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Requires-Dist: awslabs-mysql-mcp-server==1.0.5
|
|
25
|
+
Requires-Dist: boto3==1.40.5
|
|
26
|
+
Requires-Dist: dspy-ai>=2.6.27
|
|
27
|
+
Requires-Dist: loguru==0.7.3
|
|
28
|
+
Requires-Dist: mcp[cli]==1.12.4
|
|
29
|
+
Requires-Dist: pydantic==2.11.7
|
|
30
|
+
Requires-Dist: strands-agents>=1.5.0
|
|
31
|
+
Requires-Dist: typing-extensions==4.14.1
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
|
|
34
|
+
# AWS DynamoDB MCP Server
|
|
35
|
+
|
|
36
|
+
The official developer experience MCP Server for Amazon DynamoDB. This server provides DynamoDB expert design guidance and data modeling assistance.
|
|
37
|
+
|
|
38
|
+
## Available MCP Tools
|
|
39
|
+
|
|
40
|
+
Right now the DynamoDB MCP server contains two tools that support data modeling tasks. You can design a data model in natural language by using only the `dynamodb_data_modeling` tool or you can analyze your MySQL database and convert the analysis into a DynamoDB data model by using the `source_db_analyzer` tool.
|
|
41
|
+
|
|
42
|
+
### Design & Modeling
|
|
43
|
+
|
|
44
|
+
* `dynamodb_data_modeling` - Retrieves the complete DynamoDB Data Modeling Expert prompt
|
|
45
|
+
* `source_db_analyzer` - Executes predefined SQL queries against source databases to analyze schema and access patterns
|
|
46
|
+
|
|
47
|
+
## Migration Notice
|
|
48
|
+
|
|
49
|
+
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.
|
|
50
|
+
|
|
51
|
+
**This server does not do:**
|
|
52
|
+
|
|
53
|
+
- ❌ Operational DynamoDB management (CRUD operations)
|
|
54
|
+
- ❌ Table creation or data migration
|
|
55
|
+
- ❌ Direct data queries or transformations
|
|
56
|
+
|
|
57
|
+
### Recommended: AWS API MCP Server
|
|
58
|
+
|
|
59
|
+
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).
|
|
60
|
+
|
|
61
|
+
### Not Recommended: Legacy Version
|
|
62
|
+
|
|
63
|
+
If you must use the previous operational tools, you can pin to version 1.0.9, though this is not recommended:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"mcpServers": {
|
|
68
|
+
"awslabs.dynamodb-mcp-server": {
|
|
69
|
+
"command": "uvx",
|
|
70
|
+
"args": ["awslabs.dynamodb-mcp-server@1.0.9"],
|
|
71
|
+
"env": {
|
|
72
|
+
"DDB-MCP-READONLY": "true",
|
|
73
|
+
"AWS_PROFILE": "default",
|
|
74
|
+
"AWS_REGION": "us-west-2",
|
|
75
|
+
"FASTMCP_LOG_LEVEL": "ERROR"
|
|
76
|
+
},
|
|
77
|
+
"disabled": false,
|
|
78
|
+
"autoApprove": []
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Instructions
|
|
85
|
+
|
|
86
|
+
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.”
|
|
87
|
+
|
|
88
|
+
## Source Database Integration
|
|
89
|
+
|
|
90
|
+
The DynamoDB MCP server includes source database integration for database analysis and the tool `source_db_analyzer` is useful to get the actual source database schema and access patterns which helps to design the model in DynamoDB. We recommend running this tool against a non-production database instance and it currently supports Aurora MySQL with additional database support planned for future releases.
|
|
91
|
+
|
|
92
|
+
### Prerequisites for MySQL Integration
|
|
93
|
+
|
|
94
|
+
1. Aurora MySQL Cluster with MySQL username and password stored in AWS Secrets Manager
|
|
95
|
+
2. Enable RDS Data API for your Aurora MySQL Cluster
|
|
96
|
+
3. Enable Performance Schema for access pattern analysis (optional):
|
|
97
|
+
|
|
98
|
+
* Go to the parameter group for your DB instance and set performance_schema value to 1. Make sure to reboot the DB instance after the changes whenever you turn the Performance Schema on or off. Follow the [Instructions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.Modifying.html) to modify DB parameter group in Amazon Aurora.
|
|
99
|
+
* After the parameter values are modified, you can run the "SHOW GLOBAL VARIABLES LIKE'%performance_schema'"; command to view the value of the performance_schema parameter of the database instance, also consider tunning the below parameters if required.
|
|
100
|
+
* `performance_schema_digests_size` [parameter](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_digests_size) - Sets the maximum number of rows stored in the events_statements_summary_by_digest table for querying access pattern. (When you hit this limit, some logs will be lost, potentially missing important access patterns)
|
|
101
|
+
* `performance_schema_max_digest_length` [parameter](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_digest_length) - Sets the maximum byte length for each individual statement digest (access pattern) that the Performance Schema stores. (Default is 1024 bytes, Complex queries might not be fully captured when you hit this limit)
|
|
102
|
+
* Without these Performance Schema query access patterns, DynamoDB Data Modeler tool recommends access patterns based on the information schema from the source Database.
|
|
103
|
+
|
|
104
|
+
1. Set up AWS credentials with access to AWS services:
|
|
105
|
+
|
|
106
|
+
* Configure AWS credentials with `aws configure` or environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN) . The server will automatically use credentials from environment variables or other standard AWS credential sources.
|
|
107
|
+
* AWS profile with permissions to access RDS Data API and AWS Secrets Manager
|
|
108
|
+
|
|
109
|
+
### MySQL Environment Variables
|
|
110
|
+
|
|
111
|
+
Add these environment variables to DynamoDB MCP Server configuration to enable MySQL integration:
|
|
112
|
+
|
|
113
|
+
* `MYSQL_CLUSTER_ARN`: The Resource ARN of the Aurora MySQL cluster
|
|
114
|
+
* `MYSQL_SECRET_ARN`: The ARN of the secret containing database credentials
|
|
115
|
+
* `MYSQL_DATABASE`: The name of the database to connect to
|
|
116
|
+
* `AWS_REGION`: AWS region of the Aurora MySQL cluster
|
|
117
|
+
* `MYSQL_MAX_QUERY_RESULTS`: Maximum number of rows to include in analysis output files for schema and access_pattern logs (optional, default: "500")
|
|
118
|
+
|
|
119
|
+
### MCP configuration with MySQL Environment Variables
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"mcpServers": {
|
|
124
|
+
"awslabs.dynamodb-mcp-server": {
|
|
125
|
+
"command": "uvx",
|
|
126
|
+
"args": ["awslabs.dynamodb-mcp-server@latest"],
|
|
127
|
+
"env": {
|
|
128
|
+
"DDB-MCP-READONLY": "true",
|
|
129
|
+
"AWS_PROFILE": "default",
|
|
130
|
+
"AWS_REGION": "us-west-2",
|
|
131
|
+
"FASTMCP_LOG_LEVEL": "ERROR",
|
|
132
|
+
"MYSQL_CLUSTER_ARN":"arn:aws:rds:$REGION:$ACCOUNT_ID:cluster:$CLUSTER_NAME",
|
|
133
|
+
"MYSQL_SECRET_ARN":"arn:aws:secretsmanager:$REGION:$ACCOUNT_ID:secret:$SECRET_NAME",
|
|
134
|
+
"MYSQL_DATABASE":"<DATABASE_NAME>",
|
|
135
|
+
"MYSQL_MAX_QUERY_RESULTS": 500
|
|
136
|
+
},
|
|
137
|
+
"disabled": false,
|
|
138
|
+
"autoApprove": []
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Prerequisites
|
|
145
|
+
|
|
146
|
+
1. Install `uv` from [Astral](https://docs.astral.sh/uv/getting-started/installation/) or the [GitHub README](https://github.com/astral-sh/uv#installation)
|
|
147
|
+
2. Install Python using `uv python install 3.10`
|
|
148
|
+
3. Set up AWS credentials with access to AWS services
|
|
149
|
+
|
|
150
|
+
* Consider setting up Read-only permission if you don't want the LLM to modify any resources
|
|
151
|
+
|
|
152
|
+
## Installation
|
|
153
|
+
|
|
154
|
+
| Cursor | VS Code |
|
|
155
|
+
|:------:|:-------:|
|
|
156
|
+
| [](https://cursor.com/en/install-mcp?name=awslabs.dynamodb-mcp-server&config=JTdCJTIyY29tbWFuZCUyMiUzQSUyMnV2eCUyMGF3c2xhYnMuZHluYW1vZGItbWNwLXNlcnZlciU0MGxhdGVzdCUyMiUyQyUyMmVudiUyMiUzQSU3QiUyMkREQi1NQ1AtUkVBRE9OTFklMjIlM0ElMjJ0cnVlJTIyJTJDJTIyQVdTX1BST0ZJTEUlMjIlM0ElMjJkZWZhdWx0JTIyJTJDJTIyQVdTX1JFR0lPTiUyMiUzQSUyMnVzLXdlc3QtMiUyMiUyQyUyMkZBU1RNQ1BfTE9HX0xFVkVMJTIyJTNBJTIyRVJST1IlMjIlN0QlMkMlMjJkaXNhYmxlZCUyMiUzQWZhbHNlJTJDJTIyYXV0b0FwcHJvdmUlMjIlM0ElNUIlNUQlN0Q%3D)| [](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) |
|
|
157
|
+
|
|
158
|
+
Add the MCP to your favorite agentic tools. (e.g. for Amazon Q Developer CLI MCP, `~/.aws/amazonq/mcp.json`):
|
|
159
|
+
|
|
160
|
+
```json
|
|
161
|
+
{
|
|
162
|
+
"mcpServers": {
|
|
163
|
+
"awslabs.dynamodb-mcp-server": {
|
|
164
|
+
"command": "uvx",
|
|
165
|
+
"args": ["awslabs.dynamodb-mcp-server@latest"],
|
|
166
|
+
"env": {
|
|
167
|
+
"DDB-MCP-READONLY": "true",
|
|
168
|
+
"AWS_PROFILE": "default",
|
|
169
|
+
"AWS_REGION": "us-west-2",
|
|
170
|
+
"FASTMCP_LOG_LEVEL": "ERROR"
|
|
171
|
+
},
|
|
172
|
+
"disabled": false,
|
|
173
|
+
"autoApprove": []
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Windows Installation
|
|
180
|
+
|
|
181
|
+
For Windows users, the MCP server configuration format is slightly different:
|
|
182
|
+
|
|
183
|
+
```json
|
|
184
|
+
{
|
|
185
|
+
"mcpServers": {
|
|
186
|
+
"awslabs.dynamodb-mcp-server": {
|
|
187
|
+
"disabled": false,
|
|
188
|
+
"timeout": 60,
|
|
189
|
+
"type": "stdio",
|
|
190
|
+
"command": "uv",
|
|
191
|
+
"args": [
|
|
192
|
+
"tool",
|
|
193
|
+
"run",
|
|
194
|
+
"--from",
|
|
195
|
+
"awslabs.dynamodb-mcp-server@latest",
|
|
196
|
+
"awslabs.dynamodb-mcp-server.exe"
|
|
197
|
+
],
|
|
198
|
+
"env": {
|
|
199
|
+
"FASTMCP_LOG_LEVEL": "ERROR",
|
|
200
|
+
"AWS_PROFILE": "your-aws-profile",
|
|
201
|
+
"AWS_REGION": "us-west-2"
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
or docker after a successful `docker build -t awslabs/dynamodb-mcp-server .`:
|
|
210
|
+
|
|
211
|
+
```json
|
|
212
|
+
{
|
|
213
|
+
"mcpServers": {
|
|
214
|
+
"awslabs.dynamodb-mcp-server": {
|
|
215
|
+
"command": "docker",
|
|
216
|
+
"args": [
|
|
217
|
+
"run",
|
|
218
|
+
"--rm",
|
|
219
|
+
"--interactive",
|
|
220
|
+
"--env",
|
|
221
|
+
"FASTMCP_LOG_LEVEL=ERROR",
|
|
222
|
+
"awslabs/dynamodb-mcp-server:latest"
|
|
223
|
+
],
|
|
224
|
+
"env": {},
|
|
225
|
+
"disabled": false,
|
|
226
|
+
"autoApprove": []
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Limitations & Considerations
|
|
233
|
+
|
|
234
|
+
### **Application-Level Patterns:**
|
|
235
|
+
|
|
236
|
+
* Queries generated dynamically in application code
|
|
237
|
+
* Caching layer behavior (Redis, Memcached)
|
|
238
|
+
* Real-time vs. analytics query differentiation
|
|
239
|
+
* Background job access patterns
|
|
240
|
+
|
|
241
|
+
### Business Context:
|
|
242
|
+
|
|
243
|
+
* Data consistency requirements
|
|
244
|
+
* Compliance and audit requirements
|
|
245
|
+
* Geographic distribution requirements
|
|
246
|
+
|
|
247
|
+
### Recommendation:
|
|
248
|
+
|
|
249
|
+
Supplement analysis with documentation or natural language descriptions based on:
|
|
250
|
+
|
|
251
|
+
* Application code review
|
|
252
|
+
* Architecture documentation review
|
|
253
|
+
* Stakeholder interviews with development team
|
|
254
|
+
* Load testing results analysis
|
|
255
|
+
|
|
256
|
+
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.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
awslabs/__init__.py,sha256=eSOf255HxkdQFKpFsCp-JsTvhFfgcK2rW2e_sJ_WjUU,1898
|
|
2
|
+
awslabs/dynamodb_mcp_server/__init__.py,sha256=l3xb-tR1nhO6wtXwU9pZ3xwEykkQfqP9rqZcUSfWb7Q,673
|
|
3
|
+
awslabs/dynamodb_mcp_server/common.py,sha256=--RWFURrGYjRjAnOuIbyX-DDrfZy1EeQXXRg4lASFB4,1677
|
|
4
|
+
awslabs/dynamodb_mcp_server/database_analysis_queries.py,sha256=iHngCENDnX5F0XBOrYVq0cA-fP4QCpmPhDNRCFtvGgA,8166
|
|
5
|
+
awslabs/dynamodb_mcp_server/database_analyzers.py,sha256=GEZubzjEiCW898LbKlDYHuvvirt_Z7ubJ8QZdkFMh-c,15046
|
|
6
|
+
awslabs/dynamodb_mcp_server/server.py,sha256=sbCebTs6AtW7nYQRNwGbpVokxSRR0VQE_rRUqFqZTPA,10181
|
|
7
|
+
awslabs/dynamodb_mcp_server/prompts/dynamodb_architect.md,sha256=ZTu64seZOwhnep7Jqi9PG5rkGwO8irkk3Lro6bdzU48,40644
|
|
8
|
+
awslabs_dynamodb_mcp_server-2.0.2.dist-info/METADATA,sha256=DNKybWJCXo8RtvISfwjCcA4KVczArYGu1aoFxLsoxLk,11868
|
|
9
|
+
awslabs_dynamodb_mcp_server-2.0.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
10
|
+
awslabs_dynamodb_mcp_server-2.0.2.dist-info/entry_points.txt,sha256=Vn6TvAN9d67Lsbkcs0UcIiOBI5xDpNBm_MOOzc1h-YU,88
|
|
11
|
+
awslabs_dynamodb_mcp_server-2.0.2.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
|
|
12
|
+
awslabs_dynamodb_mcp_server-2.0.2.dist-info/licenses/NOTICE,sha256=47UMmTFkf8rUc_JaJfdWe6NsAJQOcZNPZIL6JzU_k5U,95
|
|
13
|
+
awslabs_dynamodb_mcp_server-2.0.2.dist-info/RECORD,,
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: awslabs.dynamodb-mcp-server
|
|
3
|
-
Version: 1.0.9
|
|
4
|
-
Summary: The official MCP Server for interacting with AWS DynamoDB
|
|
5
|
-
Project-URL: homepage, https://awslabs.github.io/mcp/
|
|
6
|
-
Project-URL: docs, https://awslabs.github.io/mcp/servers/dynamodb-mcp-server/
|
|
7
|
-
Project-URL: documentation, https://awslabs.github.io/mcp/servers/dynamodb-mcp-server/
|
|
8
|
-
Project-URL: repository, https://github.com/awslabs/mcp.git
|
|
9
|
-
Project-URL: changelog, https://github.com/awslabs/mcp/blob/main/src/dynamodb-mcp-server/CHANGELOG.md
|
|
10
|
-
Author: Amazon Web Services
|
|
11
|
-
Author-email: AWSLabs MCP <203918161+awslabs-mcp@users.noreply.github.com>, Erben Mo <moerben@amazon.com>
|
|
12
|
-
License: Apache-2.0
|
|
13
|
-
License-File: LICENSE
|
|
14
|
-
License-File: NOTICE
|
|
15
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
16
|
-
Classifier: Operating System :: OS Independent
|
|
17
|
-
Classifier: Programming Language :: Python
|
|
18
|
-
Classifier: Programming Language :: Python :: 3
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
-
Requires-Python: >=3.10
|
|
24
|
-
Requires-Dist: boto3==1.40.5
|
|
25
|
-
Requires-Dist: dspy-ai>=2.6.27
|
|
26
|
-
Requires-Dist: loguru==0.7.3
|
|
27
|
-
Requires-Dist: mcp[cli]==1.12.4
|
|
28
|
-
Requires-Dist: pydantic==2.11.7
|
|
29
|
-
Requires-Dist: strands-agents>=1.5.0
|
|
30
|
-
Requires-Dist: typing-extensions==4.14.1
|
|
31
|
-
Description-Content-Type: text/markdown
|
|
32
|
-
|
|
33
|
-
# AWS DynamoDB MCP Server
|
|
34
|
-
|
|
35
|
-
The official MCP Server for interacting with AWS DynamoDB
|
|
36
|
-
|
|
37
|
-
This comprehensive server provides both operational DynamoDB management and expert design guidance, featuring 30+ operational tools for managing DynamoDB tables, items, indexes, backups, and more, expert data modeling guidance.
|
|
38
|
-
|
|
39
|
-
## Available MCP Tools
|
|
40
|
-
|
|
41
|
-
### Design & Modeling
|
|
42
|
-
- `dynamodb_data_modeling` - Retrieves the complete DynamoDB Data Modeling Expert prompt
|
|
43
|
-
|
|
44
|
-
### Table Operations
|
|
45
|
-
- `create_table` - Creates a new DynamoDB table with optional secondary indexes
|
|
46
|
-
- `delete_table` - Deletes a table and all of its items
|
|
47
|
-
- `describe_table` - Returns table information including status, creation time, key schema and indexes
|
|
48
|
-
- `list_tables` - Returns a paginated list of table names in your account
|
|
49
|
-
- `update_table` - Modifies table settings including provisioned throughput, global secondary indexes, and DynamoDB Streams configuration
|
|
50
|
-
|
|
51
|
-
### Item Operations
|
|
52
|
-
- `get_item` - Returns attributes for an item with the given primary key
|
|
53
|
-
- `put_item` - Creates a new item or replaces an existing item in a table
|
|
54
|
-
- `update_item` - Edits an existing item's attributes, or adds a new item if it does not already exist
|
|
55
|
-
- `delete_item` - Deletes a single item in a table by primary key
|
|
56
|
-
|
|
57
|
-
### Query and Scan Operations
|
|
58
|
-
- `query` - Returns items from a table or index matching a partition key value, with optional sort key filtering
|
|
59
|
-
- `scan` - Returns items and attributes by scanning a table or secondary index
|
|
60
|
-
|
|
61
|
-
### Backup and Recovery
|
|
62
|
-
- `create_backup` - Creates a backup of a DynamoDB table
|
|
63
|
-
- `describe_backup` - Describes an existing backup of a table
|
|
64
|
-
- `list_backups` - Returns a list of table backups
|
|
65
|
-
- `restore_table_from_backup` - Creates a new table from a backup
|
|
66
|
-
- `describe_continuous_backups` - Returns continuous backup and point in time recovery status
|
|
67
|
-
- `update_continuous_backups` - Enables or disables point in time recovery
|
|
68
|
-
|
|
69
|
-
### Time to Live (TTL)
|
|
70
|
-
- `update_time_to_live` - Enables or disables Time to Live (TTL) for the specified table
|
|
71
|
-
- `describe_time_to_live` - Returns the Time to Live (TTL) settings for a table
|
|
72
|
-
|
|
73
|
-
### Export Operations
|
|
74
|
-
- `describe_export` - Returns information about a table export
|
|
75
|
-
- `list_exports` - Returns a list of table exports
|
|
76
|
-
|
|
77
|
-
### Tags and Resource Policies
|
|
78
|
-
- `put_resource_policy` - Attaches a resource-based policy document to a table or stream
|
|
79
|
-
- `get_resource_policy` - Returns the resource-based policy document attached to a table or stream
|
|
80
|
-
- `tag_resource` - Adds tags to a DynamoDB resource
|
|
81
|
-
- `untag_resource` - Removes tags from a DynamoDB resource
|
|
82
|
-
- `list_tags_of_resource` - Returns tags for a DynamoDB resource
|
|
83
|
-
|
|
84
|
-
### Misc
|
|
85
|
-
- `describe_limits` - Returns the current provisioned-capacity quotas for your AWS account
|
|
86
|
-
- `describe_endpoints` - Returns DynamoDB endpoints for the current region
|
|
87
|
-
|
|
88
|
-
## Instructions
|
|
89
|
-
|
|
90
|
-
The official MCP Server for interacting with AWS DynamoDB provides a comprehensive set of tools for both designing and managing DynamoDB resources.
|
|
91
|
-
|
|
92
|
-
To use these tools, ensure you have proper AWS credentials configured with appropriate permissions for DynamoDB operations. The server will automatically use credentials from environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN) or other standard AWS credential sources.
|
|
93
|
-
|
|
94
|
-
All tools support an optional `region_name` parameter to specify which AWS region to operate in. If not provided, it will use the AWS_REGION environment variable or default to 'us-west-2'.
|
|
95
|
-
|
|
96
|
-
## Prerequisites
|
|
97
|
-
|
|
98
|
-
1. Install `uv` from [Astral](https://docs.astral.sh/uv/getting-started/installation/) or the [GitHub README](https://github.com/astral-sh/uv#installation)
|
|
99
|
-
2. Install Python using `uv python install 3.10`
|
|
100
|
-
3. Set up AWS credentials with access to AWS services
|
|
101
|
-
- Consider setting up Read-only permission if you don't want the LLM to modify any resources
|
|
102
|
-
|
|
103
|
-
## Installation
|
|
104
|
-
|
|
105
|
-
| Cursor | VS Code |
|
|
106
|
-
|:------:|:-------:|
|
|
107
|
-
| [](https://cursor.com/en/install-mcp?name=awslabs.dynamodb-mcp-server&config=JTdCJTIyY29tbWFuZCUyMiUzQSUyMnV2eCUyMGF3c2xhYnMuZHluYW1vZGItbWNwLXNlcnZlciU0MGxhdGVzdCUyMiUyQyUyMmVudiUyMiUzQSU3QiUyMkREQi1NQ1AtUkVBRE9OTFklMjIlM0ElMjJ0cnVlJTIyJTJDJTIyQVdTX1BST0ZJTEUlMjIlM0ElMjJkZWZhdWx0JTIyJTJDJTIyQVdTX1JFR0lPTiUyMiUzQSUyMnVzLXdlc3QtMiUyMiUyQyUyMkZBU1RNQ1BfTE9HX0xFVkVMJTIyJTNBJTIyRVJST1IlMjIlN0QlMkMlMjJkaXNhYmxlZCUyMiUzQWZhbHNlJTJDJTIyYXV0b0FwcHJvdmUlMjIlM0ElNUIlNUQlN0Q%3D)| [](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) |
|
|
108
|
-
|
|
109
|
-
Add the MCP to your favorite agentic tools. (e.g. for Amazon Q Developer CLI MCP, `~/.aws/amazonq/mcp.json`):
|
|
110
|
-
|
|
111
|
-
```json
|
|
112
|
-
{
|
|
113
|
-
"mcpServers": {
|
|
114
|
-
"awslabs.dynamodb-mcp-server": {
|
|
115
|
-
"command": "uvx",
|
|
116
|
-
"args": ["awslabs.dynamodb-mcp-server@latest"],
|
|
117
|
-
"env": {
|
|
118
|
-
"DDB-MCP-READONLY": "true",
|
|
119
|
-
"AWS_PROFILE": "default",
|
|
120
|
-
"AWS_REGION": "us-west-2",
|
|
121
|
-
"FASTMCP_LOG_LEVEL": "ERROR"
|
|
122
|
-
},
|
|
123
|
-
"disabled": false,
|
|
124
|
-
"autoApprove": []
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
```
|
|
129
|
-
### Windows Installation
|
|
130
|
-
|
|
131
|
-
For Windows users, the MCP server configuration format is slightly different:
|
|
132
|
-
|
|
133
|
-
```json
|
|
134
|
-
{
|
|
135
|
-
"mcpServers": {
|
|
136
|
-
"awslabs.dynamodb-mcp-server": {
|
|
137
|
-
"disabled": false,
|
|
138
|
-
"timeout": 60,
|
|
139
|
-
"type": "stdio",
|
|
140
|
-
"command": "uv",
|
|
141
|
-
"args": [
|
|
142
|
-
"tool",
|
|
143
|
-
"run",
|
|
144
|
-
"--from",
|
|
145
|
-
"awslabs.dynamodb-mcp-server@latest",
|
|
146
|
-
"awslabs.dynamodb-mcp-server.exe"
|
|
147
|
-
],
|
|
148
|
-
"env": {
|
|
149
|
-
"FASTMCP_LOG_LEVEL": "ERROR",
|
|
150
|
-
"AWS_PROFILE": "your-aws-profile",
|
|
151
|
-
"AWS_REGION": "us-east-1"
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
or docker after a successful `docker build -t awslabs/dynamodb-mcp-server .`:
|
|
160
|
-
|
|
161
|
-
```json
|
|
162
|
-
{
|
|
163
|
-
"mcpServers": {
|
|
164
|
-
"awslabs.dynamodb-mcp-server": {
|
|
165
|
-
"command": "docker",
|
|
166
|
-
"args": [
|
|
167
|
-
"run",
|
|
168
|
-
"--rm",
|
|
169
|
-
"--interactive",
|
|
170
|
-
"--env",
|
|
171
|
-
"FASTMCP_LOG_LEVEL=ERROR",
|
|
172
|
-
"awslabs/dynamodb-mcp-server:latest"
|
|
173
|
-
],
|
|
174
|
-
"env": {},
|
|
175
|
-
"disabled": false,
|
|
176
|
-
"autoApprove": []
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
```
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
awslabs/__init__.py,sha256=WuqxdDgUZylWNmVoPKiK7qGsTB_G4UmuXIrJ-VBwDew,731
|
|
2
|
-
awslabs/dynamodb_mcp_server/__init__.py,sha256=2OrpgBMsFZ4x0QsiH0kfk8b1KT461uSqvbYG9ib_14Q,673
|
|
3
|
-
awslabs/dynamodb_mcp_server/common.py,sha256=aj1uOGa63TQdM3r75Zht74y1OGgUblDEQ-0h1RZHfn0,11422
|
|
4
|
-
awslabs/dynamodb_mcp_server/server.py,sha256=rJhbetBZ0jxu4GyQNvuU5W8FtGKfo9iM1-YNYfZaQWE,36698
|
|
5
|
-
awslabs/dynamodb_mcp_server/prompts/dynamodb_architect.md,sha256=gaWjHmTu2oFiFnEKCs20Xe2JbClr6q4kP9e4_MK1Shw,39866
|
|
6
|
-
awslabs_dynamodb_mcp_server-1.0.9.dist-info/METADATA,sha256=5_7oACxc8P8y7oxoB3O5umsSdOdpEHGETY1hIcCxfuM,7948
|
|
7
|
-
awslabs_dynamodb_mcp_server-1.0.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
8
|
-
awslabs_dynamodb_mcp_server-1.0.9.dist-info/entry_points.txt,sha256=Vn6TvAN9d67Lsbkcs0UcIiOBI5xDpNBm_MOOzc1h-YU,88
|
|
9
|
-
awslabs_dynamodb_mcp_server-1.0.9.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
|
|
10
|
-
awslabs_dynamodb_mcp_server-1.0.9.dist-info/licenses/NOTICE,sha256=47UMmTFkf8rUc_JaJfdWe6NsAJQOcZNPZIL6JzU_k5U,95
|
|
11
|
-
awslabs_dynamodb_mcp_server-1.0.9.dist-info/RECORD,,
|
{awslabs_dynamodb_mcp_server-1.0.9.dist-info → awslabs_dynamodb_mcp_server-2.0.2.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|