项目简介

Database MCP Service 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为 LLM 应用提供数据库上下文信息和操作能力。它支持多种数据库类型,并提供工具供 LLM 客户端调用,以查询数据库信息和执行 SQL 语句。

主要功能点

  • 多数据库支持: 支持 MySQL, PostgreSQL, SQLite, SQL Server, ClickHouse 等多种主流数据库。
  • 灵活配置: 支持通过 YAML 配置文件、命令行参数或环境变量进行配置。
  • MCP 协议集成: 完全实现了 MCP 协议,可以作为 MCP 服务器使用,与 MCP 客户端无缝对接。
  • 数据库操作工具: 内置 'get_tables', 'get_table_detail', 'execute_sql' 等工具,方便 LLM 客户端进行数据库信息查询和数据操作。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/xavieryang007/database-mcp
    cd database-mcp
  2. 安装依赖:
    确保已安装 Go 语言环境,然后执行以下命令下载依赖:

    go mod tidy

服务器配置

MCP 客户端需要配置以下 JSON 信息以连接到 Database MCP Service。请根据您的数据库类型和配置修改 'args' 中的参数。

{
  "serverName": "database-mcp",
  "command": "./database-mcp",
  "args": [
    "--db-type", "数据库类型",  // 例如: mysql, postgres, sqlite, sqlserver, clickhouse,根据您使用的数据库选择
    "--db-host", "数据库主机地址", // 例如: localhost 或数据库服务器 IP 地址
    "--db-port", "数据库端口",    // 例如: MySQL 默认 3306, PostgreSQL 默认 5432
    "--db-user", "数据库用户名",
    "--db-pass", "数据库密码",
    "--db-name", "数据库名",
    "--db-ssl-mode", "SSL模式 (PostgreSQL)", // 例如: disable, require, verify-ca, verify-full,仅当数据库类型为 PostgreSQL 时需要配置
    "--db-file", "数据库文件路径 (SQLite)", // 例如: database.db,仅当数据库类型为 SQLite 时需要配置
    "--mode", "服务器模式",        // 可选: stdio 或 http,默认为 stdio。http 模式使用 SSE 协议,stdio 模式使用标准输入输出
    "--addr", "HTTP监听地址"        // 可选: 例如 :8080,仅当 mode 为 http 时需要配置,指定 HTTP 服务器监听的地址和端口
  ]
}

配置示例 (MySQL, HTTP 模式):

{
  "serverName": "database-mcp",
  "command": "./database-mcp",
  "args": [
    "--db-type", "mysql",
    "--db-host", "localhost",
    "--db-port", "3306",
    "--db-user", "root",
    "--db-pass", "password",
    "--db-name", "mydb",
    "--mode", "http",
    "--addr", ":8080"
  ]
}

基本使用方法

  1. 启动服务器:
    根据您的配置,在仓库根目录下执行启动命令。例如,对于上面的 MySQL HTTP 模式配置,可以直接执行:

    ./database-mcp --db-type mysql --db-host localhost --db-port 3306 --db-user root --db-pass password --db-name mydb --mode http --addr :8080

    或者,您可以先创建一个 'config.yaml' 文件,然后使用 '--config' 参数指定配置文件路径启动。

  2. 配置 MCP 客户端:
    在您的 MCP 客户端中,根据服务器的运行模式配置连接信息。

    • HTTP (SSE) 模式: MCP Endpoint 配置为 'http://服务器IP:端口/sse',例如 'http://127.0.0.1:8080/sse'。
    • Stdio 模式: MCP 客户端配置为使用标准输入输出与服务器进程通信。
  3. 调用 MCP 工具:
    使用 MCP 客户端调用服务器提供的工具,例如 'get_tables'、'get_table_detail' 和 'execute_sql',以获取数据库信息或执行 SQL 查询。具体工具的使用方法请参考仓库 README.md 中的 "MCP Tools" 部分。

信息

分类

数据库与文件