首页/数据库/dynamo-readonly-mcp

dynamo-readonly-mcp

查看源码
2025-5-12
字数 1384阅读时长 4 分钟
Score:85

基于MCP协议的AWS DynamoDB只读查询服务器,支持通过自然语言查询数据库信息。

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 安装

要通过 Smithery 自动为 Claude Desktop 安装 DynamoDB 只读服务器:

手动安装

  1. 克隆仓库:
    1. 安装所需依赖:
      1. 创建 .env 文件并配置 AWS 凭证:

        构建与运行

        连接到 Claude Desktop

        要将此 MCP 服务器与 Claude Desktop 一起使用,您需要修改 Claude Desktop 的配置文件。
        1. 打开 Claude Desktop 配置文件:
            • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
            • Windows: %APPDATA%\Claude\claude_desktop_config.json
        1. 添加服务器配置如下:
          1. 重启 Claude Desktop。

          使用 NPX 运行

          您也可以使用 npx 无需全局安装即可运行此服务器:

          使用示例

          您可以向 Claude 提出以下问题:
          1. "你能告诉我 DynamoDB 中有哪些表吗?"
          1. "解释一下 Users 表的结构"
          1. "查找 'Users' 表中 groupId 为 '0lxp4paxk7' 的用户数量"

          架构

          该 MCP 服务器由以下分层结构组成:
          1. 客户端接口(Claude Desktop) - 用户与 LLM 之间的交互
          1. MCP 协议层 - 提供标准化的消息交换方法
          1. DynamoDB 服务器 - 实现与 DynamoDB 交互的功能
          1. AWS SDK - 与 AWS DynamoDB 服务通信

          关键操作机制

          1. 初始化与连接

          当服务器启动时,会发生以下过程:
          • StdioServerTransport 通过标准输入/输出建立通信通道。
          • server.connect(transport) 通过 MCP 协议连接到 Claude Desktop。
          • 在连接过程中,服务器向客户端发送支持的工具、资源和提示信息。

          2. 工具请求处理

          当用户向 Claude 提出类似“显示 DynamoDB 表的列表”的请求时:
          1. Claude 分析该请求并调用 list-tables 工具。
          1. 该请求通过 MCP 协议发送到服务器。
          1. 服务器执行相应的工具处理程序:
          1. 结果通过 MCP 协议返回给 Claude。
          1. Claude 将结果处理为自然语言并呈现给用户。

          3. 特定参数处理

          当用户请求“告诉我 Users 表的结构”时:
          1. Claude 确定该请求应使用 describe-table 工具。
          1. Claude 将参数配置为 { tableName: "Users" }
          1. 该信息被发送到 MCP 服务器:
          此处,z.string() 使用 Zod 库验证参数。

          4. 资源处理

          资源是 MCP 的另一项功能,提供只读数据:
          Claude 访问资源并将其用作上下文信息。

          5. 提示处理

          MCP 服务器可以为特定任务提供提示模板:
          当用户请求“展示如何为 Users 表编写查询”时,会使用此提示。

          数据流总结

          1. 用户以自然语言向 Claude 提出请求
          1. Claude 分析请求并选择合适的 MCP 工具/资源/提示
          1. MCP 客户端以标准化格式将请求发送到服务器
          1. 服务器处理请求并调用 AWS DynamoDB API
          1. DynamoDB 返回结果
          1. 服务器将结果转换为 MCP 格式并发送给客户端
          1. Claude 将结果处理为自然语言并呈现给用户

          许可证

          本项目采用 MIT 许可证 - 详见 LICENSE 文件。
          上一篇
          mcp-svelte-docs
          下一篇
          gikendaasowin-aabajichiganan-mcp