关于 DB MCP Server
DB MCP Server 将 MCP 客户端连接到 MySQL、PostgreSQL、MongoDB 或 SQLite 数据库,每个实例对应一个数据库。它提供查询和结构检查工具,并支持可选写入权限,以及部分数据库的 SSH 隧道连接。
主要功能
- 01支持 MySQL、PostgreSQL、MongoDB 和 SQLite
- 02数据库查询与结构检查
- 03可选读写模式
- 04支持 MySQL 和 PostgreSQL 的 SSH 隧道
- 05通过 SSH 访问 SQLite
适用场景
- 01通过 MCP 客户端查询数据库
- 02检查表或集合结构
- 03连接 SSH 堡垒机后的数据库
MCP 相关
该服务向 MCP 客户端提供数据库查询、结构检查、列表和状态工具;配置为读写模式后可使用写入工具。每个实例连接一个数据库。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
mcp.json · 通用配置
启动命令
uvx db-mcp-server需要配置的环境变量
DB_TYPEDatabase typeDB_DATABASEDatabase nameDB_MODEAccess modeDB_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 portSSH_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
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-only | read-only 或 read-write |
PostgreSQL
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
DB_TYPE | 是 | — | postgresql |
DB_DATABASE | 是 | — | 数据库名称 |
DB_PASSWORD | 是 | — | 密码 |
DB_HOST | 否 | localhost | 主机 |
DB_PORT | 否 | 5432 | 端口 |
DB_USER | 否 | postgres | 用户 |
DB_MODE | 否 | read-only | read-only 或 read-write |
MongoDB
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
DB_TYPE | 是 | — | mongodb |
DB_DATABASE | 是 | — | 数据库名称 |
DB_URL | 是 | — | 连接 URL(mongodb://...) |
DB_MODE | 否 | read-only | read-only 或 read-write |
SQLite
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
DB_TYPE | 是 | — | sqlite |
DB_PATH | 是 | — | .db 文件路径(本地路径或通过 SSH 连接的远程路径) |
DB_DATABASE | 否 | filename | 显示名称 |
DB_MODE | 否 | read-only | read-only 或 read-write |
SSH 隧道(MySQL / PostgreSQL)
可选择通过 SSH 堡垒主机连接。设置 SSH_HOST 即可启用。
对于 通过 SSH 访问的 SQLite,查询前会通过 SFTP 下载远程 .db 文件。在 read-write 模式下,关闭时会将更改上传回去。
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
SSH_HOST | 否 | — | SSH 堡垒主机(启用隧道) |
SSH_PORT | 否 | 22 | SSH 端口 |
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
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。