# dynamodb

Connects AI coding assistants to AWS DynamoDB or LocalStack with granular permission groups for reading, writing, and administration.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 81
- Author: pulsemcp
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/pulsemcp/mcp-servers/tree/HEAD/experimental/dynamodb
- Updated: 2026-10-09
- HTML: https://affpapa.org/en/nevibecode/mcp/dynamodb

## What it does

The server exposes DynamoDB actions via `aws-dynamodb-mcp-server`. The agent can inspect table schemas, fetch items by key, execute query and scan filters, and handle batch operations. Administrative calls let it create, update, or drop tables.

Access is controlled through environment flags. You can restrict permissions to the `readonly` group or set an explicit whitelist with `DYNAMODB_ENABLED_TOOLS`. To limit the scope of changes, list target tables in `DYNAMODB_ALLOWED_TABLES`. Table name matching is case-sensitive: a mismatch in casing triggers an access denied error.

The server works with standard AWS regions and custom endpoints via `DYNAMODB_ENDPOINT`. The `AWS_REGION` variable is mandatory even when targeting local endpoints.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `AWS_REGION`, `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `DYNAMODB_ENDPOINT`, `DYNAMODB_ENABLED_TOOL_GROUPS`, `DYNAMODB_ENABLED_TOOLS`, `DYNAMODB_DISABLED_TOOLS`, `DYNAMODB_ALLOWED_TABLES`, `SKIP_HEALTH_CHECKS` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env AWS_REGION=<AWS_REGION> --env AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID> --env AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY> --env DYNAMODB_ENDPOINT=<DYNAMODB_ENDPOINT> --env DYNAMODB_ENABLED_TOOL_GROUPS=<DYNAMODB_ENABLED_TOOL_GROUPS> --transport stdio dynamodb -- npx -y aws-dynamodb-mcp-server
```
Replace <…> with your own values. 4 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add dynamodb --env AWS_REGION=<AWS_REGION> --env AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID> --env AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY> --env DYNAMODB_ENDPOINT=<DYNAMODB_ENDPOINT> --env DYNAMODB_ENABLED_TOOL_GROUPS=<DYNAMODB_ENABLED_TOOL_GROUPS> -- npx -y aws-dynamodb-mcp-server
```
Replace <…> with your own values. 4 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "dynamodb": {
            "command": "npx",
            "args": [
                "-y",
                "aws-dynamodb-mcp-server"
            ],
            "env": {
                "AWS_REGION": "<AWS_REGION>",
                "AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
                "AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>",
                "DYNAMODB_ENDPOINT": "<DYNAMODB_ENDPOINT>",
                "DYNAMODB_ENABLED_TOOL_GROUPS": "<DYNAMODB_ENABLED_TOOL_GROUPS>"
            }
        }
    }
}
```
Replace <…> with your own values. 4 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "dynamodb": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "aws-dynamodb-mcp-server"
            ],
            "env": {
                "AWS_REGION": "<AWS_REGION>",
                "AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
                "AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>",
                "DYNAMODB_ENDPOINT": "<DYNAMODB_ENDPOINT>",
                "DYNAMODB_ENABLED_TOOL_GROUPS": "<DYNAMODB_ENABLED_TOOL_GROUPS>"
            }
        }
    }
}
```
Replace <…> with your own values. 4 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e AWS_REGION=<AWS_REGION> -e AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID> -e AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY> -e DYNAMODB_ENDPOINT=<DYNAMODB_ENDPOINT> -e DYNAMODB_ENABLED_TOOL_GROUPS=<DYNAMODB_ENABLED_TOOL_GROUPS> dynamodb npx -y aws-dynamodb-mcp-server
```
Replace <…> with your own values. 4 more environment variables are in the server README

## When to use it
- query table items using key conditions and attribute filters
- inspect table schemas and secondary indexes
- isolate the agent to read-only access on specific tables
- run queries against a local LocalStack instance during development

## Example prompts
- List all DynamoDB tables available in the current region.
- Query the Orders table for customer C123 records from the past month.
- Create a Users table with userId as the partition key using on-demand billing.

## Similar
- [aws-dynamodb](https://affpapa.org/en/nevibecode/skills/aws-dynamodb.md) — skill · 522 installs
- [amazon-dynamodb](https://affpapa.org/en/nevibecode/skills/amazon-dynamodb.md) — skill · 5100 installs
- [dynamodb-toolbox-patterns](https://affpapa.org/en/nevibecode/skills/dynamodb-toolbox-patterns.md) — skill · 3500 installs
- [connecting-lambda-to-dynamodb](https://affpapa.org/en/nevibecode/skills/connecting-lambda-to-dynamodb.md) — skill · 6500 installs
- [ministack-aws-emulator](https://affpapa.org/en/nevibecode/skills/ministack-aws-emulator.md) — skill · 790 installs
- [nosql-database-design](https://affpapa.org/en/nevibecode/skills/nosql-database-design.md) — skill · 486 installs

From the same set: [pulsemcp/mcp-servers](https://affpapa.org/en/nevibecode/by/pulsemcp/mcp-servers.md) — 28 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
