MCP 伺服器

Model Context Protocol(MCP)是一套開放 標準,讓 AI 代理能與外部工具和資料來源對話。DynoTable 可以扮演一個 MCP 伺服器 — 因此一個在你終端機或編輯器中執行的代理(Claude Code、Cursor、Codex 等)能直接 處理你的 DynamoDB 表格,而不必由你把結構描述和結果在聊天中來回複製貼上。

連接後,代理會取得內建助手所用的那套相同的受關卡工具集 — 讀取你的結構描述、執行查詢與單筆讀取、暫存變更供審查、開啟檢視,以及匯出 — 全都 透過一個本機、僅限回送(loopback)的 HTTP endpoint。代理會探索你的表格、查詢 它們並提議編輯,過程中從不持有你的 AWS 憑證。

預設關閉。將它開啟,以及每個個別連線,都明確由你掌控 — 見下方 安全

啟用伺服器

開啟設定 → MCP 伺服器並將它開啟。DynoTable 會啟動一個繫結至 127.0.0.1(僅限 回送 — 絕不會從另一台機器觸及)的伺服器,並顯示它的連接指令。

設定 → MCP 伺服器:伺服器正在一個本機回送埠上執行,附有已連接用戶端清單及其存取層級。
設定 → MCP 伺服器:伺服器正在一個本機回送埠上執行,附有已連接用戶端清單及其存取層級。

開放設定檔

伺服器已開啟,但在你開放一個設定檔之前,沒有任何代理能連接。在設定中開啟某個 設定檔的 MCP 區段,並開啟透過 MCP 開放。每個已開放的設定檔都會取得它自己的 連接指令 — 因此你可以為每個設定檔接一條連線(例如一個 dynotable-dev 與一個 dynotable-prod),各自硬隔離至該設定檔的憑證與區域。一條連線永遠只會看見它所 繫結之設定檔的資料。

AWS 支援的設定檔與本機(DynamoDB-Local)設定檔都可以開放。開放一個本機設定檔 能讓代理透過 MCP 操作你的本機種子表格 — 對開發很方便。(同一個埠上的兩個本機 設定檔共用同一個本機資料庫,因此它們看見的是相同的表格。)

某個設定檔的 MCP 區段,已開啟**透過 MCP 開放** — 各設定檔的連接區塊會顯示要加入你用戶端的 endpoint。
某個設定檔的 MCP 區段,已開啟**透過 MCP 開放** — 各設定檔的連接區塊會顯示要加入你用戶端的 endpoint。

連接一個用戶端

DynoTable 透過串流 HTTP(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= 提示預先選取,限於你已開放 的設定檔),並請你授予一個範圍 — 或拒絕。在你核准之前,不會開放任何東西。

應用程式內的同意提示:一個正在連接的用戶端請求存取,由你授予三個範圍之一或拒絕。
應用程式內的同意提示:一個正在連接的用戶端請求存取,由你授予三個範圍之一或拒絕。

範圍

範圍決定連線能看見並使用哪些工具。它們是累積的 — 每一層都包含它之前的層級:

  • 僅讀取 — 讀取你的結構描述、執行查詢並讀取 item。沒有變更。
  • 讀取與暫存 — 「僅讀取」的一切,再加上暫存變更供你檢視並提交(代理絕不會直接 寫入 DynamoDB — 它會路由經過暫存)。
  • 完整存取 — 上述一切,再加上開啟檢視、設定篩選與匯出結果。寫入仍會經過 暫存 — 即使在完整存取下,代理也無法直接寫入 DynamoDB。

連線會繫結你在提示中核准的設定檔 — 它的憑證與區域會在連線的存續期間被釘住, 因此它讀取(並暫存寫入)的正是該設定檔的資料。提示中的用戶端名稱是由連接代理 自行回報的,因此你所核准的設定檔與範圍才是真正的關卡,而非名稱。

若已核准的設定檔使用 MFA,代理會直接在它自己的工作階段中被要求輸入一次性代碼 — 無需切回 DynoTable。(透過 SSO 登入的設定檔仍須在 DynoTable 中完成該登入。)

管理連線

每個已核准的用戶端都列在設定 → MCP 伺服器中。你可隨時撤銷其中任何一個 — 被撤銷的用戶端會在它下一次請求時被切斷。取消開放一個設定檔也會立即撤銷它的連線。 將伺服器關閉則會徹底停止一切。

安全

  • 僅限回送。 伺服器繫結 127.0.0.1;你機器以外的任何東西都無法觸及它。
  • 預設關閉,逐連線核准。 在你既啟用伺服器以你選定的範圍核准其連線之前, 沒有任何代理能取得存取權。
  • 憑證留在本機。 連線使用你這台機器上既有的 AWS 設定檔 (連接 AWS);憑證絕不會送給代理。
  • 每條連線一個設定檔。 每條連線都釘在你所核准的單一設定檔上 — 它永遠無法觸及 另一個設定檔的表格或憑證。
  • 寫入經過審查。 即使在完整存取下,變更也會被暫存供你提交 — 代理無法自行寫入 DynamoDB。
  • 可撤銷。 隨時可撤銷一個用戶端或將伺服器關閉。

已更新