DBeaver MCP Server
OmniSQL MCP
通用数据库 MCP 服务器 — 让 AI 助手能够使用您本地数据库客户端工作区(兼容 DBeaver)中已保存的连接,对您的数据库进行读/写访问。
数据库支持
原生支持(直接驱动,速度快):
PostgreSQL (通过
pg)MySQL / MariaDB (通过
mysql2)SQL Server / MSSQL (通过
mssql)SQLite (通过
sqlite3CLI)
Postgres 兼容(自动通过 pg 驱动路由):
CockroachDB, TimescaleDB, Amazon Redshift, YugabyteDB, AlloyDB, Supabase, Neon, Citus
其他数据库:回退到通过 OMNISQL_CLI_PATH 配置的外部 CLI。结果取决于具体的 CLI。
Related MCP server: MySQL MCP Server
功能特性
重用您本地数据库客户端工作区中已配置的连接 — 无需重复设置
支持 PostgreSQL, MySQL/MariaDB, SQLite, SQL Server 的原生查询执行
具有可配置连接池大小和超时的连接池管理
支持事务 (BEGIN/COMMIT/ROLLBACK)
查询执行计划分析 (EXPLAIN)
连接间的模式(Schema)比较及迁移脚本生成
只读模式,在
execute_query中强制执行仅 SELECT 操作连接白名单,限制可访问的数据库
工具过滤,可禁用特定操作
查询验证,阻止危险操作(DROP DATABASE, TRUNCATE, 无 WHERE 条件的 DELETE/UPDATE)
数据导出为 CSV/JSON
优雅关闭,清理连接池
要求
Node.js 18+
本地数据库客户端(兼容 DBeaver),且至少配置有一个连接
安装
npm install -g omnisql-mcp配置
Claude Desktop
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}Claude Code
添加到 ~/.claude/settings.json:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}Cursor
添加到 Cursor 设置 > MCP Servers:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}环境变量
变量 | 描述 | 默认值 |
| 外部数据库客户端 CLI 的路径(用于不支持驱动的回退) | 未设置 |
| 本地数据库客户端工作区目录路径 | 操作系统默认 |
| 查询超时时间 (ms) |
|
| 启用调试日志 |
|
| 禁用所有写操作 |
|
| 连接 ID 或名称的逗号分隔白名单 | 全部 |
| 要禁用的工具的逗号分隔列表 | 无 |
| 每个连接池的最小连接数 |
|
| 每个连接池的最大连接数 |
|
| 空闲连接超时时间 (ms) |
|
| 获取连接超时时间 (ms) |
|
只读模式
阻止所有写操作。execute_query 工具仅允许 SELECT, EXPLAIN, SHOW 和 DESCRIBE 语句。事务工具将被完全禁用。
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_READ_ONLY": "true"
}
}
}
}连接白名单
限制哪些工作区连接可见。接受以逗号分隔的连接 ID 或显示名称:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_ALLOWED_CONNECTIONS": "dev-postgres,staging-mysql"
}
}
}
}禁用特定工具
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_DISABLED_TOOLS": "drop_table,alter_table,write_query"
}
}
}
}可用工具
连接管理
list_connections- 列出所有数据库连接get_connection_info- 获取连接详情test_connection- 测试连接性
数据操作
execute_query- 运行只读查询(仅限 SELECT, EXPLAIN, SHOW, DESCRIBE)write_query- 运行 INSERT/UPDATE/DELETEexport_data- 导出为 CSV/JSON
模式管理
list_tables- 列出表和视图get_table_schema- 获取表结构create_table- 创建表alter_table- 修改表drop_table- 删除表(需要确认)
事务
begin_transaction- 开始新事务execute_in_transaction- 在事务内执行查询commit_transaction- 提交事务rollback_transaction- 回滚事务
查询分析
explain_query- 分析查询执行计划compare_schemas- 比较两个连接之间的模式get_pool_stats- 获取连接池统计信息
其他
get_database_stats- 数据库统计信息append_insight- 存储分析笔记list_insights- 检索存储的笔记
安全性
只读强制执行:
execute_query仅接受只读语句(SELECT, EXPLAIN, SHOW, DESCRIBE, PRAGMA)。写操作必须使用write_query。查询验证:阻止 DROP DATABASE, DROP SCHEMA, TRUNCATE, 无 WHERE 条件的 DELETE/UPDATE, GRANT, REVOKE 以及用户管理语句。
连接白名单:通过
OMNISQL_ALLOWED_CONNECTIONS限制暴露的连接。工具过滤:通过
OMNISQL_DISABLED_TOOLS禁用任何工具。输入清理:连接 ID 和 SQL 标识符经过清理以防止注入。
建议:在生产环境中使用时,请同时使用数据库级别的只读用户以实现纵深防御。
工作区格式支持
支持 DBeaver 兼容数据库客户端编写的两种配置格式:
旧版:
.metadata/.plugins/org.jkiss.dbeaver.core/中的 XML 配置新版:
General/.dbeaver/中的 JSON 配置
凭据会自动从工作区的 credentials-config.json 中解密。
开发
git clone https://github.com/srthkdev/omnisql-mcp.git
cd omnisql-mcp
npm install
npm run build
npm test
npm run lint许可证
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/srthkdev/omnisql-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server