Skip to main content
Glama
srthkdev

DBeaver MCP Server

by srthkdev

OmniSQL MCP

通用数据库 MCP 服务器 — 让 AI 助手能够使用您本地数据库客户端工作区(兼容 DBeaver)中已保存的连接,对您的数据库进行读/写访问。

npm version License: MIT Node.js

数据库支持

原生支持(直接驱动,速度快):

  • PostgreSQL (通过 pg)

  • MySQL / MariaDB (通过 mysql2)

  • SQL Server / MSSQL (通过 mssql)

  • SQLite (通过 sqlite3 CLI)

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"
    }
  }
}

环境变量

变量

描述

默认值

OMNISQL_CLI_PATH

外部数据库客户端 CLI 的路径(用于不支持驱动的回退)

未设置

OMNISQL_WORKSPACE

本地数据库客户端工作区目录路径

操作系统默认

OMNISQL_TIMEOUT

查询超时时间 (ms)

30000

OMNISQL_DEBUG

启用调试日志

false

OMNISQL_READ_ONLY

禁用所有写操作

false

OMNISQL_ALLOWED_CONNECTIONS

连接 ID 或名称的逗号分隔白名单

全部

OMNISQL_DISABLED_TOOLS

要禁用的工具的逗号分隔列表

OMNISQL_POOL_MIN

每个连接池的最小连接数

2

OMNISQL_POOL_MAX

每个连接池的最大连接数

10

OMNISQL_POOL_IDLE_TIMEOUT

空闲连接超时时间 (ms)

30000

OMNISQL_POOL_ACQUIRE_TIMEOUT

获取连接超时时间 (ms)

10000

只读模式

阻止所有写操作。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/DELETE

  • export_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

Install Server
A
license - permissive license
B
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Issues opened vs closed

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