MCPcopy Index your code
hub / github.com/bytebase/dbhub

github.com/bytebase/dbhub @main sqlite

repository ↗ · DeepWiki ↗
854 symbols 2,094 edges 184 files 136 documented · 16%
README

[!NOTE]
Brought to you by Bytebase, open-source database DevSecOps platform.

DBHub Logo

            +------------------+    +--------------+    +------------------+
            |                  |    |              |    |                  |
            |                  |    |              |    |                  |
            |  Claude Desktop  +--->+              +--->+    PostgreSQL    |
            |                  |    |              |    |                  |
            |  Claude Code     +--->+              +--->+    SQL Server    |
            |                  |    |              |    |                  |
            |  Cursor          +--->+    DBHub     +--->+    SQLite        |
            |                  |    |              |    |                  |
            |  VS Code         +--->+              +--->+    MySQL         |
            |                  |    |              |    |                  |
            |  Copilot CLI     +--->+              +--->+    MariaDB       |
            |                  |    |              |    |                  |
            |                  |    |              |    |                  |
            +------------------+    +--------------+    +------------------+
                 MCP Clients           MCP Server             Databases

DBHub is a zero-dependency, token efficient MCP server implementing the Model Context Protocol (MCP) server interface. This lightweight gateway allows MCP-compatible clients to connect to and explore different databases:

  • Local Development First: Zero dependency, token efficient with just two MCP tools to maximize context window
  • Multi-Database: PostgreSQL, MySQL, MariaDB, SQL Server, and SQLite through a single interface
  • Multi-Connection: Connect to multiple databases simultaneously with TOML configuration
  • Guardrails: Read-only mode, row limiting, and query timeout to prevent runaway operations
  • Secure Access: SSH tunneling and SSL/TLS encryption

Supported Databases

PostgreSQL, MySQL, SQL Server, MariaDB, and SQLite.

MCP Tools

DBHub implements MCP tools for database operations:

  • execute_sql: Execute SQL queries with transaction support and safety controls
  • search_objects: Search and explore database schemas, tables, columns, indexes, and procedures with progressive disclosure
  • Custom Tools: Define reusable, parameterized SQL operations in your dbhub.toml configuration file

Workbench

DBHub includes a built-in web interface for interacting with your database tools. It provides a visual way to execute queries, run custom tools, and view request traces without requiring an MCP client.

workbench

Installation

See the full Installation Guide for detailed instructions.

Quick Start

Docker:

docker run --rm --init \
   --name dbhub \
   --publish 8080:8080 \
   bytebase/dbhub \
   --transport http \
   --port 8080 \
   --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"

NPM: (requires Node.js >= 22.5.0)

npx @bytebase/dbhub@latest --transport http --port 8080 --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"

Demo Mode:

npx @bytebase/dbhub@latest --transport http --port 8080 --demo

Restrict to loopback (recommended for production):

npx @bytebase/dbhub@latest --transport http --host 127.0.0.1 --port 8080 --demo

The HTTP transport defaults to --host 0.0.0.0, exposing DBHub on every network interface. For production, bind to 127.0.0.1 and front DBHub with a reverse proxy (nginx/Caddy) or firewall — DBHub does not authenticate HTTP clients.

The HTTP transport also has built-in DNS-rebinding protection: it only accepts requests whose Host is loopback, this machine's own hostname/IPs, or a name you allow via --allowed-hosts. If a client behind a reverse proxy or custom DNS name gets a 403, add that hostname with --allowed-hosts.

See Command-Line Options for all available parameters.

Multi-Database Setup

Connect to multiple databases simultaneously using TOML configuration files. Perfect for managing production, staging, and development databases from a single DBHub instance.

See Multi-Database Configuration for complete setup instructions.

Development

Requires Node.js >= 22.5.0 (DBHub uses the built-in node:sqlite module).

# Install dependencies
pnpm install

# Run in development mode
pnpm dev

# Build and run for production
pnpm build && pnpm start --transport stdio --dsn "postgres://user:password@localhost:5432/dbname"

See Testing and Debug.

Contributors

Star History

Star History Chart

Extension points exported contracts — how you extend this code

DSNParser (Interface)
(no doc) [10 implementers]
src/connectors/interface.ts
ISafeURL (Interface)
(no doc) [2 implementers]
src/utils/safe-url.ts
SSHTunnel (Interface)
(no doc)
frontend/src/types/datasource.ts
SSHConfig (Interface)
(no doc)
src/types/config.ts
Request (Interface)
(no doc)
src/requests/store.ts
paths (Interface)
(no doc)
src/api/openapi.d.ts
TestContainer (Interface)
(no doc) [10 implementers]
src/connectors/__tests__/shared/integration-test-base.ts
RequestMetadata (Interface)
(no doc)
src/utils/tool-handler-helpers.ts

Core symbols most depended-on inside this repo

executeSQL
called by 267
src/connectors/interface.ts
cn
called by 232
frontend/src/lib/utils.ts
loadTomlConfig
called by 101
src/config/toml-loader.ts
isReadOnlySQL
called by 92
src/utils/allowed-keywords.ts
stripCommentsAndStrings
called by 76
src/utils/sql-parser.ts
add
called by 67
src/requests/store.ts
quoteIdentifier
called by 61
src/utils/identifier-quoter.ts
parse
called by 55
src/connectors/interface.ts

Shape

Function 489
Method 228
Interface 74
Class 63

Languages

TypeScript100%

Modules by API surface

src/connectors/interface.ts36 symbols
src/connectors/sqlite/index.ts25 symbols
frontend/src/components/ui/sidebar.tsx25 symbols
src/connectors/sqlserver/index.ts23 symbols
src/connectors/mysql/index.ts23 symbols
src/connectors/mariadb/index.ts23 symbols
src/connectors/postgres/index.ts22 symbols
src/utils/sql-parser.ts20 symbols
src/connectors/manager.ts20 symbols
frontend/src/components/ui/combobox.tsx18 symbols
src/config/env.ts17 symbols
src/connectors/__tests__/shared/integration-test-base.ts16 symbols

Dependencies from manifests, versioned

@base-ui/react1.0.0 · 1×
@codemirror/commands6.10.1 · 1×
@codemirror/lang-sql6.10.0 · 1×
@codemirror/state6.5.3 · 1×
@codemirror/view6.39.5 · 1×
@iarna/toml2.2.5 · 1×
@modelcontextprotocol/sdk1.25.1 · 1×
@tailwindcss/vite4.1.18 · 1×
@tanstack/react-virtual3.13.13 · 1×
@testcontainers/mariadb11.0.3 · 1×
@testcontainers/mssqlserver11.0.3 · 1×
@testcontainers/mysql11.0.3 · 1×

Datastores touched

(mysql)Database · 1 repos
dbnameDatabase · 1 repos
dbDatabase · 1 repos
dbDatabase · 1 repos
dbnameDatabase · 1 repos
mydbDatabase · 1 repos
testdbDatabase · 1 repos
appdbDatabase · 1 repos

For agents

$ claude mcp add dbhub \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact