使用说明
项目简介
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 客户端进行通信。
安装步骤
- 环境准备: 确保已安装 JDK (Java Development Kit) 和 Maven。
- 下载代码: 从 GitHub 仓库 https://github.com/mariaccc/text2sql-mcp-server 克隆代码到本地。
- 配置数据库连接:
- 方式一:修改 '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"
- 方式一:修改 'application.yml' 文件
- 启动服务器:
- 方式一:直接运行 (开发环境)
- 在代码根目录下,使用 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 连接。请确保与服务器实际运行的地址和端口一致。如果服务器部署在不同的主机或端口,请相应修改此地址。
基本使用方法
- 启动 Text2SQL MCP Server 并确保成功运行。
- 配置并启动 MCP 客户端 (例如 cherry-studio),并添加上述服务器配置。
- 在 MCP 客户端中,您可以利用配置的 "text2sql-mcp-server" 连接,向 LLM 发送包含自然语言查询指令的请求。
- 服务器将接收请求,并通过预定义的 "getNeededTables" 和 "getNeededTableDdl" 工具,辅助 LLM 将自然语言转换为 SQL 查询语句。
- LLM 可以调用这些工具,获取数据库表信息和结构,最终生成并执行 SQL 查询,从而实现数据库操作。
示例提示词模板:
数据库:您的数据库名称 (例如: mysql) 查询:您想要查询的内容的自然语言描述 (例如: 查询所有用户的姓名和年龄)
LLM 可以根据这些提示词,调用 Text2SQL MCP Server 提供的工具来辅助生成 SQL 查询。
信息
分类
AI与计算