npm
# PostgreSQL example
npx @bytebase/dbhub@latest \
--transport http \
--port 8080 \
--dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
# Or use demo mode for testing
npx @bytebase/dbhub@latest --transport http --port 8080 --demo
# Install globally
npm install -g @bytebase/dbhub@latest
# Run the server
dbhub --transport http --port 8080 --dsn "postgres://..."
# Or use demo mode for testing
dbhub --transport http --port 8080 --demo
Minimal Installation
By default, DBHub attempts to install drivers for all supported databases (PostgreSQL, MySQL, MariaDB, SQL Server, SQLite). If you only need specific databases, you can skip the unnecessary drivers to reduce installation size.
This applies to npm install (global or local). When using npx, npm will attempt to install all optional dependencies, but some drivers may be skipped if installation fails or is not supported on your platform.
# Install with only the PostgreSQL driver
npm install -g @bytebase/dbhub@latest --omit=optional && npm install -g pg
# Install with only PostgreSQL and MySQL drivers
npm install -g @bytebase/dbhub@latest --omit=optional && npm install -g pg mysql2
Available driver packages:
pg — PostgreSQL
mysql2 — MySQL
mariadb — MariaDB
mssql — SQL Server
better-sqlite3 — SQLite
When a driver is not installed, DBHub will skip that connector at startup and log a message. All other connectors will work normally. Note that --demo mode requires the better-sqlite3 driver.
Docker
Docker Run
Docker Compose
docker run --rm --init \
--name dbhub \
--publish 8080:8080 \
bytebase/dbhub \
--transport http \
--port 8080 \
--dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
# Or use demo mode for testing
docker run --rm --init \
--name dbhub \
--publish 8080:8080 \
bytebase/dbhub \
--transport http \
--port 8080 \
--demo
When connecting to databases on your host machine from Docker, use host.docker.internal instead of localhost:--dsn "postgres://user:password@host.docker.internal:5432/dbname"
For development environments using Docker Compose, add DBHub to your docker-compose.yml:services:
dbhub:
image: bytebase/dbhub:latest
container_name: dbhub
ports:
- "8080:8080"
environment:
- DBHUB_LOG_LEVEL=info
command:
- --transport
- http
- --port
- "8080"
- --dsn
- "postgres://user:password@database:5432/dbname"
depends_on:
- database
database:
image: postgres:15-alpine
environment:
POSTGRES_PASSWORD: password
POSTGRES_DB: dbname
Client Integration
Once DBHub is installed and running, configure your MCP client to connect to it.
Claude Code
CLI
Project Configuration
User Configuration
For local database connections, use stdio transport:claude mcp add --transport stdio dbhub -- npx @bytebase/dbhub@latest --transport stdio --dsn "postgres://user:password@localhost:5432/dbname"
The -- separates Claude’s flags from DBHub’s arguments. Everything after -- is the DBHub command.
For remote or shared database servers, use HTTP transport:claude mcp add --transport http dbhub http://localhost:8080/mcp
This connects to a DBHub server running with HTTP transport:npx @bytebase/dbhub@latest --transport http --port 8080 --dsn "postgres://user:password@localhost:5432/dbname"
For project-specific database connections shared with your team, create .mcp.json in your project root.{
"mcpServers": {
"dbhub": {
"type": "stdio",
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}
Use environment variable expansion for sensitive values:{
"mcpServers": {
"dbhub": {
"type": "stdio",
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"${DATABASE_URL}"
]
}
}
}
{
"mcpServers": {
"dbhub": {
"type": "http",
"url": "http://localhost:8080/mcp"
}
}
}
For personal configuration across all projects:claude mcp add --scope user dbhub -- npx @bytebase/dbhub@latest --transport stdio --dsn "postgres://user:password@localhost:5432/dbname"
Or manually edit the user configuration file:Edit ~/.claude/settings.json and add to the mcpServers section.
Edit %USERPROFILE%\.claude\settings.json and add to the mcpServers section.
Using DBHub:
Start Claude Code in your project directory:
Verify DBHub is loaded:
References:
Claude Desktop
MacOS/Linux
Windows
Demo Mode
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}
Edit %APPDATA%\Claude\claude_desktop_config.json:{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}
For testing, you can use the built-in demo database:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--demo"
]
}
}
}
Troubleshooting:
- Verify your DSN connection string is correct
- Check that the database is accessible from your machine
- Review Claude Desktop logs:
~/Library/Logs/Claude/mcp*.log (MacOS)
References:
Cursor
One-Click Install
Stdio (Local)
HTTP (Remote)
Project-Specific
Click the link below to install DBHub in Cursor:
After installing, edit the DSN in your Cursor MCP settings to point to your database. For local database connections, use stdio transport:MacOS/Linux - Edit ~/.cursor/mcp.json:{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}
Windows - Edit %USERPROFILE%\.cursor\mcp.json:%USERPROFILE%.cursor\mcp.json
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}
For remote or shared database servers, use HTTP transport:MacOS/Linux - Edit ~/.cursor/mcp.json:{
"mcpServers": {
"dbhub": {
"url": "http://localhost:8080/mcp"
}
}
}
Windows - Edit %USERPROFILE%\.cursor\mcp.json:%USERPROFILE%.cursor\mcp.json
{
"mcpServers": {
"dbhub": {
"url": "http://localhost:8080/mcp"
}
}
}
This connects to a DBHub server running with HTTP transport:npx @bytebase/dbhub@latest --transport http --port 8080 --dsn "postgres://user:password@localhost:5432/dbname"
For project-specific database connections, create .cursor/mcp.json in your project root:{
"mcpServers": {
"project-db": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--config",
"${workspaceFolder}/dbhub.toml"
]
}
}
}
References:
VS Code
VS Code has native MCP support through GitHub Copilot. Create .vscode/mcp.json in your project root:
Stdio (Local)
HTTP (Remote)
Input Variables
Config File
For local database connections, use stdio transport:{
"servers": {
"dbhub": {
"type": "stdio",
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}
For remote or shared database servers, use HTTP transport:{
"servers": {
"dbhub": {
"type": "http",
"url": "http://localhost:8080/mcp"
}
}
}
This connects to a DBHub server running with HTTP transport:npx @bytebase/dbhub@latest --transport http --port 8080 --dsn "postgres://user:password@localhost:5432/dbname"
For sensitive data like passwords, use input variables:{
"inputs": [
{
"type": "promptString",
"id": "db-dsn",
"description": "Database connection string",
"password": true
}
],
"servers": {
"dbhub": {
"type": "stdio",
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"${input:db-dsn}"
]
}
}
}
For multi-database setups, use a config file:{
"servers": {
"dbhub": {
"type": "stdio",
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--config",
"${workspaceFolder}/dbhub.toml"
]
}
}
}
References:
GitHub Copilot CLI
Interactive
Config File
Demo Mode
Use the Copilot CLI to interactively add the MCP server:When prompted, you’ll need to provide:
- Server type: select
local (the default)
- Server name: for example,
dbhub
- Command:
npx @bytebase/dbhub@latest
- Arguments: transport (e.g.,
--transport stdio) and connection details (either --dsn connection string or --demo for the demo database)
Create or edit the configuration file ~/.copilot/mcp-config.json:~/.copilot/mcp-config.json
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}
For testing, use the built-in demo database:~/.copilot/mcp-config.json
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--demo"
]
}
}
}
References:
Codex
# Connect to your database
codex mcp add dbhub -- npx @bytebase/dbhub@latest --transport stdio --dsn "postgres://user:password@localhost:5432/dbname"
# Or use demo mode for testing
codex mcp add dbhub -- npx @bytebase/dbhub@latest --transport stdio --demo
# Connect to your database
[mcp_servers.dbhub]
command = "npx"
args = ["@bytebase/dbhub@latest", "--transport", "stdio", "--dsn", "postgres://user:password@localhost:5432/dbname"]
# Or use demo mode for testing
[mcp_servers.dbhub]
command = "npx"
args = ["@bytebase/dbhub@latest", "--transport", "stdio", "--demo"]
/mcp
🔌 MCP Tools
• dbhub
• Status: enabled
• Auth: Unsupported
• Command: npx -y @bytebase/dbhub@latest --demo
• Tools: execute_sql
• Resources: schemas (db://schemas)
• Resource templates: tables_in_schema (db://schemas/{schemaName}/tables), table_structure_in_schema (db://schemas/{schemaName}/
tables/{tableName}), indexes_in_table (db://schemas/{schemaName}/tables/{tableName}/indexes), procedures_in_schema (db://schemas/
{schemaName}/procedures), procedure_detail_in_schema (db://schemas/{schemaName}/procedures/{procedureName})
References:
Dify
DBHub must be running as an HTTP server for Dify to connect. Start DBHub with HTTP transport:
npx @bytebase/dbhub@latest --transport http --port 8080 --dsn "postgres://user:password@localhost:5432/dbname"
Configuration:
-
In Dify, navigate to Tools → MCP
-
Click Add MCP Server (HTTP)
-
Configure the server:
- Server URL:
http://localhost:8080/mcp (or your DBHub host)
- Name:
DBHub
- Server Identifier:
dbhub (permanent, max 24 characters)
-
Click save. Dify will automatically discover DBHub’s tools.
Using DBHub Tools:
Once connected, DBHub tools are available in:
- Agents: Tools appear alongside built-in tools, use “Add All” to enable all DBHub tools
- Workflows: Tools appear as available node types
Multi-Database Setup:
For multiple databases, use a config file:
npx @bytebase/dbhub@latest --transport http --port 8080 --config /path/to/dbhub.toml
Demo Mode:
For testing, use the built-in demo database:
npx @bytebase/dbhub@latest --transport http --port 8080 --demo
Limitations:
- Dify only supports HTTP transport (not stdio)
- DBHub must be network-accessible from Dify
References:
LibreChat
DBHub can be integrated with LibreChat using either stdio or Streamable HTTP transport.
mcpServers:
dbhub:
type: stdio
command: npx
args:
- -y
- "@bytebase/dbhub@latest"
- "--dsn"
- "postgres://user:password@localhost:5432/dbname"
timeout: 60000
For demo mode:mcpServers:
dbhub:
type: stdio
command: npx
args:
- -y
- "@bytebase/dbhub@latest"
- "--demo"
timeout: 60000
mcpServers:
dbhub:
type: streamable-http
url: http://host.docker.internal:8080/mcp
timeout: 60000
Docker Networking: When LibreChat runs in Docker (e.g., with docker-compose), use host.docker.internal:8080 to connect to DBHub running on your host machine. This is Docker’s special DNS name that resolves to the host’s IP address.For native installations, use http://localhost:8080/mcp instead.
References: