Skip to content

Commit 3e51e4c

Browse files
srthkdevclaude
andcommitted
feat!: Rename dbeaver-mcp-server → omnisql-mcp (v2.0.0)
Renamed at the request of DBeaver Corporation. The server still reads connections from the same local DB client workspace (DBeaver-compatible), only the branding changed. BREAKING CHANGES: - npm package: dbeaver-mcp-server → omnisql-mcp - binary: dbeaver-mcp-server → omnisql-mcp - env vars: DBEAVER_* → OMNISQL_* (e.g. DBEAVER_READ_ONLY → OMNISQL_READ_ONLY, DBEAVER_PATH → OMNISQL_CLI_PATH) - resource URI scheme: dbeaver:// → omnisql:// - internal classes: DBeaverMCPServer → OmniSQLMCPServer, DBeaverClient → WorkspaceClient, DBeaverConfigParser → WorkspaceConfigParser - interfaces: DBeaverConnection → DatabaseConnection, DBeaverConfig → WorkspaceConfig - removed CLI auto-detection; users must set OMNISQL_CLI_PATH explicitly to use the unsupported-driver CLI fallback Also fixes a broken CI step (npm install -g npm@latest was breaking npm itself on the runner; Node 22's bundled npm already supports OIDC). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 0434cea commit 3e51e4c

26 files changed

Lines changed: 497 additions & 571 deletions

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ body:
4949
id: logs
5050
attributes:
5151
label: Error logs
52-
description: Paste any error messages (run with DBEAVER_DEBUG=true)
52+
description: Paste any error messages (run with OMNISQL_DEBUG=true)
5353
render: shell
5454

5555
- type: checkboxes

.github/workflows/ci.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,6 @@ jobs:
7171
registry-url: 'https://registry.npmjs.org'
7272
cache: 'npm'
7373

74-
- name: Upgrade npm for OIDC support
75-
run: npm install -g npm@latest
76-
7774
- name: Install dependencies
7875
run: npm ci
7976

@@ -87,7 +84,7 @@ jobs:
8784
echo "local_version=$LOCAL_VERSION" >> $GITHUB_OUTPUT
8885
8986
# Check if this version exists on npm
90-
NPM_VERSION=$(npm view dbeaver-mcp-server version 2>/dev/null || echo "0.0.0")
87+
NPM_VERSION=$(npm view omnisql-mcp version 2>/dev/null || echo "0.0.0")
9188
echo "npm_version=$NPM_VERSION" >> $GITHUB_OUTPUT
9289
9390
if [ "$LOCAL_VERSION" = "$NPM_VERSION" ]; then

CHANGELOG.md

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.0.0] - 2026-04-20
9+
10+
### Changed (Breaking)
11+
- **Renamed package**: `dbeaver-mcp-server``omnisql-mcp`. The old npm package is deprecated; install `omnisql-mcp` going forward.
12+
- **Renamed binary**: `dbeaver-mcp-server``omnisql-mcp`.
13+
- **Renamed environment variables**: All `DBEAVER_*` env vars are now `OMNISQL_*` (for example, the old `DBEAVER_READ_ONLY` is now `OMNISQL_READ_ONLY`, old `DBEAVER_WORKSPACE` is now `OMNISQL_WORKSPACE`, and old `DBEAVER_PATH` is now `OMNISQL_CLI_PATH`). Update your MCP client config.
14+
- **Renamed resource URI scheme**: `dbeaver://``omnisql://` for table schema resources.
15+
- **Renamed internal classes**: `DBeaverConfigParser``WorkspaceConfigParser`, `DBeaverClient``WorkspaceClient`, `DBeaverMCPServer``OmniSQLMCPServer`. Interfaces `DBeaverConnection``DatabaseConnection`, `DBeaverConfig``WorkspaceConfig`.
16+
- **CLI auto-detection removed**: `OMNISQL_CLI_PATH` must now be set explicitly to use the CLI fallback for unsupported drivers. Previously the server attempted to locate the DB client binary in hardcoded install paths.
17+
18+
Functional behavior is otherwise unchanged — the server still reads connections from the same local DB client workspace (DBeaver-compatible).
19+
820
## [1.3.0] - 2026-02-16
921

1022
### Added
@@ -23,29 +35,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2335

2436
### Changed
2537
- CI workflow now includes a `publish` job that runs after all checks pass on `main`
26-
- Pool manager's `isPostgresCompatible()` is now a public method shared with dbeaver-client
38+
- Pool manager's `isPostgresCompatible()` is now a public method shared with workspace-client
2739

2840
## [1.2.5] - 2026-02-15
2941

3042
### Added
31-
- Connection whitelist via `DBEAVER_ALLOWED_CONNECTIONS` environment variable — restrict which DBeaver connections are visible by ID or name
43+
- Connection whitelist via `OMNISQL_ALLOWED_CONNECTIONS` environment variable — restrict which workspace connections are visible by ID or name
3244
- `enforceReadOnly()` query-level enforcement — `execute_query` now strictly allows only read-only statements (SELECT, EXPLAIN, SHOW, DESCRIBE, PRAGMA)
3345
- Test queries for SAP HANA (`SELECT * FROM DUMMY`) and DB2 (`SYSIBM.SYSDUMMY1`)
3446

3547
### Fixed
3648
- **Read-only mode bypass (Issue #19)**: `execute_query` no longer allows write operations (INSERT/UPDATE/DELETE/CREATE/ALTER/DROP). Transaction tools (`begin_transaction`, `commit_transaction`, `rollback_transaction`, `execute_in_transaction`) are now blocked in read-only mode.
37-
- **Unsupported driver errors (Issue #17)**: DBeaver CLI fallback now provides clear, actionable error messages listing natively supported drivers and workarounds. DBeaver availability is checked before attempting CLI fallback.
49+
- **Unsupported driver errors (Issue #17)**: CLI fallback now provides clear, actionable error messages listing natively supported drivers and workarounds. CLI availability is checked before attempting fallback.
3850
- **UPDATE validation regex**: `UPDATE ... SET ... WHERE ...` was incorrectly blocked by the dangerous query filter. The regex now correctly allows UPDATE with WHERE clause.
3951

4052
### Changed
41-
- DBeaver CLI fallback uses connection name-based spec for better compatibility
53+
- CLI fallback uses connection name-based spec for better compatibility
4254

4355
## [1.2.4] - 2026-01-15
4456

4557
### Added
4658
- Native MySQL/MariaDB support via `mysql2` library
47-
- Read-only mode (`DBEAVER_READ_ONLY=true`) to disable write operations
48-
- Tool filtering via `DBEAVER_DISABLED_TOOLS` environment variable
59+
- Read-only mode (`OMNISQL_READ_ONLY=true`) to disable write operations
60+
- Tool filtering via `OMNISQL_DISABLED_TOOLS` environment variable
4961
- GitHub Actions CI/CD pipeline
5062
- ESLint and Prettier configuration
5163
- Pre-commit hooks via Husky
@@ -74,7 +86,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7486

7587
### Added
7688
- Native MSSQL/SQL Server support via `mssql` library
77-
- `xml2js` dependency for DBeaver config parsing
89+
- `xml2js` for legacy XML workspace config parsing
7890

7991
### Fixed
8092
- Missing `xml2js` runtime dependency that broke npm installations
@@ -84,7 +96,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8496

8597
### Added
8698
- SSL/TLS support for PostgreSQL connections
87-
- Credential decryption from DBeaver's credentials-config.json
99+
- Credential decryption from the workspace credentials-config.json
88100

89101
### Fixed
90102
- Authentication failures with PostgreSQL (Issue #8)
@@ -94,17 +106,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
94106
### Added
95107
- Native PostgreSQL support via `pg` library
96108
- Native SQLite support via sqlite3 CLI
97-
- DBeaver CLI fallback for unsupported databases
109+
- CLI fallback for unsupported drivers
98110
- Business insights tracking feature
99111

100112
### Changed
101-
- Query execution no longer requires DBeaver GUI for supported databases
113+
- Query execution no longer requires the DB client GUI for supported databases
102114

103115
## [1.1.0] - 2024-09-XX
104116

105117
### Added
106118
- Initial MCP server implementation
107-
- Support for DBeaver 6.x (XML) and 21.x+ (JSON) config formats
119+
- Support for legacy XML and modern JSON workspace config formats
108120
- Connection management tools
109121
- Query execution tools
110122
- Schema management tools

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2025 DBeaver MCP Server
3+
Copyright (c) 2025 Sarthak Jain
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 44 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
# DBeaver MCP Server
1+
# OmniSQL MCP
22

3-
MCP server that provides AI assistants access to databases through DBeaver connections.
3+
Universal database MCP server — give AI assistants read/write access to your databases using connections already saved in your local DB client workspace (DBeaver-compatible).
44

5-
[![npm version](https://badge.fury.io/js/dbeaver-mcp-server.svg)](https://www.npmjs.com/package/dbeaver-mcp-server)
5+
[![npm version](https://badge.fury.io/js/omnisql-mcp.svg)](https://www.npmjs.com/package/omnisql-mcp)
66
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
77
[![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org/)
88

9-
<a href="https://glama.ai/mcp/servers/@srthkdev/dbeaver-mcp-server">
10-
<img width="380" height="200" src="https://glama.ai/mcp/servers/@srthkdev/dbeaver-mcp-server/badge" alt="DBeaver Server MCP server" />
11-
</a>
12-
139
## Database Support
1410

1511
**Natively supported** (direct driver, fast):
@@ -21,11 +17,11 @@ MCP server that provides AI assistants access to databases through DBeaver conne
2117
**Postgres-compatible** (routed through `pg` driver automatically):
2218
- CockroachDB, TimescaleDB, Amazon Redshift, YugabyteDB, AlloyDB, Supabase, Neon, Citus
2319

24-
**Other databases**: Falls back to DBeaver CLI. Requires DBeaver to be installed and the connection configured in your DBeaver workspace. Results vary by DBeaver version.
20+
**Other databases**: Fall back to an external CLI configured via `OMNISQL_CLI_PATH`. Results vary by CLI.
2521

2622
## Features
2723

28-
- Uses existing DBeaver connections (no separate config needed)
24+
- Reuses connections already configured in your local DB client workspace — no duplicate setup
2925
- Native query execution for PostgreSQL, MySQL/MariaDB, SQLite, SQL Server
3026
- Connection pooling with configurable pool size and timeouts
3127
- Transaction support (BEGIN/COMMIT/ROLLBACK)
@@ -41,12 +37,12 @@ MCP server that provides AI assistants access to databases through DBeaver conne
4137
## Requirements
4238

4339
- Node.js 18+
44-
- DBeaver with at least one configured connection
40+
- A local DB client (DBeaver-compatible) with at least one configured connection
4541

4642
## Installation
4743

4844
```bash
49-
npm install -g dbeaver-mcp-server
45+
npm install -g omnisql-mcp
5046
```
5147

5248
## Configuration
@@ -58,8 +54,8 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
5854
```json
5955
{
6056
"mcpServers": {
61-
"dbeaver": {
62-
"command": "dbeaver-mcp-server"
57+
"omnisql": {
58+
"command": "omnisql-mcp"
6359
}
6460
}
6561
}
@@ -72,8 +68,8 @@ Add to `~/.claude/settings.json`:
7268
```json
7369
{
7470
"mcpServers": {
75-
"dbeaver": {
76-
"command": "dbeaver-mcp-server"
71+
"omnisql": {
72+
"command": "omnisql-mcp"
7773
}
7874
}
7975
}
@@ -86,8 +82,8 @@ Add to Cursor Settings > MCP Servers:
8682
```json
8783
{
8884
"mcpServers": {
89-
"dbeaver": {
90-
"command": "dbeaver-mcp-server"
85+
"omnisql": {
86+
"command": "omnisql-mcp"
9187
}
9288
}
9389
}
@@ -97,17 +93,17 @@ Add to Cursor Settings > MCP Servers:
9793

9894
| Variable | Description | Default |
9995
|----------|-------------|---------|
100-
| `DBEAVER_PATH` | Path to DBeaver executable | Auto-detected |
101-
| `DBEAVER_WORKSPACE` | Path to DBeaver workspace | OS default |
102-
| `DBEAVER_TIMEOUT` | Query timeout (ms) | `30000` |
103-
| `DBEAVER_DEBUG` | Enable debug logging | `false` |
104-
| `DBEAVER_READ_ONLY` | Disable all write operations | `false` |
105-
| `DBEAVER_ALLOWED_CONNECTIONS` | Comma-separated whitelist of connection IDs or names | All |
106-
| `DBEAVER_DISABLED_TOOLS` | Comma-separated tools to disable | None |
107-
| `DBEAVER_POOL_MIN` | Minimum connections per pool | `2` |
108-
| `DBEAVER_POOL_MAX` | Maximum connections per pool | `10` |
109-
| `DBEAVER_POOL_IDLE_TIMEOUT` | Idle connection timeout (ms) | `30000` |
110-
| `DBEAVER_POOL_ACQUIRE_TIMEOUT` | Connection acquire timeout (ms) | `10000` |
96+
| `OMNISQL_CLI_PATH` | Path to external DB client CLI (used for unsupported-driver fallback) | Unset |
97+
| `OMNISQL_WORKSPACE` | Path to local DB client workspace directory | OS default |
98+
| `OMNISQL_TIMEOUT` | Query timeout (ms) | `30000` |
99+
| `OMNISQL_DEBUG` | Enable debug logging | `false` |
100+
| `OMNISQL_READ_ONLY` | Disable all write operations | `false` |
101+
| `OMNISQL_ALLOWED_CONNECTIONS` | Comma-separated whitelist of connection IDs or names | All |
102+
| `OMNISQL_DISABLED_TOOLS` | Comma-separated tools to disable | None |
103+
| `OMNISQL_POOL_MIN` | Minimum connections per pool | `2` |
104+
| `OMNISQL_POOL_MAX` | Maximum connections per pool | `10` |
105+
| `OMNISQL_POOL_IDLE_TIMEOUT` | Idle connection timeout (ms) | `30000` |
106+
| `OMNISQL_POOL_ACQUIRE_TIMEOUT` | Connection acquire timeout (ms) | `10000` |
111107

112108
### Read-Only Mode
113109

@@ -116,10 +112,10 @@ Blocks all write operations. The `execute_query` tool only allows SELECT, EXPLAI
116112
```json
117113
{
118114
"mcpServers": {
119-
"dbeaver": {
120-
"command": "dbeaver-mcp-server",
115+
"omnisql": {
116+
"command": "omnisql-mcp",
121117
"env": {
122-
"DBEAVER_READ_ONLY": "true"
118+
"OMNISQL_READ_ONLY": "true"
123119
}
124120
}
125121
}
@@ -128,15 +124,15 @@ Blocks all write operations. The `execute_query` tool only allows SELECT, EXPLAI
128124

129125
### Connection Whitelist
130126

131-
Restrict which DBeaver connections are visible. Accepts connection IDs or display names, comma-separated:
127+
Restrict which workspace connections are visible. Accepts connection IDs or display names, comma-separated:
132128

133129
```json
134130
{
135131
"mcpServers": {
136-
"dbeaver": {
137-
"command": "dbeaver-mcp-server",
132+
"omnisql": {
133+
"command": "omnisql-mcp",
138134
"env": {
139-
"DBEAVER_ALLOWED_CONNECTIONS": "dev-postgres,staging-mysql"
135+
"OMNISQL_ALLOWED_CONNECTIONS": "dev-postgres,staging-mysql"
140136
}
141137
}
142138
}
@@ -148,10 +144,10 @@ Restrict which DBeaver connections are visible. Accepts connection IDs or displa
148144
```json
149145
{
150146
"mcpServers": {
151-
"dbeaver": {
152-
"command": "dbeaver-mcp-server",
147+
"omnisql": {
148+
"command": "omnisql-mcp",
153149
"env": {
154-
"DBEAVER_DISABLED_TOOLS": "drop_table,alter_table,write_query"
150+
"OMNISQL_DISABLED_TOOLS": "drop_table,alter_table,write_query"
155151
}
156152
}
157153
}
@@ -161,7 +157,7 @@ Restrict which DBeaver connections are visible. Accepts connection IDs or displa
161157
## Available Tools
162158

163159
### Connection Management
164-
- `list_connections` - List all DBeaver connections
160+
- `list_connections` - List all database connections
165161
- `get_connection_info` - Get connection details
166162
- `test_connection` - Test connectivity
167163

@@ -197,24 +193,24 @@ Restrict which DBeaver connections are visible. Accepts connection IDs or displa
197193

198194
- **Read-only enforcement**: `execute_query` only accepts read-only statements (SELECT, EXPLAIN, SHOW, DESCRIBE, PRAGMA). Write operations must use `write_query`.
199195
- **Query validation**: Blocks DROP DATABASE, DROP SCHEMA, TRUNCATE, DELETE/UPDATE without WHERE, GRANT, REVOKE, and user management statements.
200-
- **Connection whitelist**: Restrict which connections are exposed via `DBEAVER_ALLOWED_CONNECTIONS`.
201-
- **Tool filtering**: Disable any tool via `DBEAVER_DISABLED_TOOLS`.
196+
- **Connection whitelist**: Restrict which connections are exposed via `OMNISQL_ALLOWED_CONNECTIONS`.
197+
- **Tool filtering**: Disable any tool via `OMNISQL_DISABLED_TOOLS`.
202198
- **Input sanitization**: Connection IDs and SQL identifiers are sanitized to prevent injection.
203199
- **Recommendation**: For production use, also use a database-level read-only user for defense in depth.
204200

205-
## DBeaver Version Support
201+
## Workspace Format Support
206202

207-
Supports both configuration formats:
208-
- DBeaver 6.x: XML config in `.metadata/.plugins/org.jkiss.dbeaver.core/`
209-
- DBeaver 21.x+: JSON config in `General/.dbeaver/`
203+
Supports both configuration formats written by DBeaver-compatible DB clients:
204+
- Legacy: XML config in `.metadata/.plugins/org.jkiss.dbeaver.core/`
205+
- Modern: JSON config in `General/.dbeaver/`
210206

211-
Credentials are automatically decrypted from DBeaver's `credentials-config.json`.
207+
Credentials are automatically decrypted from the workspace `credentials-config.json`.
212208

213209
## Development
214210

215211
```bash
216-
git clone https://github.com/srthkdev/dbeaver-mcp-server.git
217-
cd dbeaver-mcp-server
212+
git clone https://github.com/srthkdev/omnisql-mcp.git
213+
cd omnisql-mcp
218214
npm install
219215
npm run build
220216
npm test

0 commit comments

Comments
 (0)