这是一个基于Spring AI构建的MCP服务器,它将MySQL数据库的查询和操作能力作为工具暴露给LLM(大型语言模型)客户端。LLM可以通过MCP协议调用这些工具来与MySQL数据库进行交互,例如执行SQL查询、获取数据源列表等。
主要功能点
- 执行SQL语句: 支持在配置的数据库上执行任意SQL查询和更新语句,并将结果直接返回。
- 多数据源支持: 可以配置连接到多个不同的MySQL数据库实例。
- 动态数据源切换: LLM可以通过工具指定在哪个数据源上执行SQL。
- 自定义配置: 支持通过外部文件配置数据库连接信息。
安装步骤
- 确保已安装:
- JDK 21 或更高版本
- Maven 3.8.0 或更高版本
- MySQL 5.7 或更高版本(作为目标数据库)
- 克隆仓库到本地。
- 在项目根目录下执行Maven命令构建项目:
成功后会在 'target' 目录下生成一个可执行的JAR文件,例如 'mcp-mysql-server-0.0.1-SNAPSHOT.jar'。./mvnw clean package
服务器配置 (供MCP客户端使用)
MCP客户端需要配置如何启动和连接到这个MCP服务器。通常在客户端的配置文件(如 'mcp-servers.json')中进行如下配置:
- 'mcpServers': 包含所有MCP服务器配置的顶级对象。
- 'mcp-mysql-server': 这是给服务器定义的一个唯一名称,可以在客户端配置中自定义。
- 'command': 用于启动服务器的可执行命令,例如 'java'。
- 'args': 传递给 'command' 的参数列表,通常包括:
- '-jar': 指定运行JAR文件。
- '服务器JAR文件的完整路径': 这是构建步骤生成的JAR文件的实际路径,需要替换示例中的路径。
- '--datasource.config=/path/to/your-datasource.yml' (可选): 如果需要使用自定义的数据源配置文件,添加此参数并指定配置文件的实际路径。
- 'env': 环境变量,通常留空或根据需要添加。
示例配置结构 (请根据实际路径修改 'args' 中的JAR文件路径):
{ "mcpServers": { "mcp-mysql-server": { "command": "java", "args": [ "-jar", "/path/to/your/mcp-mysql-server-0.0.1-SNAPSHOT.jar", "--datasource.config=/path/to/your-datasource.yml" ], "env": {} } } }
基本使用方法
-
配置数据源: 在 'src/main/resources/datasource.yml' (或通过 '--datasource.config' 指定的外部文件) 中配置至少一个MySQL数据库连接信息。示例如下:
datasource: datasources: my_database: # 数据源名称 url: jdbc:mysql://localhost:3306/mydatabase username: your_user password: your_password default: true # 可选,标记为默认数据源 -
启动服务器: 服务器通常由MCP客户端根据上述配置自动启动。如果需要手动测试,可以运行构建生成的JAR文件:
java -jar target/mcp-mysql-server-0.0.1-SNAPSHOT.jar [--datasource.config=/path/to/your-datasource.yml] -
LLM通过工具交互: 一旦服务器运行,LLM客户端就可以通过JSON-RPC调用服务器提供的工具。该服务器提供了以下工具:
- 'listDataSources': 列出所有已配置的数据源名称。
- 'executeSql': 在所有配置的数据源上执行相同的SQL语句。
- 'executeSqlWithDataSource': 在指定名称的数据源上执行SQL语句。
LLM可以通过这些工具与数据库进行数据交互或获取数据库结构信息。
信息
分类
数据库与文件