通用数据库MCP服务器
连接到多种数据库类型的模型上下文协议(MCP)服务器(MSSQL, PostgreSQL, MySQL).它提供对列表表、检查模式和运行查询的只读访问。
特性
- 多数据库支持:通过配置连接到MSSQL、PostgreSQL或MySQL。
- 工具名称间距:支持
TOOL_PREFIX运行多个服务器实例(例如。,mssql_,pg_)没有碰撞。 - 安全第一:强制执行只读权限。积木
UPDATE,DELETE,DROP等等。 - 高效:为每个驱动程序使用本机连接池。
工具
list_tables:列出数据库中的所有基表。describe_table:获取特定表的架构信息(列、类型)。sql_query:执行只读SQL查询。
配置
配置是通过环境变量处理的。
常用变量
| 变量 | 描述 |
|---|---|
DB_TYPE | mssql (默认), postgres, mysql |
TOOL_PREFIX | 工具名称的可选前缀(例如。, pg_) |
DB_HOST | 数据库主机(或 DB_SERVER) |
DB_PORT | 数据库端口 |
DB_USER | 用户名 |
DB_PASSWORD | 密码 |
DB_DATABASE | 数据库名称 |
MSSQL特定
DB_ENCRYPT:设置为true/false(默认值true)DB_TRUST_SERVER_CERTIFICATE:设置为true/false(默认值false)
设置和构建
- 安装依赖项
npm install- 构建
npm run build- 本地运行(HTTP模式)
# Create a .env file first
TRANSPORT=http PORT=3000 node build/index.js- 本地运行(stdio MCP模式)
TRANSPORT=stdio node build/index.jsHTTP部署
此服务器现在支持MCP over Streamable HTTP,用于Dockploy等远程部署平台。
HTTP环境变量
| 变量 | 描述 |
|---|---|
TRANSPORT | http 对于网络部署, stdio 用于基于本地命令的MCP使用 |
HOST | HTTP模式的绑定地址。违约: 0.0.0.0 |
PORT | HTTP模式的侦听端口。违约: 3000 |
HTTP端点
POST /mcp:MCP可流式HTTP端点GET /health:健康检查端点
码头工人
docker build -t generic-database-mcp-server .
docker run --rm -p 3000:3000 \
-e TRANSPORT=http \
-e PORT=3000 \
-e DB_TYPE=mssql \
-e DB_HOST=host.docker.internal \
-e DB_PORT=1433 \
-e DB_USER=sa \
-e DB_PASSWORD=yourPassword \
-e DB_DATABASE=yourDatabase \
generic-database-mcp-server对于Dockploy,将流量路由到集装箱港口 3000 并配置服务健康检查 /health.
MCP客户端配置
您可以为不同的数据库运行此服务器的多个实例。
例子: mcp_config.json
{
"mcpServers": {
"mssql-primary": {
"command": "node",
"args": ["/absolute/path/to/build/index.js"],
"env": {
"TRANSPORT": "stdio",
"TOOL_PREFIX": "mssql_",
"DB_TYPE": "mssql",
"DB_HOST": "154.113.161.35",
"DB_PORT": "2945",
"DB_USER": "metro_dba",
"DB_PASSWORD": "yourPassword",
"DB_DATABASE": "HMO_CBA",
"DB_TRUST_SERVER_CERTIFICATE": "true"
}
},
"postgres-local": {
"command": "node",
"args": ["/absolute/path/to/build/index.js"],
"env": {
"TRANSPORT": "stdio",
"TOOL_PREFIX": "pg_",
"DB_TYPE": "postgres",
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_USER": "postgres",
"DB_PASSWORD": "yourPassword",
"DB_DATABASE": "analytics"
}
}
}
}此配置公开了以下工具:
mssql_list_tablesmssql_sql_querypg_list_tablespg_sql_query
