项目简介
该项目是基于Spring AI构建的MCP服务器实现,旨在通过Model Context Protocol (MCP) 为大型语言模型(LLM)客户端提供访问特定功能的能力。它主要集成了对MySQL数据库的操作工具和调用外部面试题API的工具。
主要功能点
- MySQL数据库操作:
- 获取指定数据库中的所有表名及其注释。
- 获取指定表的字段名及其注释。
- 执行任意SQL查询语句,并以JSON格式返回结果。
- 执行SQL创建表语句。
- 执行SQL插入或更新数据语句。
- 外部API调用:
- 根据搜索词调用外部API(例如“面试鸭”)搜索相关的面试题目,并返回题目链接列表。
- 作为MCP服务器: 注册上述功能为LLM可调用的工具,并通过兼容MCP的机制(如SSE传输协议,通过Stdio或网络端口通信)与客户端进行交互。
安装步骤
- 克隆仓库: 将本项目代码克隆到本地。
- 设置MySQL数据库: 确保你有一个可用的MySQL数据库实例。根据代码中的硬编码或配置文件,可能需要创建一个名为 'mcp_server' 的数据库,并根据 README 中的截图执行初始化SQL脚本。
- 配置数据库连接: 在服务器项目的资源文件(如 'src/main/resources/application.properties' 或 'application.yml')中配置数据库连接信息(URL, username, password)。查找类似 'mysql.url', 'mysql.username', 'mysql.password' 的配置项。
- 配置外部API (可选): 如果需要使用外部API功能,在资源文件中配置相应的URL(如 'endpoint.mianshiya.searchQuestion', 'endpoint.mianshiya.resultLink')。
- 构建项目: 使用Maven或Gradle构建Spring Boot项目。例如,在项目根目录执行 'mvn clean package'。这会生成可执行的JAR文件(例如 'mcp-server-sse-.jar' 或 'mcp-server-.jar')。
服务器配置 (用于MCP客户端)
MCP客户端(如Cherry Studio)需要配置如何启动并连接到此MCP服务器进程。这通常在客户端的用户界面中完成。你需要配置以下信息:
- 服务名称 (Server Name): 给这个服务起一个易于识别的名称,例如 'MySQL Tools' 或 '面试鸭搜索'。
- 启动命令 (Command): 启动服务器的可执行命令,通常是Java运行时命令 'java'。
- 参数 (Args): 传递给启动命令的参数,指向之前构建生成的服务器JAR文件。例如:'-jar /path/to/your/mcp-server-sse-*.jar'。确保填写的是你实际构建出来的JAR文件路径。
- 可能还需要配置连接协议(如 SSE, Stdio, WebSocket)以及相应的地址/端口,具体取决于服务器代码实现和客户端支持。根据代码结构和 README,它可能通过 Stdio 或 SSE 与客户端通信。
基本使用方法
一旦MCP服务器在客户端中配置并成功启动,LLM客户端就能够发现服务器暴露的工具能力。你可以通过自然语言指令让LLM调用这些工具:
- 询问LLM:“帮我看看数据库里有哪些表?” LLM可能会调用 'getTables' 工具。
- 询问LLM:“users表有哪些字段?” LLM可能会调用 'getColumsOfTable' 工具。
- 询问LLM:“执行SQL查询:SELECT * FROM products WHERE price > 100。” LLM可能会调用 'query' 工具。
- 询问LLM:“搜索一下关于Java多线程的面试题。” LLM可能会调用 'questionSearch' 工具。
LLM会根据你的指令选择合适的工具,组织参数,调用MCP服务器执行工具功能,并将返回结果用于生成回答。
信息
分类
数据库与文件