QueryDock for VS Code
Why QueryDock?AI coding agents write better code when they can see your real schema and data, but letting an agent run SQL against your database is risky. QueryDock gives the agent what it needs and nothing more:
And for you, a complete database client inside the editor:
Free and ProQueryDock is free to use, including at work. Some advanced features will move to a paid Pro plan later. They are free during early access, and early users will get a discounted price.
Want Pro early? Join the waitlist. Supported Databases
Future releases will expand support to MongoDB, DuckDB, and ClickHouse. Requirements
Platform SupportRuns anywhere VS Code runs: macOS (Intel & Apple Silicon), Windows (x64 & ARM64), Linux (x64, ARM64, ARMhf, Alpine), and remote/WSL/Dev Container workspaces. Quick Start
Zero-Config DiscoveryQueryDock automatically discovers your project databases safely without executing arbitrary application code. Supported discovery targets:
Passwords are never displayed in plain text or written to logs — all previews show masked credentials ( Manual Configuration (
|
execPolicy |
Behaviour |
|---|---|
deny (default) |
EXEC / CALL are rejected like any other write. |
sandbox |
The call runs inside a transaction that is always rolled back. Every result set is returned; any INSERT/UPDATE the procedure performs is undone. Restrict which procedures qualify with execAllowlist (case-insensitive globs, optional schema. prefix). Dynamic SQL (EXEC (...), sp_executesql, xp_*) is never sandboxed. |
Sandbox mode currently supports SQL Server. Side effects that escape a transaction (mail, linked servers, consumed identity values) are not undone — keep the allowlist to read-only procedures.
Secret References
- Use
${env:VAR_NAME}to reference environment variables without committing passwords. - Use
"credentialKey": "key-name"to retrieve stored credentials from VS Code's encryptedSecretStorage.
Data Grid & Editing
- Double Click any cell to edit value inline.
- Supports strings, numbers, booleans, dates, and JSON objects.
- Changed cells are highlighted in amber.
- Press
Cmd+Sor click Save Changes to commit updates. - Press
Escapeor click Discard to revert unsaved edits. - Right-click any cell to Set NULL.
- Click the trash icon to Delete Row with primary key confirmation.
- Click Export to export loaded records to CSV, TSV, JSON, or SQL INSERT statements.
Built-in SQL Query Editor
Open via Command Palette (QueryDock: Open Query Editor) or title bar icon:
- Syntax highlighting and auto-formatting.
- Press
Cmd+Enter(macOS) orCtrl+Enter(Windows/Linux) to run. - Click Explain to view detailed visual execution plan.
- Query History Drawer: Review recent executions, durations, and status; click to reload query.
- Export query results directly to CSV or JSON.
Model Context Protocol (MCP) Server for AI
QueryDock embeds a local MCP server bound strictly to 127.0.0.1 so AI coding tools (Claude, Cursor, Antigravity) can inspect and query your project database:
Exposed Tools
get-database-info: Returns server engine, version, and connection status.get-tables: Lists all tables and views in the schema.get-table-schema: Full column list, data types, nullability, primary & foreign keys.get-indexes: Lists table indexes.get-foreign-keys: Lists relationship mappings between tables.get-table-rows: Paginated table rows with optional filtering.search-table: Text search within table columns.run-query: Executes SQL. Batches and procedures return every result set inresultSets; on read-only connections procedure calls run only underexecPolicy: "sandbox"(rolled back).
Connecting an AI Agent
Click the plug icon in the QueryDock dashboard header → Copy MCP configuration and pick your client. The snippet is copied to your clipboard.
QueryDock installs its MCP server at ~/.querydock/mcp-server.js and keeps it up to date, so your AI client's config keeps working when the extension updates.
Claude Code (one command):
claude mcp add --transport stdio querydock node ~/.querydock/mcp-server.js
Cursor / VS Code (.cursor/mcp.json or .mcp.json) and Windsurf (mcp_config.json). JSON configs need the full path, which the copied snippet fills in for you:
{
"mcpServers": {
"querydock": {
"command": "node",
"args": ["/Users/<you>/.querydock/mcp-server.js"]
}
}
}
HTTP (any client that supports Streamable HTTP, while VS Code is open):
{ "mcpServers": { "querydock": { "type": "http", "url": "http://127.0.0.1:42100/mcp" } } }
How it works: the stdio server is a thin proxy. The extension writes ~/.querydock/mcp.json (workspace path → port) when it starts; the proxy looks up the project from its working directory (--project <path> or QUERYDOCK_PROJECT override it) and forwards tool calls to the extension's HTTP server. VS Code with QueryDock must be open for the project. projectId is injected automatically, so agents never have to supply it.
Security Controls
- Read-Only Mode: Controlled by
querydock.mcp.readOnly(defaulttrue). OnlySELECT/WITH/EXPLAIN/SHOW/PRAGMA/DESCRIBEstatements run; keywords inside string literals and comments are ignored by the guard. Procedure calls need the connection'sexecPolicy: "sandbox"and run inside a rolled-back transaction. - Project Isolation: MCP requests must target known workspace project IDs.
- Localhost Only: Binds strictly to
127.0.0.1.
Keybindings
| Command | macOS | Windows / Linux |
|---|---|---|
| Go to Table (QuickPick) | Cmd + K, Cmd + G |
Ctrl + K, Ctrl + G |
| Run SQL Query | Cmd + Enter |
Ctrl + Enter |
| Save Database Edits | Cmd + S |
Ctrl + S |
| Discard Cell Edit | Escape |
Escape |
Extension Settings
| Setting | Default | Description |
|---|---|---|
querydock.debug |
false |
Enable verbose debug logging to output channel. |
querydock.defaultPageSize |
100 |
Default row count per page (25, 50, 100, 250, 500). |
querydock.enableAutoDiscovery |
true |
Auto-detect databases from workspace files. |
querydock.enableCodeLens |
true |
Display CodeLens actions above models and table definitions. |
querydock.enableMcp |
true |
Start local MCP server on 127.0.0.1. |
querydock.mcp.readOnly |
true |
Enforce strict read-only mode for MCP queries. |
querydock.readOnlyEnvironments |
["production", "prod", "live"] |
Environment tags that enforce read-only protection. |
querydock.queryHistoryLimit |
100 |
Max recent queries stored in history. |
Security & Privacy Guarantee
- No Remote Telemetry: QueryDock does not collect or transmit telemetry, user analytics, or usage statistics.
- Zero Cloud Proxies: Database traffic never leaves your local machine or local network.
- Credential Masking: Passwords and secrets are masked before ever reaching logs or UI previews.
- Content Security Policy: Webview enforces strict CSP forbidding inline scripts and remote network calls.
Support & Contributing
- 🐛 Found a bug or have a feature request? Open an issue.
- 📖 Configuration and MCP docs: github.com/heysidhant/querydock.
- ⭐ If QueryDock saves you time, please leave a review and star the GitHub repo.
License
QueryDock is free to use under the QueryDock End User License Agreement. Open-source components it includes are listed in THIRD-PARTY-NOTICES.txt.
© 2026 Sidhant Sinha