Skip to main content

MCP server for MySQL, PostgreSQL, and MongoDB databases — one instance per database, no Docker required

Project description

db-mcp-server

MCP server for MySQL, PostgreSQL, and MongoDB 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

SSH Tunnel (MySQL / PostgreSQL)

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

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

{
  "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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

db_mcp_server-1.0.8.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

db_mcp_server-1.0.8-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file db_mcp_server-1.0.8.tar.gz.

File metadata

  • Download URL: db_mcp_server-1.0.8.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for db_mcp_server-1.0.8.tar.gz
Algorithm Hash digest
SHA256 ac992bca368a8c2123a03cf744c08cbac29de126cbce52e82203f032dd3a4d60
MD5 0f702d91cf01b36df4bf7d7458c4c19d
BLAKE2b-256 469488e4276955b180e87b7ceddc0036b2d0fda42db6c7e1fa0ba98567da633e

See more details on using hashes here.

File details

Details for the file db_mcp_server-1.0.8-py3-none-any.whl.

File metadata

  • Download URL: db_mcp_server-1.0.8-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for db_mcp_server-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 478bdb5137960e2e30af7dc4bbd3cf24c1f235f71f6c1156cc456f47beab98e0
MD5 0a8536167322edc059441b202498c52d
BLAKE2b-256 4f1eb5455f47388e32df0293c60003e8b41a489ac0abd8a5dd68afc4f9aaa7ab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page