使用说明
项目简介
本项目是一个基于LangChain4j和Spring Boot构建的Model Context Protocol (MCP) 服务器示例。它展示了如何创建一个符合MCP协议的服务端应用,用于向LLM客户端提供工具 (Tools) 功能。本仓库包含服务端 ('mcp-server') 和客户端 ('proposal-agent') 两个模块,服务端负责提供工具,客户端演示如何调用这些工具。
主要功能点
- 工具注册与执行: MCP 服务器端 ('mcp-server') 注册并提供可被LLM客户端调用的工具,例如本示例中的天气查询工具 ('WeatherTool')。
- 标准MCP协议支持: 服务器端实现了MCP协议的基本框架,能够接收和处理来自客户端的符合MCP协议的请求。
- SSE实时通信: 使用Server-Sent Events (SSE) 作为传输协议,支持与客户端进行实时的、基于事件的通信。
- Spring Boot集成: 基于Spring Boot框架构建,便于快速开发、部署和扩展。
- 示例工具: 提供了一个简单的天气查询工具 ('WeatherTool') 作为示例,展示工具的定义和实现方法。
安装步骤
- 克隆代码仓库:
git clone https://github.com/lucasdengcn/langchain4j-ai-example.git - 进入项目根目录:
cd langchain4j-ai-example - 使用Gradle构建项目:
./gradlew build
服务器配置
MCP客户端需要配置以下信息以连接到此MCP服务器。以下是启动 'mcp-server' 模块的配置示例,客户端可以根据此配置启动并连接到服务器。
{ "serverName": "langchain4j-mcp-server", "command": "./gradlew", "args": [ "mcp-server:bootRun" ], "description": "启动 LangChain4j MCP 服务器,提供工具服务" }
配置参数说明:
- 'serverName': 服务器名称,客户端用于标识不同的MCP服务器。例如 '"langchain4j-mcp-server"'。
- 'command': 启动服务器的命令。对于本仓库,使用 Gradle 包装器 ('./gradlew')。
- 'args': 传递给启动命令的参数。这里使用 'mcp-server:bootRun' 来运行 'mcp-server' 模块的 Spring Boot 应用。
- 'description': 服务器的简短描述,方便客户端用户理解服务器用途。例如 '"启动 LangChain4j MCP 服务器,提供工具服务"'。
注意: 客户端程序 (例如 'proposal-agent') 需要根据实际情况配置连接到 MCP 服务器的传输方式 (如 HTTP SSE, Stdio, WebSocket) 和地址。本仓库的客户端示例使用了 HTTP SSE,服务器地址默认为 'http://localhost:8180/sse',可以在客户端配置文件中查找和修改。
基本使用方法
- 启动 MCP 服务器: 在项目根目录下,执行命令 './gradlew mcp-server:bootRun' 启动 MCP 服务器。
- 启动 MCP 客户端 (Proposal Agent): 在项目根目录下,执行命令 './gradlew proposal-agent:bootRun' 启动客户端。客户端将尝试连接到默认配置的 MCP 服务器。
- 与AI助手交互: 客户端 ('proposal-agent') 提供了API接口 (例如 '/api/chat/stream', '/api/ai/customer') 用于与AI助手进行交互。通过这些接口,可以发送消息给AI助手,并体验工具调用功能。例如,可以尝试询问天气相关的问题,触发客户端调用 MCP 服务器提供的天气查询工具。
示例场景: 在客户端的聊天界面中输入 "What's the weather like in Shenzhen?",客户端的AI助手可能会调用 MCP 服务器提供的天气查询工具 ('getWeather') 获取深圳的天气信息,并将结果返回给用户。
信息
分类
AI与计算