Skip to main content
Glama
stucchi

db-mcp-server

by stucchi

db-mcp-server

MCP server for MySQL, PostgreSQL, MongoDB, and SQLite databases. One instance per database, no Docker required.

Installation

uvx db-mcp-server

Configuration

Configure via environment variables. Each instance connects to a single database.

MySQL

Variable

Required

Default

Description

DB_TYPE

Yes

mysql

DB_DATABASE

Yes

Database name

DB_PASSWORD

Yes

Password

DB_HOST

No

localhost

Host

DB_PORT

No

3306

Port

DB_USER

No

root

User

DB_MODE

No

read-only

read-only or read-write

PostgreSQL

Variable

Required

Default

Description

DB_TYPE

Yes

postgresql

DB_DATABASE

Yes

Database name

DB_PASSWORD

Yes

Password

DB_HOST

No

localhost

Host

DB_PORT

No

5432

Port

DB_USER

No

postgres

User

DB_MODE

No

read-only

read-only or read-write

MongoDB

Variable

Required

Default

Description

DB_TYPE

Yes

mongodb

DB_DATABASE

Yes

Database name

DB_URL

Yes

Connection URL (mongodb://...)

DB_MODE

No

read-only

read-only or read-write

SQLite

Variable

Required

Default

Description

DB_TYPE

Yes

sqlite

DB_PATH

Yes

Path to .db file (local or remote with SSH)

DB_DATABASE

No

filename

Display name

DB_MODE

No

read-only

read-only or read-write

SSH Tunnel (MySQL / PostgreSQL)

Optionally connect through an SSH bastion host. Set SSH_HOST to activate.

For SQLite over SSH, the remote .db file is downloaded via SFTP before querying. In read-write mode, changes are uploaded back on shutdown.

Variable

Required

Default

Description

SSH_HOST

No

SSH bastion host (activates tunneling)

SSH_PORT

No

22

SSH port

SSH_USER

No

Current OS user

SSH username

SSH_KEY

No

Path to private key (~/.ssh/id_rsa)

SSH_PASSWORD

No

SSH password (if no key)

At least one of SSH_KEY or SSH_PASSWORD is required when SSH_HOST is set. SSH tunneling is not supported for MongoDB.

Usage in .mcp.json

SQLite (local)

{
  "mcpServers": {
    "db-local": {
      "command": "uvx",
      "args": ["db-mcp-server"],
      "env": {
        "DB_TYPE": "sqlite",
        "DB_PATH": "/path/to/database.db"
      }
    }
  }
}

SQLite over SSH

{
  "mcpServers": {
    "db-remote": {
      "command": "uvx",
      "args": ["db-mcp-server"],
      "env": {
        "DB_TYPE": "sqlite",
        "DB_PATH": "/remote/path/to/database.db",
        "SSH_HOST": "server.example.com",
        "SSH_USER": "deploy",
        "SSH_KEY": "~/.ssh/id_rsa"
      }
    }
  }
}
{
  "mcpServers": {
    "db-prod": {
      "command": "uvx",
      "args": ["db-mcp-server"],
      "env": {
        "DB_TYPE": "mysql",
        "DB_MODE": "read-only",
        "DB_HOST": "db.example.com",
        "DB_PORT": "3306",
        "DB_USER": "root",
        "DB_PASSWORD": "secret",
        "DB_DATABASE": "myapp"
      }
    }
  }
}

With SSH tunnel

{
  "mcpServers": {
    "db-behind-bastion": {
      "command": "uvx",
      "args": ["db-mcp-server"],
      "env": {
        "DB_TYPE": "postgresql",
        "DB_HOST": "10.0.0.5",
        "DB_PORT": "5432",
        "DB_USER": "postgres",
        "DB_PASSWORD": "secret",
        "DB_DATABASE": "myapp",
        "SSH_HOST": "bastion.example.com",
        "SSH_USER": "deploy",
        "SSH_KEY": "~/.ssh/id_rsa"
      }
    }
  }
}

For multiple databases, add multiple instances:

{
  "mcpServers": {
    "db-prod": {
      "command": "uvx",
      "args": ["db-mcp-server"],
      "env": { "DB_TYPE": "mysql", "DB_DATABASE": "prod", "..." : "..." }
    },
    "db-analytics": {
      "command": "uvx",
      "args": ["db-mcp-server"],
      "env": { "DB_TYPE": "postgresql", "DB_DATABASE": "analytics", "..." : "..." }
    },
    "db-staging": {
      "command": "uvx",
      "args": ["db-mcp-server"],
      "env": { "DB_TYPE": "mongodb", "DB_DATABASE": "staging", "..." : "..." }
    }
  }
}

Tools

MySQL

  • query — Execute read-only SQL (SELECT, SHOW, DESCRIBE, EXPLAIN, WITH)

  • execute — Execute write SQL (INSERT, UPDATE, DELETE) — requires DB_MODE=read-write

  • describe — Describe table structure

  • list_tables — List all tables

  • status — Show connection info

PostgreSQL

  • query — Execute read-only SQL (SELECT, SHOW, DESCRIBE, EXPLAIN, WITH)

  • execute — Execute write SQL (INSERT, UPDATE, DELETE) — requires DB_MODE=read-write

  • describe — Describe table structure (column info from information_schema)

  • list_tables — List all tables in the public schema

  • status — Show connection info

SQLite

  • query — Execute read-only SQL (SELECT, SHOW, DESCRIBE, EXPLAIN, WITH)

  • execute — Execute write SQL (INSERT, UPDATE, DELETE) — requires DB_MODE=read-write

  • describe — Describe table structure (PRAGMA table_info)

  • list_tables — List all tables

  • status — Show connection info

MongoDB

  • query — Find documents in a collection

  • describe — Collection stats ($collStats)

  • list_collections — List all collections

  • aggregate — Execute aggregation pipelines ($out/$merge blocked on read-only)

  • status — Show connection info

License

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/stucchi/db-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server