DBR
DBR is a database workspace for VS Code that helps you browse data, run queries, and manage database objects without leaving your editor.
Connect Databricks, ClickHouse, PostgreSQL, Hasura-backed PostgreSQL, and Redis in one place, then move from exploration to action in seconds.
Why DBR
One sidebar for all your data sources
- Save and organize Databricks, ClickHouse, PostgreSQL, Hasura, and Redis connections.
- Browse with a clear tree flow:
connection -> schema -> table.
Faster data exploration
- Open tables quickly, inspect schema, filter rows, and page through results.
- Run custom SQL with a result grid built for iterative analysis.
Streamlined database operations
- Move or stream tables across schemas and connections with drag-and-drop or context actions.
- Create databases/schemas, copy fully qualified names, and run row count actions instantly.
Built-in admin and performance workflows
- Manage PostgreSQL, Hasura, and ClickHouse users and ACLs from dedicated admin screens.
- Monitor ClickHouse performance with live metrics, query history, storage insights, and tuning recommendations.
Designed for long-running work
- Use cancellable operations with progress updates for large transfers.
- Track background schema streaming jobs and continue working while they run.
Secure by default
- Credentials are encrypted at rest (AES-256-GCM); the encryption key lives in your OS keychain (macOS Keychain, Windows Credential Manager, or Linux Secret Service).
- One connection list, shared by the sidebar, GitHub Copilot, and Claude Code — add a connection once, use it everywhere.
Works with AI agents
- GitHub Copilot Chat can call DBR's tools directly (
#dbrQuery, #dbrListConnections, and more).
- Claude Code (CLI, desktop, or VS Code) connects over MCP, using the same tools and the same saved connections.
Quick Start
- Install DBR from the Visual Studio Marketplace.
- Open the DBR icon in the VS Code activity bar.
- Select
Add Connection and choose your data source type.
- Start browsing tables, running queries, and managing database objects.
Install
Install DBR from the Visual Studio Marketplace.
Connection setup
ClickHouse HTTP
Provide either a full connection string or the individual fields — they stay in sync as you type.
Connection string format:
http://user:password@host:8123/?database=default
Required:
- host (example:
http://localhost:8123)
- database
- username
- password
Databricks
Provide either a full connection string or the individual fields — they stay in sync as you type.
Connection string format:
<host>/<http-path>?token=<pat>
<host>/<http-path>?auth_type=oauth-m2m&client_id=<id>&client_secret=<secret>
Individual fields:
- host (example:
https://dbc-xxx.cloud.databricks.com)
- HTTP path (example:
/sql/1.0/warehouses/<warehouse-id>) — warehouse ID is derived from this
- PAT token or client ID + client secret (M2M)
- catalog (optional)
- default schema (optional)
PostgreSQL
Provide either a full connection string or the individual fields — they stay in sync as you type.
Connection string format:
postgresql://user:password@host:5432/database?schema=public
Individual fields:
- host (example:
localhost)
- port (default:
5432)
- database
- username
- password
- default schema (optional)
Hasura
Provide the Hasura HTTP endpoint directly.
Required:
- host (example:
http://localhost/hasura)
- admin secret
Optional:
- default schema (default:
public)
DB Browser lists Hasura sources in the sidebar tree (as database nodes) and uses the selected node as the active source for SQL operations.
Table Panel Behaviour
| Action |
Result |
| Click a table row in the sidebar |
Opens (or reuses) a single table tab |
Click the $(open-preview) inline button |
Always opens a new independent tab |
| Switch to another VS Code tab and return |
Keeps current SQL text, latest results, and in-progress query UI state |
AI Agent Integration
DBR's database actions (list connections, run queries, browse schemas, stream tables between connections, and more) are available to AI agents, not just the sidebar UI. The same tools, the same saved connections, everywhere.
GitHub Copilot Chat
Copilot Chat can call DBR's tools directly — try #dbrQuery, #dbrListConnections, #dbrTableData, and others in a chat prompt. No setup needed; tools register automatically when the extension activates.
Claude Code
DBR bundles a standalone MCP server, so Claude Code (CLI, desktop app, or VS Code extension) can use the same tools:
- Open the Command Palette and run DBR: Copy Claude Code MCP Setup Command — this copies a ready-to-run
claude mcp add --scope user command with the correct binary path for your machine. User scope means it's available from any project, not just the one you happened to run the command from.
- Paste it into a terminal and run it.
- Start a new Claude Code session (existing sessions don't pick up new MCP servers) — DBR's tools (
dbrQuery, dbrListConnections, dbrStreamTableToConnection, etc.) are now available.
- To verify: type
/mcp in the chat. There's no separate MCP panel in the VS Code extension's UI — /mcp is the only place to see connected servers and their tools.
The MCP server binary is copied to a stable path (~/.dbr/bin/) on activation and refreshed automatically whenever DBR updates, so the registration keeps working across Marketplace upgrades. Works on macOS, Windows, and Linux (amd64 and arm64).
Troubleshooting: if claude mcp list shows dbr but /mcp doesn't, you likely registered it at local (project) scope and are opening a different project in VS Code than the one claude mcp add ran from. Re-run with --scope user (see ~/.claude.json to check current scope/path) to make it available everywhere.
Security Notes
- Connection secrets (passwords/tokens) are encrypted at rest (AES-256-GCM). The encryption key is generated on first use and stored in your OS's native credential store (macOS Keychain, Windows Credential Manager, or Linux Secret Service).
- Connection metadata (host, port, etc. — no secrets) is stored in
~/.dbr/connections.json.
- This store is shared by the sidebar, Copilot Chat, and the standalone MCP server used by Claude Code — it's local to your machine, never transmitted elsewhere.
- Filters are injected directly into SQL; use trusted filter input.