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