DynamoDB 只读 MCP 服务器
这是一个基于模型上下文协议(Model Context Protocol, MCP)的服务器,用于查询 AWS DynamoDB 数据库。该服务器允许像 Claude 这样的语言模型通过自然语言请求查询 DynamoDB 数据。
功能特性
该 MCP 服务器提供以下功能:
- 表管理工具:
list-tables
:查看所有 DynamoDB 表的列表describe-table
:查看特定表的详细信息
- 数据查询工具:
scan-table
:扫描表的所有或部分数据query-table
:在表中搜索符合特定条件的数据paginate-query-table
:跨多页检索符合特定条件的数据get-item
:检索具有特定键的项目count-items
:计算表中的项目数量
- 资源:
dynamodb-tables-info
:提供所有表的元数据资源dynamodb-table-schema
:提供特定表的模式信息资源
- 提示:
dynamodb-query-help
:用于编写 DynamoDB 查询的帮助提示
安装与运行
您可以使用以下
Run with NPX
方法无需安装即可运行。通过 Smithery 安装
手动安装
- 克隆仓库:
- 安装所需依赖:
- 创建
.env
文件并配置 AWS 凭证:
构建与运行
连接到 Claude Desktop
要将此 MCP 服务器与 Claude Desktop 一起使用,您需要修改 Claude Desktop 的配置文件。
- 打开 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- 添加服务器配置如下:
- 重启 Claude Desktop。
使用 NPX 运行
您也可以使用
npx
无需全局安装即可运行此服务器:使用示例
您可以向 Claude 提出以下问题:
- "你能告诉我 DynamoDB 中有哪些表吗?"
- "解释一下 Users 表的结构"
- "查找 'Users' 表中 groupId 为 '0lxp4paxk7' 的用户数量"
架构
该 MCP 服务器由以下分层结构组成:
- 客户端接口(Claude Desktop) - 用户与 LLM 之间的交互
- MCP 协议层 - 提供标准化的消息交换方法
- DynamoDB 服务器 - 实现与 DynamoDB 交互的功能
- AWS SDK - 与 AWS DynamoDB 服务通信
关键操作机制
1. 初始化与连接
当服务器启动时,会发生以下过程:
StdioServerTransport
通过标准输入/输出建立通信通道。
server.connect(transport)
通过 MCP 协议连接到 Claude Desktop。
- 在连接过程中,服务器向客户端发送支持的工具、资源和提示信息。
2. 工具请求处理
当用户向 Claude 提出类似“显示 DynamoDB 表的列表”的请求时:
- Claude 分析该请求并调用
list-tables
工具。
- 该请求通过 MCP 协议发送到服务器。
- 服务器执行相应的工具处理程序:
- 结果通过 MCP 协议返回给 Claude。
- Claude 将结果处理为自然语言并呈现给用户。
3. 特定参数处理
当用户请求“告诉我 Users 表的结构”时:
- Claude 确定该请求应使用
describe-table
工具。
- Claude 将参数配置为
{ tableName: "Users" }
。
- 该信息被发送到 MCP 服务器:
此处,
z.string()
使用 Zod 库验证参数。4. 资源处理
资源是 MCP 的另一项功能,提供只读数据:
Claude 访问资源并将其用作上下文信息。
5. 提示处理
MCP 服务器可以为特定任务提供提示模板:
当用户请求“展示如何为 Users 表编写查询”时,会使用此提示。
数据流总结
- 用户以自然语言向 Claude 提出请求
- Claude 分析请求并选择合适的 MCP 工具/资源/提示
- MCP 客户端以标准化格式将请求发送到服务器
- 服务器处理请求并调用 AWS DynamoDB API
- DynamoDB 返回结果
- 服务器将结果转换为 MCP 格式并发送给客户端
- Claude 将结果处理为自然语言并呈现给用户
许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
- Author:waytomcp
- URL:https://www.waytomcp.com/article/jjikky/dynamo-readonly-mcp
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!