一键导入
agent-database-cli
使用本地 agent-database-cli 安全操作已配置的数据库。适用于列出数据库连接、测试连接、执行 SQL/Redis/MongoDB 命令、查询表/列/集合/keys 元信息、管理本地连接 daemon,以及验证只读模式和命令黑名单的场景。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
使用本地 agent-database-cli 安全操作已配置的数据库。适用于列出数据库连接、测试连接、执行 SQL/Redis/MongoDB 命令、查询表/列/集合/keys 元信息、管理本地连接 daemon,以及验证只读模式和命令黑名单的场景。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | agent-database-cli |
| description | 使用本地 agent-database-cli 安全操作已配置的数据库。适用于列出数据库连接、测试连接、执行 SQL/Redis/MongoDB 命令、查询表/列/集合/keys 元信息、管理本地连接 daemon,以及验证只读模式和命令黑名单的场景。 |
agent-database-cli 是一个基于本地配置的多数据库命令行工具,用于让 AI 或用户安全地操作数据库。
它能做的事:
300 秒后自动退出180 秒释放oracleDriver: "oracle" 或 "oracledb" 时使用原生 Oracle 驱动它不做的事:
执行任何可能写入、删除、修改结构或影响数据完整性的命令前,必须先确认目标数据库配置是否启用了 readonly 和 blacklist。
危险操作包括:
drop、truncate、alter、createinsert、update、delete、mergeflushall、flushdb、set、delinsertOne、updateOne、deleteMany、drop、dropDatabase如果用户明确要求执行危险命令,先说明目标数据库名、命令、可能影响,并等待用户明确同意。即使用户同意,也不能绕过本项目配置中的黑名单和只读模式。
黑名单优先级高于只读模式。命令执行前先检查 blacklist,命中后直接拒绝;未命中时再检查 readonly。
读取配置文件json前需要用户确认,防止密钥泄露。
调用前优先检查 CLI 是否可用:
agent-database-cli --help
如果上面的命令失败,检查基础环境:
node --version
npm --version
如果依赖或构建产物缺失,在项目目录中执行:
npm install
npm run build
默认配置文件:
~/.agent-database-cli/config.json
指定其它配置文件:
AGENT_DATABASE_CLI_CONFIG=/path/to/config.json agent-database-cli list
配置文件是 JSON 对象,根字段为 databases:
{
"databases": {
"local-mysql": {
"type": "mysql",
"url": "mysql://user:password@localhost:3306/app",
"readonly": true,
"blacklist": ["drop", "truncate", "delete"],
"keepAliveSeconds": 180
}
}
}
字段:
type: mysql、postgres、redis、oracle、mongodburl: 数据库连接 URLpasswordRef: 数据库 URL 密码的本地密文引用,首次使用明文 URL 密码时自动生成database: MongoDB 默认数据库名,可选readonly: 是否启用只读模式blacklist: 命令黑名单数组,大小写不敏感keepAliveSeconds: daemon 连接空闲释放秒数,默认 180oracleDriver: Oracle 驱动,可选 oracledb 或 sqlclsqlclPath: SQLcl 可执行文件路径javaHome: SQLcl 使用的 JAVA_HOMEsshTunnel.passwordRef: SSH 密码的本地密文引用,首次使用明文 sshTunnel.password 时自动生成sshTunnel.passphraseRef: SSH 私钥口令的本地密文引用,首次使用明文 sshTunnel.passphrase 时自动生成首次使用连接时,CLI 会把数据库 URL 明文密码、sshTunnel.password、sshTunnel.passphrase 加密保存到配置目录的 secrets.json,生成本地 secret.key,并把配置文件改写为对应 *Ref。后续只在内存中解密使用;改密码时重新填入明文字段即可覆盖旧密文。
--format <format>: 输出格式,支持 json 或 table,默认 json--help, -h: 输出帮助--version, -V: 输出版本配置路径通过环境变量传递:
AGENT_DATABASE_CLI_CONFIG=/path/to/config.json
列出支持的数据库类型、已配置连接和配置文件路径。
agent-database-cli list
agent-database-cli --format table list
返回值:
supported、configured、configPathconfigured 为空0测试指定数据库连接。
agent-database-cli test --db "<databaseName>"
返回值:
{ "ok": true }1统一执行 SQL、Redis 命令或 MongoDB JSON 命令。
agent-database-cli exec --db "<databaseName>" --command "<command>"
示例:
agent-database-cli exec --db local-mysql --command "select 1"
agent-database-cli exec --db cache --command "GET user:1"
agent-database-cli exec --db local-mongodb --command '{"find":{"collection":"users","filter":{},"limit":1}}'
返回值:
rows、fields、rowCount1rows、fields、rowCount;仅在无法解析为 JSON 时才以 output 字段返回原始文本查询数据库元信息。
agent-database-cli meta --db "<databaseName>" --type tables
agent-database-cli meta --db "<databaseName>" --type columns --table users
agent-database-cli meta --db "<databaseName>" --type collections
agent-database-cli meta --db "<databaseName>" --type keys --pattern "user:*"
参数:
--db <name>: 数据库配置名--type <type>: tables、columns、collections、keys--table <table>: columns 查询所需表名--pattern <pattern>: Redis keys 匹配模式返回值:
管理本地连接守护进程。普通 test、exec、meta、reset 命令会在 daemon 未运行时自动启动 daemon,已运行时直接复用,不会重复启动。daemon 使用 Unix socket,不暴露网络端口,默认空闲 300 秒后自动退出。
agent-database-cli daemon start
agent-database-cli daemon status
agent-database-cli daemon stop
返回值:
start 成功时输出 socket 路径status 成功时输出当前连接列表stop 成功时输出停止结果重置指定数据库连接。
agent-database-cli reset --db "<databaseName>"
如果 daemon 正在运行,会断开并清理该数据库连接;下一次命令会重新连接。
当 Oracle oracledb Thin mode 不支持目标库版本时,可以改用 SQLcl。
{
"type": "oracle",
"url": "oracle://USER:password@192.0.2.20:1521/qftest201",
"oracleDriver": "sqlcl",
"sqlclPath": "/opt/homebrew/Caskroom/sqlcl/26.1.0.086.1709/sqlcl/bin/sql",
"javaHome": "/Applications/IntelliJ IDEA Ultimate.app/Contents/jbr/Contents/Home",
"readonly": true,
"blacklist": ["drop", "truncate", "delete", "update", "insert", "merge", "alter", "create"]
}
SQLcl 模式通过 stdin 传入连接脚本,避免密码出现在命令行参数列表中。执行前仍会先走本地黑名单和只读检查;输出会按内部标记截取 SQLcl 查询结果并解析为统一结果结构。
databases 缺失或数据库配置名不存在时失败type、未知 oracleDriver 或非法 keepAliveSeconds 会失败exec 缺少 --db 或 --command 会失败meta columns 缺少 --table 会失败黑名单拒绝执行命令只读模式拒绝执行命令1