让你的智能体查询数据库,
在你松口之前一直是只读
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 实际运行一瞥。