mcpField
D
dynamodb

dynamodb

Local
github.com/pulsemcpDatabases81Updated 8w ago

About dynamodb

DynamoDB MCP Server is an MCP server for AWS DynamoDB with fine-grained tool control and configurable access levels. It suits teams that want an assistant or agent to work with DynamoDB data under clear limits. It supports the AWS credential chain and custom endpoints such as local DynamoDB or LocalStack.

Key features

  1. 01Tables, items, queries, scans and batch operations
  2. 02Enable or disable tools by group or individually
  3. 03Restrict operations to specified tables
  4. 04Support for AWS credential chain and custom endpoints

Use cases

  1. 01Querying DynamoDB table data from an MCP client
  2. 02Running an agent in read-only mode against production tables
  3. 03Developing and testing against local DynamoDB or LocalStack

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"com-pulsemcp-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>",
"DYNAMODB_ENABLED_TOOLS": "<DYNAMODB_ENABLED_TOOLS>",
"DYNAMODB_DISABLED_TOOLS": "<DYNAMODB_DISABLED_TOOLS>",
"DYNAMODB_ALLOWED_TABLES": "<DYNAMODB_ALLOWED_TABLES>",
"SKIP_HEALTH_CHECKS": "<SKIP_HEALTH_CHECKS>"
}
}
}
}
Run commandnpx -y aws-dynamodb-mcp-server
Environment variables to set
AWS_REGIONAWS region for DynamoDB (or use AWS_DEFAULT_REGION).
AWS_ACCESS_KEY_IDSecretAWS access key ID (uses AWS credential chain if not set).
AWS_SECRET_ACCESS_KEYSecretAWS secret access key (uses AWS credential chain if not set).
DYNAMODB_ENDPOINTCustom endpoint for local DynamoDB or LocalStack.
DYNAMODB_ENABLED_TOOL_GROUPSComma-separated tool groups to enable (readonly, readwrite, admin).
DYNAMODB_ENABLED_TOOLSComma-separated whitelist of specific tools to enable.
DYNAMODB_DISABLED_TOOLSComma-separated blacklist of specific tools to disable.
DYNAMODB_ALLOWED_TABLESRestrict operations to specific tables (comma-separated); all tables accessible if not set.
SKIP_HEALTH_CHECKSSkip startup health checks.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmaws-dynamodb-mcp-server0.2.7

Tools

13

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
limitnumberNoMaximum number of tables to return (1-100). Default: 100
exclusiveStartTableNamestringNoName of the last evaluated table from a previous request. Use for pagination.

Details

From the project README

DynamoDB MCP Server

An MCP server for AWS DynamoDB with fine-grained tool control. Provides comprehensive DynamoDB operations with configurable access levels.

Features

  • Complete DynamoDB Operations: Tables, items, queries, scans, and batch operations
  • Fine-grained Access Control: Enable/disable tools by group or individually
  • Table-level Access Control: Restrict operations to specific tables
  • AWS Credential Support: Works with explicit credentials or AWS credential chain
  • Custom Endpoints: Support for local DynamoDB or LocalStack

Available Tools

Tool names are kept short since MCP clients typically prefix them with the server name (e.g., dynamodb:list_tables).

Readonly Tools (Group: readonly)
ToolDescription
list_tablesList all DynamoDB tables with pagination
describe_tableGet table metadata, schema, and indexes
get_itemRetrieve single item by primary key
query_itemsQuery items using key conditions
scan_tableScan table with optional filters
batch_get_itemsGet multiple items across tables
ReadWrite Tools (Group: readwrite)
ToolDescription
put_itemCreate or replace an item
update_itemUpdate specific attributes
delete_itemDelete item by primary key
batch_write_itemsBatch put/delete operations
Admin Tools (Group: admin)
ToolDescription
create_tableCreate a new table
delete_tableDelete a table and all data
update_tableUpdate table settings

Configuration

Environment Variables
VariableRequiredDescription
AWS_REGIONYesAWS region (or AWS_DEFAULT_REGION)
AWS_ACCESS_KEY_IDNoAWS access key (uses credential chain if not set)
AWS_SECRET_ACCESS_KEYNoAWS secret key (uses credential chain if not set)
DYNAMODB_ENDPOINTNoCustom endpoint (for local DynamoDB)
DYNAMODB_ENABLED_TOOL_GROUPSNoComma-separated groups: readonly, readwrite, admin
DYNAMODB_ENABLED_TOOLSNoWhitelist specific tools
DYNAMODB_DISABLED_TOOLSNoBlacklist specific tools
DYNAMODB_ALLOWED_TABLESNoRestrict operations to specific tables (comma-separated)
Tool Access Control

Control which tools are available using three methods:

1. Tool Groups (recommended for most cases):

# Read-only access
DYNAMODB_ENABLED_TOOL_GROUPS="readonly"

# Read and write, no table management
DYNAMODB_ENABLED_TOOL_GROUPS="readonly,readwrite"

# All operations (default)
DYNAMODB_ENABLED_TOOL_GROUPS="readonly,readwrite,admin"

2. Whitelist Specific Tools:

# Only allow specific operations
DYNAMODB_ENABLED_TOOLS="get_item,query_items,scan_table"

3. Blacklist Specific Tools:

# Enable all except dangerous operations
DYNAMODB_DISABLED_TOOLS="delete_table,create_table"

Priority: DYNAMODB_ENABLED_TOOLS > DYNAMODB_DISABLED_TOOLS > DYNAMODB_ENABLED_TOOL_GROUPS

Table-level Access Control

Restrict all operations to specific tables only:

# Only allow access to Users and Orders tables
DYNAMODB_ALLOWED_TABLES="Users,Orders"

When DYNAMODB_ALLOWED_TABLES is set:

  • list_tables only returns tables in the allowed list
  • Operations on non-allowed tables return an "Access denied" error
  • Batch operations fail if any table in the request is not allowed
  • Table names are matched case-sensitively (DynamoDB table names are case-sensitive)
  • When using pagination with list_tables, the limit applies before filtering

Note: If not set or set to an empty string, all tables are accessible (no filtering).

This is useful for:

  • Multi-tenant environments where each client should only access their tables
  • Development environments where you want to protect production tables
  • Limiting the blast radius of AI agents to specific tables

Claude Desktop Configuration

Add to your claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "dynamodb": {
      "command": "npx",
      "args": ["-y", "aws-dynamodb-mcp-server"],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "your-access-key",
        "AWS_SECRET_ACCESS_KEY": "your-secret-key",
        "DYNAMODB_ENABLED_TOOL_GROUPS": "readonly,readwrite"
      }
    }
  }
}
Using Local DynamoDB

For development with local DynamoDB or LocalStack:

{
  "mcpServers": {
    "dynamodb-local": {
      "command": "npx",
      "args": ["-y", "aws-dynamodb-mcp-server"],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "local",
        "AWS_SECRET_ACCESS_KEY": "local",
        "DYNAMODB_ENDPOINT": "http://localhost:8000"
      }
    }
  }
}

Examples

Query Items
Query all orders for customer "C123" from the last 30 days:
- Table: Orders
- Key condition: customerId = :cid AND orderDate > :date
- Values: {":cid": "C123", ":date": "2025-01-01"}
Create Table
Create a Users table with:
- Partition key: userId (String)
- Billing: Pay per request
Batch Operations
Get user profiles for IDs: user1, user2, user3 from the Users table

Development

Setup
cd experimental/dynamodb
npm run install-all
npm run build
Testing
# Unit tests
npm run test:run

# Integration tests
npm run test:integration

# Manual tests (requires AWS credentials)
npm run test:manual

Resources

ResourceDescription
dynamodb://configServer configuration and tool group mappings

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.