mcpField
D
dynamodb

dynamodb

本地服务
github.com/pulsemcp数据库818 周前更新

关于 dynamodb

DynamoDB MCP 服务是面向 AWS DynamoDB 的 MCP 服务,支持细粒度的工具控制和可配置的访问级别。它适合需要让 Agent 或助手读写 DynamoDB 数据、同时限制操作范围的团队。项目支持标准 AWS 凭证链,也可连接本地 DynamoDB 或 LocalStack。

主要功能

  1. 01表、条目、查询、扫描与批量操作
  2. 02按工具组或单个工具启用和禁用
  3. 03按表名限制可访问的范围
  4. 04支持 AWS 凭证链与自定义端点

适用场景

  1. 01在 MCP 客户端中查询 DynamoDB 表数据
  2. 02使用只读模式让 Agent 安全地检查数据
  3. 03在本地 DynamoDB 或 LocalStack 中开发测试

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"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>"
}
}
}
}
启动命令npx -y aws-dynamodb-mcp-server
需要配置的环境变量
AWS_REGIONAWS region for DynamoDB (or use AWS_DEFAULT_REGION).
AWS_ACCESS_KEY_ID密钥AWS access key ID (uses AWS credential chain if not set).
AWS_SECRET_ACCESS_KEY密钥AWS 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.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmaws-dynamodb-mcp-server0.2.7

工具

13

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitnumber否返回的表的最大数量(1-100)。默认值:100
exclusiveStartTableNamestring否上一次请求中最后评估的表名。用于分页。

详细介绍

DynamoDB MCP 服务

用于 AWS DynamoDB 的 MCP 服务,可对工具进行精细控制。提供全面的 DynamoDB 操作,并支持配置访问级别。

功能

  • 完整的 DynamoDB 操作:表、项目、查询、扫描和批量操作
  • 精细的访问控制:按组或单独启用/禁用工具
  • 表级访问控制:将操作限制在指定的表中
  • AWS 凭证支持:支持使用显式凭证或 AWS 凭证链
  • 自定义端点:支持本地 DynamoDB 或 LocalStack

可用工具

工具名称较短,因为 MCP 客户端通常会在名称前加上服务名称作为前缀(例如,dynamodb:list_tables)。

只读工具(组:readonly)
工具描述
list_tables分页列出所有 DynamoDB 表
describe_table获取表元数据、架构和索引
get_item根据主键检索单个项目
query_items使用键条件查询项目
scan_table扫描表,可选使用筛选条件
batch_get_items跨表获取多个项目
读写工具(组:readwrite)
工具描述
put_item创建或替换项目
update_item更新指定属性
delete_item根据主键删除项目
batch_write_items批量执行写入/删除操作
管理工具(组:admin)
工具描述
create_table创建新表
delete_table删除表及其所有数据
update_table更新表设置

配置

环境变量
变量必需描述
AWS_REGION是AWS 区域(或 AWS_DEFAULT_REGION)
AWS_ACCESS_KEY_ID否AWS 访问密钥(未设置时使用凭证链)
AWS_SECRET_ACCESS_KEY否AWS 秘密密钥(未设置时使用凭证链)
DYNAMODB_ENDPOINT否自定义端点(用于本地 DynamoDB)
DYNAMODB_ENABLED_TOOL_GROUPS否以逗号分隔的组:readonly、readwrite、admin
DYNAMODB_ENABLED_TOOLS否将指定工具加入允许列表
DYNAMODB_DISABLED_TOOLS否将指定工具加入禁止列表
DYNAMODB_ALLOWED_TABLES否将操作限制在指定的表中(以逗号分隔)
工具访问控制

可通过以下三种方式控制哪些工具可用:

1. 工具组(大多数情况下推荐):

# 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. 将指定工具加入允许列表:

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

3. 将指定工具加入禁止列表:

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

优先级:DYNAMODB_ENABLED_TOOLS > DYNAMODB_DISABLED_TOOLS > DYNAMODB_ENABLED_TOOL_GROUPS

表级访问控制

将所有操作限制为仅针对特定表:

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

设置 DYNAMODB_ALLOWED_TABLES 后:

  • list_tables 仅返回允许列表中的表
  • 对未获允许的表进行操作会返回“Access denied”错误
  • 如果请求中包含任何未获允许的表,批量操作将失败
  • 表名区分大小写(DynamoDB 表名区分大小写)
  • 使用 list_tables 分页时,limit 会在筛选前应用

注意: 如果未设置或设置为空字符串,则所有表均可访问(不进行筛选)。

适用于:

  • 多租户环境:每个客户端只能访问自己的表
  • 开发环境:保护生产表
  • 将 AI Agent 的影响范围限制在特定表

Claude Desktop 配置

将以下内容添加到 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"
      }
    }
  }
}
使用本地 DynamoDB

使用本地 DynamoDB 或 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"
      }
    }
  }
}

示例

查询项目
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 a Users table with:
- Partition key: userId (String)
- Billing: Pay per request
批量操作
Get user profiles for IDs: user1, user2, user3 from the Users table

开发

设置
cd experimental/dynamodb
npm run install-all
npm run build
测试
# Unit tests
npm run test:run

# Integration tests
npm run test:integration

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

资源

资源描述
dynamodb://config服务配置和工具组映射

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。