使用说明
项目简介
本项目 'mcp-server-database-jdbc' 是一个基于 Spring Boot 和 Spring AI 构建的 MCP (Model Context Protocol) 服务器,专注于为 LLM (大型语言模型) 应用提供数据库上下文信息和操作能力。它通过定义和暴露一系列数据库相关的 工具 (Tools),使得 LLM 客户端能够安全、便捷地访问和查询数据库,从而增强 LLM 在数据分析、知识检索等方面的能力。
主要功能点
- 数据库信息查询: 提供获取数据库产品名称、版本、URL、用户名等基本信息的功能。
- 表信息查询: 允许查询指定数据库或 Schema 下的表列表,包括表名、表类型和备注信息。
- 字段信息查询: 支持根据表名查询表的字段信息,包括字段名、数据类型、大小、是否允许为空、默认值等。
- SQL 查询执行: 提供执行 SELECT SQL 查询语句的功能,并以 JSON 格式返回查询结果。
核心概念:Tool (工具)
本项目将数据库操作封装为一系列 工具 (Tools),这些工具通过 Spring AI 的 '@Tool' 注解进行定义,并由 MCP 服务器托管。LLM 客户端可以通过 MCP 协议调用这些工具,从而实现与数据库的交互。
安装步骤
-
环境准备:
- 确保已安装 JDK (Java Development Kit) 17 或更高版本。
- 确保已安装 Maven。
-
克隆仓库:
git clone https://github.com/delei/mcp-server-database-jdbc.git cd mcp-server-database-jdbc -
编译项目:
mvn clean install -
运行服务器:
mvn spring-boot:run或者,您也可以先打包成 JAR 文件再运行:
mvn package java -jar target/mcp-server-database-jdbc-*.jar
服务器配置
MCP 服务器需要配置数据库连接信息才能正常工作。您需要在 'src/main/resources/application.properties' 文件或通过环境变量配置以下属性 (以 'mcp.jdbc.' 为前缀):
# 数据库 JDBC URL mcp.jdbc.url=jdbc:mysql://localhost:3306/your_database?serverTimezone=UTC&useSSL=false # 数据库用户名 mcp.jdbc.username=your_username # 数据库密码 mcp.jdbc.password=your_password # 数据库驱动类名 (通常 Spring Boot 可以自动检测,如果需要手动指定则配置) # mcp.jdbc.driver-class-name=com.mysql.cj.jdbc.Driver
MCP 客户端配置 (JSON 格式):
MCP 客户端需要配置连接到此 MCP 服务器的信息。以下是一个 JSON 配置示例,用于配置 MCP 客户端连接到本数据库工具服务器:
{ "serverName": "database-tool-server", "command": "java", "args": [ "-jar", "path/to/mcp-server-database-jdbc-*.jar" // 请替换为实际的 JAR 文件路径 ], "description": "MCP 数据库工具服务器", "capabilities": [ "tools" // 声明服务器提供的能力为 tools ], "tools": [ // 可选,如果需要预先声明工具信息 { "name": "databaseInfo", "description": "获取数据库信息" }, { "name": "listTables", "description": "获取表信息", "parameters": { "type": "object", "properties": { "schema": { "type": "string", "description": "库名", "required": false } } } }, { "name": "listColumns", "description": "根据表名获取字段信息", "parameters": { "type": "object", "properties": { "schema": { "type": "string", "description": "库名", "required": false }, "table": { "type": "string", "description": "数据库表名", "required": true } } } }, { "name": "readQuery", "description": "执行 SELECT 查询语句", "parameters": { "type": "object", "properties": { "querySql": { "type": "string", "description": "查询语句", "required": true } } } } ] }
注意:
- 'path/to/mcp-server-database-jdbc-*.jar' 需要替换为实际打包后的 JAR 文件路径。
- 'mcp.jdbc.url', 'mcp.jdbc.username', 'mcp.jdbc.password' 等数据库连接信息需要在服务器端正确配置。
- 'capabilities' 声明了服务器提供的能力,这里声明为 'tools'。
- 'tools' 数组 (可选) 可以预先声明服务器提供的工具及其参数信息,方便 MCP 客户端理解和调用。实际使用中,MCP 客户端也可能通过服务器发现工具列表。
基本使用方法
- 启动 MCP 数据库工具服务器。
- 配置并启动 MCP 客户端,连接到该服务器。 (本仓库 不包含 MCP 客户端实现,您需要使用实现了 MCP 客户端协议的 LLM 应用或客户端工具)
- 在 MCP 客户端中,可以发现和调用服务器提供的数据库工具。 例如,您可以调用 'listTables' 工具获取数据库表列表,然后调用 'listColumns' 工具获取指定表的字段信息,或者使用 'readQuery' 工具执行 SQL 查询。
- LLM 应用可以通过 MCP 客户端与该服务器交互,利用数据库上下文信息进行更智能的应用开发。
关键词
数据库查询, SQL执行, 数据库元数据, JDBC, Spring AI
信息
分类
数据库与文件