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。
  • 可撤销。 随时可撤销一个客户端或关闭服务器。

更新于