DBeaver MCP Server
The DBeaver MCP Server provides AI assistants with secure, universal access to 200+ database types through existing DBeaver connections with zero configuration and enterprise-grade safety features.
Connection Management: List and inspect all DBeaver database connections, get detailed connection information, test connectivity, and auto-detect DBeaver workspace (supports legacy XML and modern JSON formats, versions 6.x through 21.x+)
Data Operations: Execute read-only SELECT queries with configurable row limits (default: 1000), perform validated INSERT/UPDATE/DELETE operations, and export up to 10,000 rows to CSV, JSON, XML, or Excel formats
Schema Management: List tables and views with optional schema filtering, get detailed table schemas (columns, data types, indexes), create and alter tables using DDL statements, and drop tables with mandatory safety confirmation
Business Intelligence: Store and retrieve persistent business insights with optional tags and connection associations, get database statistics and metadata, and track analysis findings with query execution performance monitoring
Safety & Security: Built-in query validation with automatic LIMIT protection, confirmation prompts for destructive operations, secure credential management through DBeaver, configurable timeout protection (default: 30 seconds), and comprehensive error handling
Platform Support: Cross-platform compatibility (Windows, macOS, Linux), full Model Context Protocol integration with resource browsing capabilities, and debug mode for troubleshooting
Integrates with DBeaver to provide access to 200+ database types through existing DBeaver connections, allowing database querying, schema exploration, and data export functionality without additional configuration.
Provides access to MySQL databases for schema exploration and query execution through existing DBeaver connections.
Enables running queries on PostgreSQL databases through DBeaver connections, with support for data retrieval and manipulation operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DBeaver MCP Serverlist all tables in my production PostgreSQL database"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OmniSQL MCP
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).
Database Support
Natively supported (direct driver, fast):
PostgreSQL (via
pg)MySQL / MariaDB (via
mysql2)SQL Server / MSSQL (via
mssql)SQLite (via
sqlite3CLI)
Postgres-compatible (routed through pg driver automatically):
CockroachDB, TimescaleDB, Amazon Redshift, YugabyteDB, AlloyDB, Supabase, Neon, Citus
Other databases: Fall back to an external CLI configured via OMNISQL_CLI_PATH. Results vary by CLI.
Custom drivers wrapping any of the above are detected automatically — see Custom and IAM-Authenticated Drivers.
Related MCP server: DuckDB MCP Server
Features
Reuses connections already configured in your local DB client workspace — no duplicate setup
Native query execution for PostgreSQL, MySQL/MariaDB, SQLite, SQL Server
AWS RDS IAM authentication, including custom drivers built on the AWS Advanced JDBC Wrapper
Connection pooling with configurable pool size and timeouts
Transaction support (BEGIN/COMMIT/ROLLBACK)
Query execution plan analysis (EXPLAIN)
Schema comparison between connections with migration script generation
Read-only mode with enforced SELECT-only on
execute_queryConnection whitelist to restrict which databases are accessible
Tool filtering to disable specific operations
Query validation to block dangerous operations (DROP DATABASE, TRUNCATE, DELETE/UPDATE without WHERE)
Data export to CSV/JSON
Graceful shutdown with connection pool cleanup
Requirements
Node.js 18+
A local DB client (DBeaver-compatible) with at least one configured connection
Installation
npm install -g omnisql-mcpConfiguration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}Claude Code
Add to ~/.claude/settings.json:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}Cursor
Add to Cursor Settings > MCP Servers:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}Environment Variables
Variable | Description | Default |
| Path to external DB client CLI (used for unsupported-driver fallback) | Unset |
| Path to local DB client workspace directory | OS default |
| Name of the DB client project/workspace folder (e.g. custom-named DBeaver project) |
|
| Query timeout (ms) |
|
| Enable debug logging |
|
| Disable all write operations |
|
| Comma-separated whitelist of connection IDs or names | All |
| Comma-separated tools to disable | None |
| Minimum connections per pool |
|
| Maximum connections per pool |
|
| Idle connection timeout (ms) |
|
| Connection acquire timeout (ms) |
|
| Path to the AWS CLI (used for RDS IAM authentication) |
|
| Timeout for minting an RDS IAM auth token (ms) |
|
| known_hosts file used to verify SSH tunnel hosts |
|
| Refuse SSH tunnel hosts with no |
|
Read-Only Mode
Blocks all write operations. The execute_query tool only allows SELECT, EXPLAIN, SHOW, and DESCRIBE statements. Transaction tools are disabled entirely.
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_READ_ONLY": "true"
}
}
}
}Connection Whitelist
Restrict which workspace connections are visible. Accepts connection IDs or display names, comma-separated:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_ALLOWED_CONNECTIONS": "dev-postgres,staging-mysql"
}
}
}
}Disable Specific Tools
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_DISABLED_TOOLS": "drop_table,alter_table,write_query"
}
}
}
}Available Tools
Connection Management
list_connections- List all database connectionsget_connection_info- Get connection detailstest_connection- Test connectivity
Data Operations
execute_query- Run read-only queries (SELECT, EXPLAIN, SHOW, DESCRIBE only)write_query- Run INSERT/UPDATE/DELETEexport_data- Export to CSV/JSON
Schema Management
list_tables- List tables and viewsget_table_schema- Get table structurecreate_table- Create tablesalter_table- Modify tablesdrop_table- Drop tables (requires confirmation)
Transactions
begin_transaction- Start a new transactionexecute_in_transaction- Execute query within a transactioncommit_transaction- Commit a transactionrollback_transaction- Roll back a transaction
Query Analysis
explain_query- Analyze query execution plancompare_schemas- Compare schemas between two connectionsget_pool_stats- Get connection pool statistics
Other
get_database_stats- Database statisticsappend_insight- Store analysis noteslist_insights- Retrieve stored notes
Security
Read-only enforcement:
execute_queryonly accepts read-only statements (SELECT, EXPLAIN, SHOW, DESCRIBE, PRAGMA). Write operations must usewrite_query.Query validation: Blocks DROP DATABASE, DROP SCHEMA, TRUNCATE, DELETE/UPDATE without WHERE, GRANT, REVOKE, and user management statements.
Connection whitelist: Restrict which connections are exposed via
OMNISQL_ALLOWED_CONNECTIONS.Tool filtering: Disable any tool via
OMNISQL_DISABLED_TOOLS.Input sanitization: Connection IDs and SQL identifiers are sanitized to prevent injection.
Recommendation: For production use, also use a database-level read-only user for defense in depth.
Workspace Format Support
Supports both configuration formats written by DBeaver-compatible DB clients:
Legacy: XML config in
.metadata/.plugins/org.jkiss.dbeaver.core/Modern: JSON config in
General/.dbeaver/
The project/workspace folder name (General by default) is configurable via OMNISQL_PROJECT,
so workspaces using a custom or renamed DBeaver project (e.g. DataPlatform) are discovered
without needing to rename the project or symlink the folder.
Connection modes
DBeaver connections are configured either manually (host, port, database fields) or by
URL (a JDBC URL). Both work. In URL mode DBeaver leaves the host/port fields at placeholder
values — usually localhost — and reads only the URL, so the URL is what is used here too.
SSH tunnels
Connections that DBeaver reaches through an SSH tunnel are tunneled here as well. The tunnel is opened on first use and reused for the lifetime of the server, with a loopback-only local forward, and the connection's host/port are treated the way DBeaver treats them: as the database as seen from the SSH server.
Agent, password and public-key authentication are supported, taken from the connection's SSH tab. Credentials saved in the workspace (including the tunnel's own, stored separately from the database credentials) are decrypted and used.
Agent authentication needs
SSH_AUTH_SOCKset in the MCP server's environment. MCP clients usually do not inherit your shell, so set it explicitly in the client's server config if you use an agent.The SSH host key is checked against
known_hosts. A host recorded there must match, or the tunnel is refused; a host that is not recorded is accepted, unlessOMNISQL_SSH_STRICT_HOST_KEY=true.If a tunnel cannot be opened the connection fails with that reason. It never falls back to connecting directly to the recorded host, which would reach an unrelated local database.
Querying another database on the same server
A connection id may carry a database override — my-connection/analytics — to run against a
different database on the same server without adding a second connection in DBeaver. This does
not apply to file-backed engines such as SQLite, where the "database" is a file path.
With OMNISQL_ALLOWED_CONNECTIONS set, whitelisting a connection allows the databases its
credentials can reach. To pin it to specific databases, list connection/database entries
instead of the bare connection.
Credentials are automatically decrypted from the workspace credentials-config.json.
Custom and IAM-Authenticated Drivers
Custom drivers
Native routing normally keys off the driver id (postgres-jdbc, mysql8). Custom drivers often use an
opaque id instead — a UUID, say — which names no engine. Those connections are resolved by falling back
to the connection's provider (postgresql, mysql, …) and then to the JDBC URL's sub-protocol,
including wrapped ones such as jdbc:aws-wrapper:postgresql://…. A custom driver wrapping a supported
engine therefore works with no extra configuration.
If an engine still cannot be identified, the resulting error names both the driver id and the provider so you can see what was missing.
AWS RDS IAM authentication
Connections that authenticate with an RDS IAM token instead of a stored password are detected and handled automatically. Both shapes are recognised:
AWS Advanced JDBC Wrapper drivers, which record
wrapperPlugins: "iam"alongsideawsProfileandiamRegion.The DB client's own AWS IAM auth models.
For these connections OmniSQL:
Mints a token with
aws rds generate-db-auth-token(via the AWS CLI, so SSO and role-chained profiles work as configured) and uses it as the password.Caches each token for 13 minutes, under its 15-minute lifetime, and re-mints per physical connection so long-lived pools keep working.
Forces TLS, which RDS requires for IAM tokens.
Resolves the database username from the connection when present. Where it is absent, the username is derived from your AWS identity: either the per-developer role name (
<profile>-<user>) or the assumed SSO session name.
Requirements: the AWS CLI on PATH (or OMNISQL_AWS_CLI_PATH), a valid session for the
connection's profile (aws sso login --profile <profile>), and network reachability to the endpoint.
An expired SSO session produces an error naming the profile to re-authenticate.
Development
git clone https://github.com/srthkdev/omnisql-mcp.git
cd omnisql-mcp
npm install
npm run build
npm test
npm run lintLicense
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables Large Language Models to access and interact with database connections, including viewing schemas and performing CRUD operations on connected databases.- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server implementation that connects AI assistants to DuckDB, enabling them to query and analyze data from various sources including CSV, Parquet, JSON, and cloud storage through SQL.17MIT
- AlicenseAqualityBmaintenanceA Model Context Protocol server that enables large language models to access database metadata and perform cross-engine data querying across diverse database ecosystems.1652Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides AI assistants with comprehensive access to SQL databases, enabling schema inspection, query execution, and database operations with enterprise-grade security.707MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
GibsonAI MCP server: manage your databases with natural language
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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