dbeaver-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PGPASSWORD | No | Fallback password used for PostgreSQL connections that have no saved password (the server also falls back to ~/.pgpass) | |
| DBEAVER_PROJECTS | No | Only these DBeaver projects, comma separated | all |
| DBEAVER_WORKSPACE | No | Folder that contains `General`. Auto-detected for Windows, macOS, Linux, Flatpak and Snap installs. | auto |
| DBEAVER_MCP_EXCLUDE | No | Hide these connections | none |
| DBEAVER_MCP_MAX_ROWS | No | Hard limit per query | 1000 |
| DBEAVER_MCP_TIMEOUT_MS | No | Time limit for every query (`statement_timeout`, `max_execution_time` / `max_statement_time`; SQLite, SQL Server and Oracle queries are cancelled by the client). Schema exploration gets at least 15 s, because some dictionaries (Oracle's) are slow. | 30000 |
| DBEAVER_MCP_ALLOW_WRITE | No | `true` adds `execute_sql` | false |
| DBEAVER_MCP_CONNECTIONS | No | Only these connections (name, id, or `project/name`) | all |
| DBEAVER_MCP_DEFAULT_ROWS | No | Rows returned when the model does not ask for a number | 100 |
| DBEAVER_MCP_MAX_CELL_CHARS | No | Longer text/JSON values are cut | 500 |
| DBEAVER_MCP_CONNECTION_TYPES | No | Only these DBeaver connection types, e.g. `dev,test` | all |
| DBEAVER_MCP_REQUIRE_DB_READONLY | No | `true` refuses connections whose engine cannot enforce read-only itself (SQL Server) | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_connectionsA | Lists the database connections configured in DBeaver that this server may use: name, engine and placeholder style, type (dev/test/prod), host, database, whether it can be used, and how read-only is enforced. Call this first. |
| list_schemasA | Lists schemas in the connection's database with how many tables/views each has. |
| list_tablesA | Lists tables, views and materialized views with estimated row counts and comments. Partitions are hidden (only the parent is shown). Filter matches table names and comments. |
| describe_tableA | Full structure of one table or view: columns (type, nullable, default, comment), primary/unique/foreign keys, tables referencing it, indexes, size, and the view definition. |
| find_columnsA | Searches column names (and column comments) across all tables and views, e.g. to find every table that has a 'policy_id' column. |
| run_queryA | Runs one read statement (SELECT, WITH; also SHOW, VALUES, TABLE where the engine has them) in a transaction that is always rolled back. Returns at most 1000 rows (default 100); long values are shortened. Pass values with 'params' and placeholders instead of pasting them into the SQL: the connection's param_style from list_connections ($1, $2... on PostgreSQL; ? on MySQL, MariaDB and SQLite; @p1, @p2... on SQL Server; :1, :2... on Oracle; typed {p1:String}, {p2:UInt64}... on ClickHouse). |
| explain_queryA | Shows the execution plan of a query. analyze=true really runs it (still read-only and rolled back) and reports actual times (and buffers on PostgreSQL). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool targets a distinct discovery step: connections → schemas → tables → single-table structure → column search → query execution → execution plan. The only pair that could be confused, run_query and explain_query, is clearly separated by the 'shows the plan' description. No two tools appear to do the same thing.
All seven tools follow a strict snake_case verb_noun convention (list_*, describe_table, find_columns, run_query, explain_query). The verbs also reflect real semantic differences (list vs describe vs find), so the pattern is both consistent and informative.
Seven tools is well-scoped for a read-only database inspection server; each covers a distinct layer of the exploration workflow. Nothing feels padded, and no obvious step of the workflow is forced into an overloaded mega-tool.
The read-only exploration lifecycle (connect → schema → table → column → query → plan) is fully covered, with a sensible rollback-only write policy. Minor gaps remain: no way to list routines/sequences/triggers, no cross-connection or cross-schema text search for DDL/object names, and no connection health check beyond the 'can be used' flag in list_connections.