讓你的代理查詢資料庫,
在你鬆口之前一直是唯讀
AgentsRoom 管理你的 MySQL、PostgreSQL 和 MongoDB 連線,並給你的 AI 程式設計代理一條對它們執行查詢的通道。預設唯讀,一次一條陳述式,密碼始終夠不著。
能讀到真實資料行的代理,不必再對你的資料靠猜。寫不了這些資料的代理,也不必再讓你逐行盯著防風險。
AgentsRoom 如何訪問私有子網裡的資料庫,並回應 AI 代理的唯讀查詢。
看不到你資料的 AI 程式設計代理,只能照著自己想象的表結構寫程式碼。它會憑空造一個欄位,以為某個列舉有三個值而其實有七個,還會用一套理論而不是一行真實資料來解釋 bug。給它一個資料庫連線就能解決這些,而這同樣是把一個得力代理變成一場事故的最快途徑。AgentsRoom 正是圍繞這組張力設計的。
你像在任何資料庫客戶端裡那樣,把連線儲存到應用裡:引擎、主機、埠、使用者、資料庫,伺服器需要時再加上 TLS。如果這個資料庫從公網訪問不到,連線會走 SSH 隧道或 AWS SSM 埠轉發會話,用的是你早已儲存在 AgentsRoom 裡的 SSH 和 SSM 連線。位於私有子網裡的資料庫就這樣變成了你能查詢的物件,而不必把它敞開給全世界。
每個連線一開始都是唯讀的。SELECT 能跑。會修改資料的陳述式跑不了,除非你先把那個連線改成可寫並確認這次操作。每次呼叫只接受一條陳述式,所以分號後面藏不下別的東西;結果集也設有上限,一條範圍過寬的查詢淹不了代理,也淹不了視窗。連線還可以標記為正式環境,這會讓確認沒那麼容易被誤點。
讀只是其中一半。在一台機器上儲存的連線會出現在你的其他機器上,所以一個資料庫只需配置一次,而不是每台電腦配一次。資料庫還能匯出成檔案、從檔案還原,或者走同樣的隧道直接複製到另一台伺服器上:這些正是你過去要離開這個應用才能做的事。
一個預設有代理在駕駛的資料庫客戶端
MySQL、PostgreSQL 和 MongoDB,私有網路裡也夠得著,護欄預設開啟。
MySQL、PostgreSQL 和 MongoDB 連線
每個資料庫存一份連線:主機、埠、使用者、要開啟的資料庫,以及伺服器要求時的 TLS。你的本地資料庫、預發布資料庫和正式環境唯讀副本都在同一個列表裡,選一下就好,不用重輸。
夠得著私有資料庫
私有子網裡的資料庫不是什麼特例。讓連線走 SSH 隧道或 AWS SSM 埠轉發會話,AgentsRoom 會替你開啟它,複用你早已儲存在應用裡的 SSH 和 SSM 連線。
預設唯讀
新建的連線只能讀,別的都不行。查詢會返回資料行,會改動資料的陳述式會被拒絕。沒人需要記著去開啟安全模式,因為每個連線本來就從安全模式開始。
寫入之前兩道鎖
寫入需要兩次刻意的動作,不是一次。連線必須先被改成可寫,操作本身還得明確確認一次。一次不小心的點選,不會順勢連出一條沒有 WHERE 子句的 UPDATE。
每次呼叫一條陳述式
每次呼叫只帶一條陳述式。分號後面堆著的任何東西都會被拒絕而不是執行,所以一條看起來像讀的查詢,沒法順手夾帶第二條陳述式。在這之上,結果集還設有上限。
正式環境會被標記
把一個連線標記為正式環境,確認就會變嚴。要緊的那個資料庫不再和本地副本長得一模一樣,無論是對忙了一天的你,還是對正在逐條推進任務清單的代理。
你的連線,在每台機器上
在辦公室機器上儲存的連線,筆記本上也在:名稱、主機、埠、使用者、預設資料庫,以及它所經過的隧道。唯一留在原地的是密碼,它加密儲存在你輸入它的那台機器上,所以每台機器只會問你一次。
匯出、匯入、複製
把一個資料庫匯出成 .sql 檔案,把這樣一個檔案回灌進某個資料庫,或者把一個資料庫直接複製到另一個上面。目標庫在被覆蓋之前會先備份,而徹底替換掉它是另一個需要單獨確認的決定。
代理查詢資料庫,卻從不掌握密碼
你的資料庫憑證由 AgentsRoom 保管,不會往外發。代理按名稱請求對某個連線執行一條查詢,應用開啟連線、執行陳述式、返回資料行。密碼從不屬於代理收到的內容,從不出現在它寫的查詢裡,也從不留在它儲存的對話中。
唯讀規則是這件事的另一半,而且對代理來說,這不是一個它能靠嘴皮子繞過去的預設值。無論那個連線允許什麼,代理用來查詢的那個工具只接受讀,別的一律拒絕。把連線改成可寫,解鎖的是你在主控台裡的寫入:每一次都要一次明確確認,而當連線被標記為正式環境時,這次確認會被刻意做得更難給出。一個代理跑出一條糟糕查詢,最壞的結果仍然是一個錯誤答案,而不是一張丟掉的表。
單陳述式規則堵住了那個經典的口子。一次只帶一條陳述式的呼叫,沒法用一個分號再接上第二條,所以一條在評審裡讀起來人畜無害的查詢,執行時也做不出別的事。再加上有上限的結果集,一次失誤就還是一次失誤,不會變成一次資料匯出。
三個引擎,缺的那些我們也點名
MySQL 和 MariaDB、PostgreSQL,以及 MongoDB。每一個都用自己的驅動,而不是套一層轉換,因為它們是真的不一樣:PostgreSQL 的會話只綁定一個資料庫,MongoDB 接受的是查詢而不是 SQL,而每一次匯出都交給對應引擎自帶的工具。這三者都能直連伺服器;當伺服器不對公網暴露時,也能走 SSH 隧道或 AWS SSM 埠轉發會話。
SQL Server、Oracle、SQLite、Redis 以及其他引擎都不支援。這件事你應該在下載之前就知道,而不是下載之後。下一個支援哪個引擎由大家提的需求決定,所以如果少了你要的那個,在公開待辦清單上說一聲,它就會被計進去。
申請你要的資料庫引擎不只是讀資料庫,還能搬動它
把資料庫匯出成一個檔案。把檔案匯入某個資料庫。或者把一個資料庫直接複製到另一個上面,走你早已儲存的 SSH 隧道或 AWS SSM 會話也一樣。每個引擎都用自己的官方工具,以流式寫入磁碟,所以幾個 GB 的資料庫對應的是一根進度條,而不是一次崩潰。
這些工具隨資料庫提供,不隨 AgentsRoom 提供:mysqldump 和 mysql、pg_dump 和 psql、mongodump 和 mongorestore。它們不在這台機器上時,應用會明確說出缺的是哪幾個,並讓你指出存放它們的資料夾,一個資料庫客戶端本該如此:從 Dock 或開始選單啟動的應用只看得到一個最小的 PATH,否則就會在明明裝了工具的機器上一口咬定它們不存在。
點錯一下就要賠上一天的地方是複製,所以它是圍著這一點設計的,而不是圍著一切順利的情形。
- 唯讀連線會當場拒絕匯入,在任何東西被開啟之前。
- 在第一條陳述式被執行之前,目標庫會先匯出到你指定的檔案裡。
- 確認框會寫出連線和資料庫的名字,連線被標記為正式環境時說得更重。
- 刪掉目標庫再重建是一個單獨的選項,在正式環境的連線上,你還得親手把資料庫名字打出來。
從一個私有資料庫到一個答案
儲存連線,配好路由,然後自己查,或者讓代理去查。
儲存連線
把資料庫加進來:主機、埠、使用者、資料庫名,伺服器需要時加上 TLS。起一個你日後認得出的名字,如果它就是正式環境,就把它標記出來。
如果是私有的,就配好路由
如果資料庫無法直連,就讓連線指向一條 SSH 隧道,或一個用你已儲存在 AgentsRoom 裡的連線搭起來的 AWS SSM 埠轉發會話。私有子網裡的資料庫就此變得可達,而不必把它對外暴露。
自己查,或者讓代理去查
在應用裡執行你的陳述式,或者讓代理經由 MCP 執行一條。在你改動之前一直是唯讀,每次呼叫一條陳述式,結果集有上限,任何寫入和你的資料之間都還隔著一次明確確認。
當代理需要真實資料行時
讀一眼生產資料反而是離修復最近的那些時刻。
對著真實資料除錯
這個 bug 只在少數幾個帳戶上出現。讓代理去讀那幾行資料,它就能找出讓邏輯崩掉的那個值,而不是丟擲三種關於資料可能長什麼樣的猜想。
一個不對外的資料庫
資料庫待在私有子網裡,沒有公網入口。讓連線走一條 SSH 隧道,或一個基於你已儲存連線搭起來的 AWS SSM 會話,不用對網際網路開埠就能查詢它。
讓代理去核實,而不是猜
在寫遷移或寫查詢之前,代理可以先看看實際存的是什麼。它讀,它彙報,而在此期間它始終沒有改動任何東西的能力。
碰正式環境,但沒有寫入風險
讀正式環境常常是必要的,任務進行到一半時寫正式環境幾乎從來不是。把連線標記為正式環境,讓它保持唯讀,排查和搞砸之間的分界就不再取決於誰有沒有走神。
用真實資料重新整理預發布環境
這個 bug 只在真實資料行上覆現。走你早已儲存的隧道,把資料庫複製到預發布伺服器上,原來那份會先被匯出備份。
開啟筆記本,一切都在
你的連線跟著帳戶走:同樣的主機、同樣的隧道、同樣的唯讀和正式環境標記。每台機器只會問一次密碼,因為那正是永遠不離開錄入它那台機器的部分。
我的代理怎麼查詢資料庫?
經由 AgentsRoom MCP,一共四個工具。db_list 返回你儲存的連線及其後設資料,db_schema 不用寫一行 SQL 就能逐層遍歷 schema、表和列,db_query 執行一條陳述式並返回資料行,db_connection_new 提議一個你還沒儲存的資料庫。AgentsRoom 負責開啟連線,包括擋在前面的 SSH 隧道或 AWS SSM 會話(如果有的話)。回到代理那裡的是一個結果集,絕不會是憑證。
無論連線允許什麼,db_query 都是唯讀的。把連線改成可寫,解鎖的是你在主控台裡的寫入:每一次都要明確確認,被標記為正式環境的連線還會把這件事說在明處。它不會為代理解鎖:db_query 的唯讀規則長在桌面應用裡,不在 MCP 程序裡,所以哪怕代理被勸著去要別的東西,這條規則依然成立。跑一條 DROP 並不需要密碼,護欄因此長在陳述式上,而不只是長在憑證上。
登記一個資料庫同樣受這條限制。db_connection_new 開啟建立表單,用主機、使用者,以及它該經由哪個 SSH 或 AWS SSM 連線抵達預先填好,由你稽核、輸入密碼並儲存。在你動手之前什麼都不會被存下來。代理拿到了推理你資料所需的一切,而這種訪問通常演變成事故的那些路徑,它一條都用不上。
瞭解 AgentsRoom MCP常見問題
支援哪些資料庫?
MySQL 和 MariaDB、PostgreSQL,以及 MongoDB。每一個都有自己的驅動,也都能直連,或者走 SSH 隧道、AWS SSM 埠轉發會話。SQL Server、Oracle、SQLite 以及其餘引擎目前都不支援。如果你需要其中某一個,到公開待辦清單上提出來:這份名單是跟著大家真實的需求增長的。
AI 代理能往我的資料庫裡寫嗎?
不能。代理用來查詢的那個 MCP 工具 db_query,無論連線允許什麼都是唯讀的:SELECT、SHOW 和 EXPLAIN 能過,MongoDB 的 find 和 aggregate 也能過,任何會改動資料的陳述式都會被拒絕。把連線改成可寫,解鎖的是你在主控台裡的寫入,每一次都要明確確認,而不是為代理解鎖。護欄長在陳述式上,而不是長在密碼上,因為跑一條 DROP 並不需要密碼。
我怎麼訪問私有子網裡的資料庫?
讓連線走 SSH 隧道或 AWS SSM 埠轉發會話,用你早已儲存在 AgentsRoom 裡的 SSH 和 SSM 連線搭起來。應用會開啟隧道或會話並讓資料庫連線從中穿過,所以資料庫對公網始終不可達。
我的代理會看到資料庫密碼嗎?
不會。代理經由 MCP 指名一個連線來查詢。憑證由 AgentsRoom 保管,陳述式也由它自己執行,所以密碼從不返回給代理,從不寫進查詢,也從不成為對話的一部分。
代理能一次執行多條陳述式嗎?
不能。一次呼叫只帶一條陳述式。分號後面堆著的任何東西都會被拒絕而不是執行,這就去掉了最古老的那種手法:把寫操作藏在一個看起來像讀的東西里。
把連線標記為正式環境會帶來什麼變化?
寫入前所需的確認會變嚴。要緊的那個資料庫不再表現得像本地副本,這正是你忙了一天時想要的,而面對一個正在逐條推進任務清單的代理,你只會更想要。
如果一條查詢返回很多行會怎樣?
結果集設有上限。一條本會返回巨大表格的查詢會被截斷返回,而不是淹掉視窗或代理的上下文,所以一條範圍過寬的 SELECT 只是有點礙事,不會變成一次資料匯出。
代理能新增一個資料庫連線嗎?
它能提議,永遠不能儲存。db_connection_new 開啟建立表單,用主機、埠、使用者,以及這個資料庫該經由哪個 SSH 或 AWS SSM 連線抵達預先填好,由你稽核、輸入密碼並儲存。在你動手之前什麼都不會被存下來,憑證也從來不由代理提供。
代理怎麼了解我的資料庫結構?
靠 db_schema,它不用任何 SQL 就能瀏覽一個已儲存的連線。不帶引數呼叫時列出所有 schema,給它一個資料庫時列出表和檢視,給它一張表時返回各個列,以及它們的型別、是否可為空、鍵和預設值。這比讓代理手寫查詢去問 information_schema 更省也更安全。
我的資料庫連線會在多台機器之間同步嗎?
連線會,密碼不會。名稱、主機、埠、使用者、預設資料庫、作用域、唯讀和正式環境標記,以及它所經過的 SSH 或 SSM 隧道,都跟著你的帳戶走,所以在一台機器上儲存的連線會出現在其他機器上,不用重輸。密碼則加密留在你輸入它的那台機器的鑰匙串裡,從不傳送給我們,這也是為什麼從另一台機器同步過來的連線會被標註為還在等它的密碼,之後才能開啟。
我可以把一個資料庫匯出來,再匯入到別處嗎?
可以。你能把一個資料庫匯出成檔案,把這樣的檔案匯入某個資料庫,或者把一個資料庫直接複製到另一個上面,走你早已儲存的 SSH 或 SSM 隧道也一樣。每個引擎都用自己的官方工具(mysqldump 和 mysql、pg_dump 和 psql、mongodump 和 mongorestore),它們隨資料庫提供,而不是隨 AgentsRoom 提供:如果找不到,應用會請你指出它們所在的資料夾。複製只在同一個引擎的兩個連線之間進行,因為一份匯出檔案只能還原回生成它的那種引擎。唯讀連線上的匯入會被拒絕;在寫入任何東西之前,目標庫會先被匯出到你指定的檔案;至於替換目標庫,那是一個單獨的選項,它的確認裡會寫出這個資料庫的名字。
你可能還喜歡
經由 AWS SSM 訪問 RDS
從你自己的機器出發,經由 aws ssm start-session 和 AWS-StartPortForwardingSessionToRemoteHost 文件,訪問一個沒有公網端點的 Amazon RDS 執行個體。沒有堡壘機要維護,不用 VPN,也不用開放入站 SSH 規則。AgentsRoom 在一個迴環埠上開啟會話,並讓資料庫客戶端從中穿過。支援 MySQL、PostgreSQL 和 MongoDB,也就是 RDS MySQL、RDS PostgreSQL、Aurora 以及 DocumentDB。
SSH 連線
儲存你的 SSH 連線,透過 SSH 開啟內建終端,直接在遠端伺服器或 VPS 上執行 Claude Code、Codex 或 Antigravity CLI。支援 SSH 金鑰或密碼認證,按專案管理連線配置,無需額外的 SSH 客戶端。
金鑰管理器
把 API 金鑰、令牌和密碼存進作業系統鑰匙串,在開發命令和代理環境裡用 {{secret:NAME}} 引用,交給 AgentsRoom 在啟動時解析。代理只看得到名稱,看不到值,任何內容都不會同步到伺服器。
開發終端
按專案管理的終端管理器和程序啟動器。一鍵啟動後端、前端和工作程序,本地或遠端伺服器上都行。
AgentsRoom MCP
讓你的代理駕駛 AgentsRoom 本身的 MCP 伺服器:專案、終端、任務待辦和連線,附帶隨之而來的護欄。
把資料給代理,把金鑰留給自己
下載 AgentsRoom,儲存你的 MySQL、PostgreSQL 和 MongoDB 連線,透過 SSH 隧道或 AWS SSM 會話訪問它們,讓你的代理以唯讀方式查詢。
配套應用:隨時隨地監控你的 Agent
使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。
把 Bug 和需求直接傳送到您的公開待辦清單。