项目简介
本项目演示了如何使用 LangChain4j 和 Quarkus MCP 框架构建一个符合 Model Context Protocol (MCP) 协议的服务器。该服务器提供了一个实时的天气查询工具,可以被任何兼容 MCP 协议的 LLM 客户端调用,从而为 LLM 应用提供上下文信息和外部功能。
主要功能点
- MCP 服务器实现: 使用 Quarkus MCP Server STDIO 组件,实现了标准的 MCP 服务器功能,可以处理来自 LLM 客户端的 MCP 请求。
- 天气查询工具: 集成了实时的天气查询工具,允许 LLM 客户端通过调用 'getWeather' 工具获取指定城市和国家的天气信息。
- 标准输入/输出通信: 使用标准输入/输出 (STDIO) 作为 MCP 服务器的通信协议,方便部署和集成。
- 工具发现与调用: 通过 MCP 协议,LLM 客户端可以动态发现并调用服务器提供的天气查询工具。
安装步骤
- 安装 Java 17+ 和 JBang: 确保您的系统已安装 Java 17 或更高版本,并安装了 JBang 工具。JBang 可以简化 Java 应用程序的运行,安装指南请参考 JBang 官网。
- 克隆仓库: 使用 Git 克隆本项目代码仓库到本地:
git clone https://github.com/LostInBrittany/langchain4j-for-tools-and-mcp-demo.git - 进入服务器目录: 导航到项目代码中的 MCP 服务器示例目录:
cd langchain4j-for-tools-and-mcp-demo/04-Weather-MCP-server
服务器配置
MCP 客户端需要配置以下 JSON 信息才能连接到本 MCP 服务器。以下配置信息定义了一个名为 "WeatherMCP Server" 的服务器,并指定了使用 'jbang' 命令运行 'McpWeatherServer.java' 文件来启动服务器。
{ "server_name": "WeatherMCP Server", "command": "jbang", "args": ["./McpWeatherServer.java"] }
- 'server_name': 服务器名称,您可以自定义服务器的名称,例如 "WeatherMCP Server",用于在客户端标识不同的 MCP 服务器。
- 'command': 启动命令,指定用于启动 MCP 服务器的可执行命令。这里使用 'jbang' 命令来直接运行 Java 代码文件。
- 'args': 命令参数,传递给启动命令的参数列表。对于 'jbang' 命令,这里指定了要运行的 Java 文件 './McpWeatherServer.java'。
基本使用方法
-
启动 MCP 服务器: 在 MCP 客户端中,配置上述服务器配置信息。当客户端尝试连接 "WeatherMCP Server" 时,将自动调用配置的 'command' 和 'args' 启动服务器。
-
客户端调用工具: 在兼容 MCP 协议的 LLM 客户端中,客户端应该能够发现并调用名为 'getWeather' 的工具。调用该工具时,需要提供城市 (city) 和国家代码 (countryCode) 作为参数,例如:
{ "tool_name": "getWeather", "parameters": { "city": "London", "countryCode": "GB" } }服务器将返回包含天气信息的 JSON 响应。具体的天气信息内容请参考 'McpWeatherServer.java' 中的代码实现。
信息
分类
网页与API