Skip to main content
Glama
xiaoshi7915

Universal Database MCP Server

by xiaoshi7915

通用数据库 MCP 服务器

这是一个通用的数据库 MCP (Model Context Protocol) 服务器,支持连接到各种关系型数据库系统并提供数据库结构信息和执行只读 SQL 查询。

功能特点

  • 多数据库支持:MySQL、PostgreSQL、Oracle、SQL Server和SQLite

  • 元数据访问:获取数据库表结构、字段注释、主键、索引和外键信息

  • 样例数据查看:快速查看各表数据样例

  • 只读SQL查询:安全执行任意只读SQL查询

  • 数据隐私保护:自动掩码敏感信息,保护隐私数据

  • MCP协议通信:通过标准MCP协议与大语言模型通信

  • SSE传输:使用服务器推送事件(SSE)传输,无WebSocket依赖

Related MCP server: db-mcp-server

系统要求

  • Python 3.10 或更高版本

  • 适用的数据库服务器(根据需要): MySQL、PostgreSQL、Oracle、SQL Server或SQLite

快速开始

直接安装

  1. 克隆仓库:

    git clone https://github.com/xiaoshi7915/universal-db-mcp-server.git
    cd universal-db-mcp-server
  2. 安装依赖:

    pip install -r requirements.txt
  3. 启动服务器:

    ./start.sh --db-host localhost --db-user root --db-password password --db-name mydatabase

Docker部署

  1. 构建Docker镜像:

    docker build -t universal-db-mcp-server .
  2. 运行Docker容器:

    docker run -p 8088:8088 -e DB_HOST=host.docker.internal -e DB_USER=root -e DB_PASSWORD=password -e DB_NAME=mydatabase universal-db-mcp-server

配置选项

可以通过环境变量或命令行参数配置服务器:

参数

环境变量

说明

默认值

--host

HOST

服务器主机地址

0.0.0.0

--port

PORT

服务器端口

8088

--db-type

DB_TYPE

数据库类型

mysql

--db-host

DB_HOST

数据库主机地址

localhost

--db-port

DB_PORT

数据库端口

3306

--db-user

DB_USER

数据库用户名

root

--db-password

DB_PASSWORD

数据库密码

(空)

--db-name

DB_NAME

数据库名称

(空)

--verbose

-

启用详细日志输出

false

与Claude集成

要将此服务器与Claude集成,请在claude_desktop_config.json文件中添加以下配置:

{
  "mcpServers": {
    "db": {
      "command": "/path/to/start.sh",
      "args": [
        "--db-host", "localhost",
        "--db-user", "root",
        "--db-password", "password",
        "--db-name", "mydatabase"
      ],
      "env": {
        "DB_TYPE": "mysql"
      }
    }
  }
}

Docker Compose部署

对于更完整的部署环境,可以使用Docker Compose:

version: '3'

services:
  db-mcp-server:
    build: .
    ports:
      - "8088:8088"
    environment:
      - DB_TYPE=mysql
      - DB_HOST=mysql
      - DB_PORT=3306
      - DB_USER=root
      - DB_PASSWORD=rootpassword
      - DB_NAME=testdb
    depends_on:
      - mysql

  mysql:
    image: mysql:8.0
    environment:
      - MYSQL_ROOT_PASSWORD=rootpassword
      - MYSQL_DATABASE=testdb
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  mysql-data:

安全注意事项

  • 服务器默认监听所有网络接口 (0.0.0.0),生产环境中建议只监听localhost或使用反向代理

  • 敏感信息(如密码、个人身份信息)会自动进行掩码处理,但建议在生产环境中使用只有读取权限的数据库用户

  • 仅支持只读查询,禁止修改数据库操作

许可

MIT License

贡献

欢迎提交问题和拉取请求!

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A secure multi-database MCP server supporting MySQL, PostgreSQL, and SQLite with read-only enforcement, SQL injection prevention, and tools for schema analysis, performance optimization, and visualization.
    4
    -
  • A
    license
    A
    quality
    D
    maintenance
    A multi-database MCP server supporting MySQL, PostgreSQL, MongoDB, and SQLite with read-only and read-write query capabilities, schema inspection, and SSH tunneling, all without Docker.
    5
    29 PyPI
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A lightweight MCP server for relational databases, enabling dynamic connections to PostgreSQL and MySQL, SQL execution, and transaction control.
    7
    47 npm
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A read-only MCP server that exposes SQL database access to LLMs, supporting multiple database types, compact columnar results, pagination, and file export.
    6
    17 npm
    MIT