使用说明

项目简介

Text2SQL MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,专注于将自然语言转换为 SQL 查询语句。它通过 MCP 协议向 LLM 客户端提供结构化的数据库查询能力,使得 LLM 可以通过调用预定义的工具,理解用户自然语言意图并生成相应的 SQL 语句,从而实现对数据库的访问和操作。

主要功能点

  • 自然语言转SQL工具: 提供了两个核心工具,帮助 LLM 完成自然语言到 SQL 的转换:
    • 获取所需表 (getNeededTables): 根据数据库名称和自然语言描述,返回查询可能需要用到的数据表列表。
    • 获取表结构DDL (getNeededTableDdl): 根据数据库名称、自然语言描述以及表名列表,返回指定表的结构定义 (DDL),帮助 LLM 理解表结构。
  • 基于 Spring Boot: 使用 Spring Boot 框架开发,易于部署和扩展。
  • SSE 协议支持: 通过 Server-Sent Events (SSE) 协议与 MCP 客户端进行通信。

安装步骤

  1. 环境准备: 确保已安装 JDK (Java Development Kit) 和 Maven。
  2. 下载代码: 从 GitHub 仓库 https://github.com/mariaccc/text2sql-mcp-server 克隆代码到本地。
  3. 配置数据库连接:
    • 方式一:修改 'application.yml' 文件
      • 打开 'application.yml' 文件,根据您的 MySQL 数据库配置,修改 'datasource' 部分的连接信息('url', 'username', 'password')。
      • 确保数据库连接信息正确,例如:
        datasource:
          url: jdbc:mysql://your_db_host:3306/your_db_name?characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
          username: your_db_username
          password: your_db_password
    • 方式二:修改 'docker-compose.yaml' 文件 (使用 Docker 部署)
      • 如果您选择使用 Docker 部署,可以修改 'docker-compose.yaml' 文件中的 'environment' 部分,配置数据库连接信息。
      • 确保环境变量配置正确,例如:
        environment:
          SPRING_DATASOURCE_URL: "jdbc:mysql://your_db_host:3306/your_db_name?characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"
          SPRING_DATASOURCE_USERNAME: "your_db_username"
          SPRING_DATASOURCE_PASSWORD: "your_db_password"
  4. 启动服务器:
    • 方式一:直接运行 (开发环境)
      • 在代码根目录下,使用 Maven 命令 'mvn spring-boot:run' 启动服务器。
    • 方式二:使用 Docker 部署
      • 确保已安装 Docker 和 Docker Compose。
      • 在代码根目录下,使用命令 'docker compose up --build -d' 构建并启动 Docker 容器。

服务器配置

对于 MCP 客户端(例如 cherry-studio),您需要配置连接到 Text2SQL MCP Server 的信息。以下是一个 JSON 格式的配置示例,您需要将其添加到您的 MCP 客户端配置中。

{
  "name": "text2sql-mcp-server",  // MCP 服务器名称,可以自定义
  "type": "sse",                   // 连接类型,本服务器使用 SSE 协议
  "description": "Text2SQL MCP Server", // 服务器描述,可以自定义
  "isActive": true,                // 是否启用该服务器
  "baseUrl": "http://localhost:8080/sse" // 服务器 SSE 基地址,默认为 http://localhost:8080/sse
}

配置参数说明:

  • 'name': MCP 服务器的名称,在客户端中用于标识不同的服务器连接。
  • 'type': 连接类型,指定客户端与服务器通信的协议,这里设置为 'sse' 表示使用 Server-Sent Events。
  • 'description': 对该服务器的简要描述,方便用户理解其用途。
  • 'isActive': 指示该服务器配置是否启用。设置为 'true' 表示启用,客户端会尝试连接该服务器。
  • 'baseUrl': MCP 服务器的基地址和 SSE 协议的端点。客户端将通过此 URL 与服务器建立 SSE 连接。请确保与服务器实际运行的地址和端口一致。如果服务器部署在不同的主机或端口,请相应修改此地址。

基本使用方法

  1. 启动 Text2SQL MCP Server 并确保成功运行。
  2. 配置并启动 MCP 客户端 (例如 cherry-studio),并添加上述服务器配置。
  3. 在 MCP 客户端中,您可以利用配置的 "text2sql-mcp-server" 连接,向 LLM 发送包含自然语言查询指令的请求。
  4. 服务器将接收请求,并通过预定义的 "getNeededTables" 和 "getNeededTableDdl" 工具,辅助 LLM 将自然语言转换为 SQL 查询语句。
  5. LLM 可以调用这些工具,获取数据库表信息和结构,最终生成并执行 SQL 查询,从而实现数据库操作。

示例提示词模板:

数据库:您的数据库名称 (例如: mysql)
查询:您想要查询的内容的自然语言描述 (例如: 查询所有用户的姓名和年龄)

LLM 可以根据这些提示词,调用 Text2SQL MCP Server 提供的工具来辅助生成 SQL 查询。

信息

分类

AI与计算