MCP 服务器

Model Context Protocol (MCP) 是一个开放标准,让 AI 智能体能够与外部工具和数据源对话。DynoTable 可以充当一个 MCP 服务器 —— 这样运行在你终端或编辑器中的智能体(Claude Code、Cursor、Codex 等)就能直接处理你的 DynamoDB 表,而无需你把 schema 和结果在聊天里来回复制粘贴。

连接之后,智能体获得内置助手使用的同一套受控工具集 —— 读取你的 schema、运行查询和单项读取、暂存改动供审阅、打开视图,以及导出 —— 都通过一个本地、仅环回的 HTTP endpoint 进行。智能体发现你的表、查询它们、提议编辑,而绝不持有你的 AWS 凭据。

默认关闭。开启它,以及每一个单独的连接,都明确处于你的掌控之下 —— 参阅下面的安全

启用服务器

打开设置 → MCP Server 并开启它。DynoTable 会启动一个绑定到 127.0.0.1(仅环回 —— 永远无法从另一台机器访问)的服务器,并显示用于连接的命令。

设置 → MCP Server:服务器运行在一个本地环回端口上,附有已连接客户端列表及其访问级别。
设置 → MCP Server:服务器运行在一个本地环回端口上,附有已连接客户端列表及其访问级别。

暴露配置文件

服务器开着了,但在你暴露一个配置文件之前,还没有任何智能体能连接。在设置中打开某个配置文件的 MCP 区域,开启 Expose via MCP。每个被暴露的配置文件都获得自己的连接命令 —— 这样你就能按每个配置文件一个连接来接线(例如一个 dynotable-dev 和一个 dynotable-prod),各自被硬隔离到该配置文件的凭据和区域。一个连接永远只看得到它所绑定的那个配置文件的数据。

基于 AWS 的和本地(DynamoDB-Local)的配置文件都可以被暴露。暴露一个本地配置文件,能让智能体通过 MCP 驱动你的本地预置表 —— 在开发时很方便。(同一端口上的两个本地配置文件共享同一个本地数据库,所以它们看到相同的表。)

某个配置文件的 MCP 区域,已开启 **Expose via MCP** —— 按配置文件的连接块显示了要添加到你客户端的 endpoint。
某个配置文件的 MCP 区域,已开启 **Expose via MCP** —— 按配置文件的连接块显示了要添加到你客户端的 endpoint。

连接一个客户端

DynoTable 通过 streamable HTTP 讲 MCP,所以任何具备 MCP 能力的智能体都能连接。每个被暴露的配置文件都在它的 MCP 区域里显示自己的连接命令 —— 从那里复制即可。命令指向 http://127.0.0.1:<port>/mcp?profile=<slug>?profile=<slug> 告诉 DynoTable 你想要哪个配置文件,并在批准提示中预先选中它(这只是一个提示 —— 你仍然要确认)。在服务器名称中带上配置文件的 slug(例如 dynotable-prod),能让两个配置文件的连接保持彼此独立。

下面的示例用 prod 作为 slug;请替换成你配置文件的 slug 以及设置中的真实端口。

在你的项目里运行这条 —— 就是该配置文件 MCP 区域中显示的确切命令:

claude mcp add --transport http dynotable-prod "http://127.0.0.1:<port>/mcp?profile=prod"

要连接第二个配置文件,用那个配置文件的命令(它自己的 slug)重复一遍。连接之后,重启或重新加载客户端,让它识别到新的服务器。

批准连接

某个客户端首次连接时,DynoTable 会在应用内显示一个同意提示。它会指出正在连接的客户端,让你选择该连接绑定哪个配置文件(根据 ?profile= 提示预先选中,限于你已暴露的配置文件),并请你授予一个作用域 —— 或拒绝。在你批准之前,不会暴露任何东西。

应用内同意提示:一个正在连接的客户端请求访问,你授予三个作用域之一或予以拒绝。
应用内同意提示:一个正在连接的客户端请求访问,你授予三个作用域之一或予以拒绝。

作用域

一个作用域决定该连接能看到并使用哪些工具。它们是累加的 —— 每一档都包含其前面的各档:

  • 仅读取 —— 读取你的 schema、运行查询、读取 item。不做改动。
  • 读取并暂存 —— 仅读取的一切,外加暂存改动供你审阅并提交(智能体绝不直接写入 DynamoDB —— 它经由暂存)。
  • 完全访问 —— 以上一切,外加打开视图、设置筛选和导出结果。写入仍然经过暂存 —— 即便在完全访问下,智能体也无法直接写入 DynamoDB。

该连接绑定你在提示中批准的那个配置文件 —— 它的凭据和区域在连接的整个生命周期内被固定,所以它读取(并暂存写入到)的正是该配置文件的数据。提示中的客户端名称由正在连接的智能体自行上报,所以你批准的配置文件和作用域才是真正的关卡,而非名称。

如果被批准的配置文件使用 MFA,智能体会直接在它自己的会话里被要求输入一次性验证码 —— 无需切回 DynoTable。(通过 SSO 登录的配置文件仍然要在 DynoTable 里完成那次登录。)

管理连接

每一个已批准的客户端都列在**设置 → MCP Server 中。随时可以撤销其中任何一个 —— 被撤销的客户端会在它下一次请求时被切断。取消暴露一个配置文件会立即撤销它的连接。**关闭服务器则会将一切彻底停止。

安全

  • 仅环回。 服务器绑定 127.0.0.1;你机器之外的任何东西都无法触及它。
  • 默认关闭,按连接批准。 在你启用服务器并且以你选择的作用域批准其连接之前,没有任何智能体能获得访问权。
  • 凭据留在本地。 连接使用你这台机器上已有的 AWS 配置文件(连接到 AWS);凭据绝不会发送给智能体。
  • 每个连接一个配置文件。 每个连接都被固定到你批准的那个唯一配置文件 —— 它永远触及不到另一个配置文件的表或凭据。
  • 写入经过审阅。 即便在完全访问下,改动也会被暂存起来供你提交 —— 智能体无法擅自写入 DynamoDB。
  • 可撤销。 随时可撤销一个客户端或关闭服务器。

更新于