mcpField
D
DB MCP Server

DB MCP Server

本地服务
github.com/stucchi数据库231 周前更新

关于 DB MCP Server

DB MCP Server 将 MCP 客户端连接到 MySQL、PostgreSQL、MongoDB 或 SQLite 数据库,每个实例对应一个数据库。它提供查询和结构检查工具,并支持可选写入权限,以及部分数据库的 SSH 隧道连接。

主要功能

  1. 01支持 MySQL、PostgreSQL、MongoDB 和 SQLite
  2. 02数据库查询与结构检查
  3. 03可选读写模式
  4. 04支持 MySQL 和 PostgreSQL 的 SSH 隧道
  5. 05通过 SSH 访问 SQLite

适用场景

  1. 01通过 MCP 客户端查询数据库
  2. 02检查表或集合结构
  3. 03连接 SSH 堡垒机后的数据库

MCP 相关

该服务向 MCP 客户端提供数据库查询、结构检查、列表和状态工具;配置为读写模式后可使用写入工具。每个实例连接一个数据库。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"stucchi-db": {
"command": "uvx",
"args": [
"db-mcp-server"
],
"env": {
"DB_TYPE": "<DB_TYPE>",
"DB_DATABASE": "<DB_DATABASE>",
"DB_MODE": "<DB_MODE>",
"DB_HOST": "<DB_HOST>",
"DB_PORT": "<DB_PORT>",
"DB_USER": "<DB_USER>",
"DB_PASSWORD": "<DB_PASSWORD>",
"DB_URL": "<DB_URL>",
"SSH_HOST": "<SSH_HOST>",
"SSH_PORT": "<SSH_PORT>",
"SSH_USER": "<SSH_USER>",
"SSH_KEY": "<SSH_KEY>",
"SSH_PASSWORD": "<SSH_PASSWORD>"
}
}
}
}
启动命令uvx db-mcp-server
需要配置的环境变量
DB_TYPEDatabase type
DB_DATABASEDatabase name
DB_MODEAccess mode
DB_HOSTDatabase host (MySQL/PostgreSQL)
DB_PORTDatabase port (MySQL: 3306, PostgreSQL: 5432)
DB_USERDatabase user (MySQL default: root, PostgreSQL default: postgres)
DB_PASSWORD密钥Database password (MySQL/PostgreSQL, optional)
DB_URL密钥MongoDB connection URL (required for MongoDB, e.g. mongodb://...)
SSH_HOSTSSH bastion host for tunneling (MySQL/PostgreSQL only)
SSH_PORTSSH port
SSH_USERSSH username (default: current OS user)
SSH_KEY密钥Path to SSH private key (e.g. ~/.ssh/id_rsa)
SSH_PASSWORD密钥SSH password (if no key provided)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypidb-mcp-server1.2.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

db-mcp-server

适用于 MySQL、PostgreSQL、MongoDB 和 SQLite 数据库的 MCP 服务。每个数据库运行一个实例,无需 Docker。

安装

uvx db-mcp-server

配置

通过环境变量进行配置。每个实例连接到一个数据库。

MySQL
变量必需默认值描述
DB_TYPE是—mysql
DB_DATABASE是—数据库名称
DB_PASSWORD是—密码
DB_HOST否localhost主机
DB_PORT否3306端口
DB_USER否root用户
DB_MODE否read-onlyread-only 或 read-write
PostgreSQL
变量必需默认值描述
DB_TYPE是—postgresql
DB_DATABASE是—数据库名称
DB_PASSWORD是—密码
DB_HOST否localhost主机
DB_PORT否5432端口
DB_USER否postgres用户
DB_MODE否read-onlyread-only 或 read-write
MongoDB
变量必需默认值描述
DB_TYPE是—mongodb
DB_DATABASE是—数据库名称
DB_URL是—连接 URL(mongodb://...)
DB_MODE否read-onlyread-only 或 read-write
SQLite
变量必需默认值描述
DB_TYPE是—sqlite
DB_PATH是—.db 文件路径(本地路径或通过 SSH 连接的远程路径)
DB_DATABASE否filename显示名称
DB_MODE否read-onlyread-only 或 read-write
SSH 隧道(MySQL / PostgreSQL)

可选择通过 SSH 堡垒主机连接。设置 SSH_HOST 即可启用。

对于 通过 SSH 访问的 SQLite,查询前会通过 SFTP 下载远程 .db 文件。在 read-write 模式下,关闭时会将更改上传回去。

变量必需默认值描述
SSH_HOST否—SSH 堡垒主机(启用隧道)
SSH_PORT否22SSH 端口
SSH_USER否当前 OS 用户SSH 用户名
SSH_KEY否—私钥路径(~/.ssh/id_rsa)
SSH_PASSWORD否—SSH 密码(未使用密钥时)

设置 SSH_HOST 时,必须至少提供 SSH_KEY 或 SSH_PASSWORD 之一。MongoDB 不支持 SSH 隧道。

在 .mcp.json 中使用

SQLite(本地)
{
  "mcpServers": {
    "db-local": {
      "command": "uvx",
      "args": ["db-mcp-server"],
      "env": {
        "DB_TYPE": "sqlite",
        "DB_PATH": "/path/to/database.db"
      }
    }
  }
}
通过 SSH 访问 SQLite
{
  "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"
      }
    }
  }
}
使用 SSH 隧道
{
  "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"
      }
    }
  }
}

如需连接多个数据库,请添加多个实例:

{
  "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", "..." : "..." }
    }
  }
}

工具

MySQL
  • query — 执行只读 SQL(SELECT、SHOW、DESCRIBE、EXPLAIN、WITH)
  • execute — 执行写入 SQL(INSERT、UPDATE、DELETE)——需要 DB_MODE=read-write
  • describe — 描述表结构
  • list_tables — 列出所有表
  • status — 显示连接信息
PostgreSQL
  • query — 执行只读 SQL(SELECT、SHOW、DESCRIBE、EXPLAIN、WITH)
  • execute — 执行写入 SQL(INSERT、UPDATE、DELETE)——需要 DB_MODE=read-write
  • describe — 描述表结构(从 information_schema 获取列信息)
  • list_tables — 列出 public schema 中的所有表
  • status — 显示连接信息
SQLite
  • query — 执行只读 SQL(SELECT、SHOW、DESCRIBE、EXPLAIN、WITH)
  • execute — 执行写入 SQL(INSERT、UPDATE、DELETE)——需要 DB_MODE=read-write
  • describe — 描述表结构(PRAGMA table_info)
  • list_tables — 列出所有表
  • status — 显示连接信息
MongoDB
  • query — 查找集合中的文档
  • describe — 集合统计信息($collStats)
  • list_collections — 列出所有集合
  • aggregate — 执行聚合管道(只读模式下禁止使用 $out/$merge)
  • status — 显示连接信息

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。