使用说明
db-mcp服务器
用于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 |
否 | 文件名 | 显示名称 |
DB_MODE |
没有 | read-only |
read-only 或 read-write |
SSH隧道(MySQL/PostgreSQL)
可选择通过SSH堡垒主机连接。集 SSH_HOST 激活。
对于 SSH上的SQLite,遥控器 .db 文件在查询前通过SFTP下载。在 read-write 模式下,关闭时将更改上传回。
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
SSH_HOST |
否 | -- | SSH堡垒主机(激活隧道) |
SSH_PORT |
没有 | 22 |
SSH端口 |
SSH_USER |
否 | 当前操作系统用户 | SSH用户名 |
SSH_KEY |
否 | -- | 私钥路径(~/.ssh/id_rsa) |
SSH_PASSWORD |
无 | -- | SSH密码(如果没有密钥) |
至少一个 SSH_KEY 或 SSH_PASSWORD 当需要时 SSH_HOST 已设置。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
- 怎么翻译 --执行只读SQL(SELECT、SHOW、DESCRIBE、EXPLAIN、WITH)
- 执行 --执行写SQL(INSERT、UPDATE、DELETE)--需要
DB_MODE=read-write - 描述 --描述表格结构
- list_tables --列出所有表格
- 状态 --显示连接信息
PostgreSQL
- 怎么翻译 --执行只读SQL(SELECT、SHOW、DESCRIBE、EXPLAIN、WITH)
- 执行 --执行写SQL(INSERT、UPDATE、DELETE)--需要
DB_MODE=read-write - 描述 --描述表结构(来自information_schema的列信息)
- list_tables --列出公共架构中的所有表
- 状态 --显示连接信息
SQLite
- 怎么翻译 --执行只读SQL(SELECT、SHOW、DESCRIBE、EXPLAIN、WITH)
- 执行 --执行写SQL(INSERT、UPDATE、DELETE)--需要
DB_MODE=read-write - 描述 --描述表结构(PRAGMA table_info)
- list_tables --列出所有表格
- 状态 --显示连接信息
MongoDB
- 怎么翻译 --在集合中查找文档
- 描述 --收藏统计数据($collStats)
- list_collections --列出所有收藏
- 合计 --执行聚合管道($out/$merge在只读时被阻止)
- 状态 --显示连接信息
许可证
麻省理工学院