多数据库MCP服务器

一个支持多种数据库类型(MSSQL、PostgreSQL、MySQL)的Model Context Protocol服务器,提供只读访问功能,包括列出表、检查模式和运行查询。

  • by bleckcorp
  • JavaScript
  • 混合部署
  • 更新于
在 GitHub 查看 bleckcorp/Generic-Database-MCP-Server

使用说明

通用数据库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)

设置和构建

  1. 安装依赖项

    npm install
    
  2. 构建

    npm run build
    
  3. 本地运行(HTTP模式)

    # Create a .env file first
    TRANSPORT=http PORT=3000 node build/index.js
    
  4. 本地运行(stdio MCP模式)

    TRANSPORT=stdio node build/index.js
    

HTTP部署

此服务器现在支持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_tables
  • mssql_sql_query
  • pg_list_tables
  • pg_sql_query