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.7.tar.gz (11.8 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.7-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: db_mcp_server-1.0.7.tar.gz
  • Upload date:
  • Size: 11.8 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.7.tar.gz
Algorithm Hash digest
SHA256 abd75963cf898ef75eb1039b77a5857107d0427237bc0104ed2f36046201a740
MD5 bd9a5a7f712342a837fcbe8b5dffe86e
BLAKE2b-256 5c7fcb75b77b5198c1fbadbab2f7d1293dc7ffb1d63361e08a951edcd88acd7e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: db_mcp_server-1.0.7-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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 7bfe78702645400dcf26827bb2f9140e77ff60549131450980f08b81b7f66e7e
MD5 0c58a4017f5675377ee1e7277b7c086e
BLAKE2b-256 a55e7691893e900cfcb4ab9a226007f30eb68be2d05ae3fcd1cff84b2c1224f5

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