@mhdd_24/dbeaver-mcp
v1.0.0
Published
MCP server for PostgreSQL / DBeaver-style queries: list schemas/tables, describe columns, and run SQL (read-only by default)
Maintainers
Readme
@mhdd_24/dbeaver-mcp
MCP server for PostgreSQL / DBeaver-style exploration and SQL from Cursor (or any MCP client). Same architecture as @mhdd_24/pgadmin-mcp.
Say "db status", "list databases", or "run this SQL on Dev" in chat — the assistant calls the matching tools.
Full documentation: docs/WIKI.md
Tools
| Tool | Role |
|------|------|
| db_set_profile | Sticky session switch: dev | qa | default |
| db_status | Sticky + active profile, host, SELECT 1 |
| db_list_databases | List databases on active (or one-shot) profile server |
| db_list_schemas | List user schemas |
| db_list_tables | List tables/views in a schema |
| db_describe_table | Column metadata |
| db_query | Run SQL (read-only by default) |
Profiles (no connection details in chat)
- Put both Dev and QA credentials in
mcp.json(DBEAVER_DEV_*,DBEAVER_QA_*— or reusePG_DEV_*/PG_QA_*). - Say
dbprofile=qaordbprofile=dev— the assistant callsdb_set_profile. - Later tools reuse that sticky profile until you switch or the MCP process restarts.
- Optional one-shot: pass
profile: "qa"on a single tool without changing sticky. databasestill means the logical DB name on that server (e.g.transboard), not the env profile.
Safety
- Read-only by default — only
SELECT/WITH…SELECT/EXPLAIN/SHOW/VALUES - Set
DBEAVER_ALLOW_WRITE=true(orPG_ALLOW_WRITE=true) to allow writes DBEAVER_QUERY_MAX_ROWS/PG_MAX_ROWScaps returned rows; timeout viaDBEAVER_STATEMENT_TIMEOUT_MS/PG_QUERY_TIMEOUT_MS
Install / run
npm i -g @mhdd_24/dbeaver-mcp
# or from source:
git clone https://github.com/Mhdd-24/DBeaver-MCP.git
cd DBeaver-MCP
npm install
npm run build
node dist/index.jsCursor mcp.json
"dbeaver": {
"command": "npx",
"args": ["-y", "@mhdd_24/dbeaver-mcp"],
"env": {
"DBEAVER_PROFILE": "dev",
"DBEAVER_DEV_HOST": "192.168.1.141",
"DBEAVER_DEV_PORT": "5432",
"DBEAVER_DEV_USER": "postgres",
"DBEAVER_DEV_PASSWORD": "YOUR_PASSWORD",
"DBEAVER_DEV_DATABASE": "postgres",
"DBEAVER_QA_HOST": "192.168.1.131",
"DBEAVER_QA_PORT": "5432",
"DBEAVER_QA_USER": "postgres",
"DBEAVER_QA_PASSWORD": "YOUR_PASSWORD",
"DBEAVER_QA_DATABASE": "postgres",
"DBEAVER_ALLOW_WRITE": "false",
"DBEAVER_QUERY_MAX_ROWS": "500"
}
}Restart Cursor after saving.
Example prompts
- dbprofile=qa
- dbprofile=dev
- db status
- list databases
- list tables in schema transc for database transboard
- describe table translations schema transc database transboard
- run: SELECT version();
