Amazon DynamoDB
List and describe DynamoDB tables, manage table lifecycle, and query or mutate items via MCP with IAM access keys.
Overview
Connect Amazon DynamoDB so AI clients can list and describe tables, create, update, or delete tables, and query, scan, get, put, update, or delete items in your AWS account.
This integration uses the Amazon DynamoDB API with IAM access keys stored encrypted in stackgate.ai. Usage is billed to your AWS account.
Prerequisites
- An AWS account with DynamoDB tables you want AI clients to access (or permission to create new tables)
- A stackgate.ai account
Getting credentials
- In the AWS IAM console, create an IAM user (or use an existing automation user) with programmatic access.
- Attach a least-privilege policy. Three common tiers:
Read-only (existing tables)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:ListTables",
"dynamodb:DescribeTable",
"dynamodb:GetItem",
"dynamodb:Query",
"dynamodb:Scan"
],
"Resource": "*"
}
]
}
Read-write (items on specific tables)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:ListTables",
"dynamodb:DescribeTable",
"dynamodb:GetItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:PutItem",
"dynamodb:UpdateItem",
"dynamodb:DeleteItem"
],
"Resource": [
"arn:aws:dynamodb:YOUR-REGION:YOUR-ACCOUNT-ID:table/YOUR-TABLE",
"arn:aws:dynamodb:YOUR-REGION:YOUR-ACCOUNT-ID:table/YOUR-TABLE/index/*"
]
}
]
}
Table admin (create/update/delete tables)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:ListTables",
"dynamodb:DescribeTable",
"dynamodb:CreateTable",
"dynamodb:UpdateTable",
"dynamodb:DeleteTable",
"dynamodb:GetItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:PutItem",
"dynamodb:UpdateItem",
"dynamodb:DeleteItem"
],
"Resource": "*"
}
]
}
- Create an access key and copy the key ID and secret.
- In stackgate.ai, open My Integrations → Amazon DynamoDB.
- Click Activate and enter access key ID, secret access key, AWS region, and optionally a default DynamoDB table name.
For DynamoDB Local or LocalStack, add an optional custom endpoint (e.g. http://localhost:8000).
Using with AI clients
- Dedicated endpoint:
POST /mcp/dynamodbwith a Sanctum bearer token - Private gateway: one config for all integrations — use
dynamodb__*namespaced tools
Typical workflow:
- list_tables — discover tables (paginate with
exclusive_start_key) - describe_table — learn partition/sort keys and GSIs before reads or writes
- query_table — preferred read path when the partition key is known
- get_item — fetch one item by full primary key
- put_item / update_item / delete_item — mutate items (confirm with user)
- create_table / update_table / delete_table — manage tables (
delete_tablerequiresconfirm: true)
Keys and items use DynamoDB AttributeValue JSON, for example:
{ "pk": { "S": "user#1" }, "count": { "N": "42" } }
See Documentation for HTTP authentication and private gateway setup.
Troubleshooting
- 422 integration not configured — complete all required credential fields in My Integrations.
- 403 / AccessDenied from AWS — verify IAM policy includes the DynamoDB actions and table ARNs you need.
- table_name is required — pass
table_nameor set a default table in My Integrations. - ThrottlingException — DynamoDB throttles when capacity is exceeded. Back off and retry; prefer query_table over repeated scan_table calls.
- 1 MB page limit — Query and Scan return at most 1 MB per call. Paginate with
exclusive_start_key/last_evaluated_key. - delete_table blocked — pass
confirm: trueonly after explicit user approval; this permanently deletes the table. - AttributeValue format — each attribute must use typed keys (
S,N,B,BOOL,M,L, etc.) as in the DynamoDB JSON reference.
Available tools
-
list_tables
List DynamoDB tables in the connected AWS account and region.
-
describe_table
Describe a DynamoDB table: key schema, indexes, billing mode, and status.
-
create_table
Create a new DynamoDB table with key schema and optional GSIs/LSIs.
-
update_table
Update a DynamoDB table: throughput, GSIs, streams, or SSE settings.
-
delete_table
Delete a DynamoDB table. Requires confirm=true and explicit user approval.
-
query_table
Query items by partition key. Preferred read path; paginate with exclusive_start_key (1 MB/page).
-
scan_table
Scan a DynamoDB table. Expensive on large tables — prefer query_table; use limit and pagination.
-
get_item
Get a single item by primary key.
-
put_item
Put (create or replace) an item in a DynamoDB table.
-
update_item
Update attributes on an existing item.
-
delete_item
Delete an item by primary key.
MCP endpoint:
https://stackgate.ai/mcp/dynamodb
(HTTP) or via the
private gateway.
Related workflows
Multi-integration playbooks that use Amazon DynamoDB to solve concrete business outcomes.