项目简介
本项目是一个基于Spring Boot框架和Spring AI库实现的模型上下文协议 (MCP) 服务器示例。其主要目的是展示如何将现有的服务或外部API(在此例中为Weather.gov API)封装为可供大型语言模型(LLM) 客户端通过MCP协议调用的工具。
主要功能点
- 注册和管理一组天气相关的工具(例如:按经纬度查询天气、按城市查询天气、获取详细预报、查询天气警报等)。
- 通过标准化的JSON-RPC协议接收LLM客户端的请求,调用相应的内部工具方法。
- 将工具方法的执行结果返回给LLM客户端。
- 利用Spring AI的MCP服务器功能处理协议细节。
安装步骤
- 确保您已安装Java开发工具包 (JDK) 和Maven。
- 克隆或下载本项目代码。
- 在项目根目录打开终端。
- 执行构建命令:'./mvnw clean install' (Windows用户可能需要使用 'mvnw clean install')
- 执行打包命令以生成可运行的jar包:'./mvnw clean package' (Windows用户可能需要使用 'mvnw clean package')
服务器配置
本MCP服务器作为命令行应用程序运行。MCP客户端需要配置以下信息才能连接和使用此服务器。您需要提供启动该服务器进程的命令及其参数。
{ "name": "weather-tool-server", // 您为该服务器定义的名称,例如 "weather-mcp" "command": "java", // 启动Java进程的命令 "args": [ "-jar", "/path/to/your/mcpdemo/target/mcpdemo-0.0.1-SNAPSHOT.jar" // 替换为您实际生成的jar包的完整路径 ] // LLM客户端通常会配置 transport 协议,本项目示例通常使用 stdio,但这是客户端配置项,服务器端通常无需特殊配置。 }
配置项说明:
- 'name': LLM客户端识别此服务器的唯一名称。
- 'command': 启动服务器进程的可执行命令,通常是 'java'。
- 'args': 传递给 'command' 命令的参数列表。对于运行jar包,通常是 '-jar' 和 jar 包文件的路径。
- 其他如 'transport' (通信协议,如 stdio, sse, websocket) 等配置项通常在客户端定义,用于指定如何连接到此服务器。本项目示例默认且最常通过标准输入/输出 (stdio) 与作为子进程启动的客户端进行通信。
基本使用方法
服务器启动后,它会在后台等待MCP客户端连接(通常是通过标准输入/输出)。您需要使用一个支持连接MCP服务器的LLM客户端应用程序(例如基于Spring AI的LLM应用)来配置并启动此服务器进程。客户端将通过JSON-RPC协议与服务器通信,发现并调用服务器暴露的天气工具功能。
信息
分类
网页与API