项目简介
该项目是“Claude Code开发者套件”的一部分,专注于为Java/Spring Boot开发者提供一套基于LangChain4j框架构建Model Context Protocol (MCP) 服务器的模式和模板。它旨在帮助LLM应用快速搭建后端服务,以标准化的方式管理和提供上下文信息、可调用工具以及定制化的Prompt模板,从而赋能AI应用更智能地执行开发相关的任务。
主要功能点
- MCP服务器核心实现: 提供一个完整的Spring Boot应用模板,集成了 'dev.langchain4j.mcp.MCPServer',用于快速启动和配置MCP服务器。
- 资源提供者: 能够通过 'ResourceListProvider' 接口托管和管理各种数据资源,并提供数据访问能力,例如示例中的“公司信息”和“公司政策”等。
- 工具提供者: 允许通过 'ToolProvider' 接口注册和执行各种外部工具,使LLM可以调用这些功能,例如示例中实现的简单“计算器”工具。
- Prompt模板提供者: 支持通过 'PromptListProvider' 接口定义和渲染可定制的Prompt模板,以指导LLM进行特定任务,例如代码审查、文档生成和Bug分析。
- LangChain4j集成: 利用LangChain4j框架的强大功能,简化MCP服务器的开发流程,提供清晰的API和组件抽象。
- 多种传输协议支持: 默认配置为使用Stdio传输协议进行客户端通信,并可扩展支持其他传输协议(如SSE, WebSocket)以满足不同部署需求。
安装步骤
- 克隆仓库:
首先,使用Git将此GitHub仓库克隆到您的本地机器。
git clone https://github.com/giuseppe-trisciuoglio/developer-kit.git cd developer-kit - 定位MCP服务器模板: MCP服务器的核心实现模板位于 'skills/langchain4j/langchain4j-mcp-server-patterns/assets/mcp-server-template.java'。
- 创建您的MCP服务器项目: 将 'mcp-server-template.java' 文件复制到您的Java/Spring Boot项目的源代码目录中。
- 添加LangChain4j MCP依赖:
确保您的项目已在 'pom.xml' (Maven) 或 'build.gradle' (Gradle) 中添加了LangChain4j MCP服务器相关的依赖。例如,对于Maven:
<dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- LangChain4j MCP Server --> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-mcp-server</artifactId> <version>最新版本号</version> <!-- 请替换为LangChain4j的实际最新版本号 --> </dependency> <!-- LangChain4j MCP Transport (Stdio) --> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-mcp-transport-stdio</artifactId> <version>最新版本号</version> <!-- 请替换为LangChain4j的实际最新版本号 --> </dependency> <!-- 用于JSON处理 (如示例中的ObjectMapper) --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>最新版本号</version> </dependency> <!-- ... 其他您需要的Spring Boot依赖,如 web, test 等 --> </dependencies> - 自定义实现: 根据您的实际需求,修改 'MCPServerTemplate.java' 中的示例 'CalculatorToolProvider'、'CompanyResourceProvider' 和 'PromptTemplateProvider',实现您自己的工具、资源和Prompt逻辑。
- 构建和运行您的MCP服务器:
像运行任何标准的Spring Boot应用程序一样构建和运行您的项目。
例如,使用Maven:
# 在您的项目根目录执行 mvn clean install java -jar target/您的MCP服务器应用名称.jar
服务器配置
您的MCP服务器启动后,MCP客户端(如LLM应用)需要通过JSON-RPC协议与服务器建立连接。客户端通常需要一个配置文件来指定如何启动和连接您的MCP服务器进程。以下是一个MCP客户端可能需要的配置信息示例,您需要将 'path/to/your-mcp-server-executable.jar' 替换为您实际编译生成的服务器JAR文件路径:
{ "serverName": "MyDeveloperKitMCPServer", "description": "基于LangChain4j开发套件构建的MCP服务器,提供Java开发上下文支持。", "command": "java", "args": [ "-jar", "path/to/your-mcp-server-executable.jar" ], "transport": { "type": "stdio" } }
- 'serverName': 您的MCP服务器的唯一标识名称,客户端通过此名称识别服务器。
- 'description': 服务器功能的简要描述,帮助客户端理解其用途。
- 'command': 启动MCP服务器进程所需的执行命令。对于Java应用程序,这通常是 'java'。
- 'args': 传递给 'command' 的参数列表。例如,'-jar' 指示执行JAR文件,'path/to/your-mcp-server-executable.jar' 是您服务器的JAR文件路径。
- 'transport': 定义客户端与服务器之间通信所使用的传输协议类型,'stdio' 表示通过标准输入/输出流进行通信。
基本使用方法
一旦您的MCP服务器成功启动并被MCP客户端(如Claude Code或LLM应用)连接,客户端即可通过JSON-RPC协议发送请求与服务器交互:
- 发现能力: 客户端会请求服务器列出其支持的所有工具、资源和Prompt模板。
- 调用工具: 客户端可以根据需要,向服务器发送请求以调用已注册的工具(例如示例中的 'add' 或 'multiply'),并传递相应的参数。服务器将执行相应的Java方法并返回执行结果。
- 读取资源: 客户端可以请求读取服务器托管的特定资源的内容(例如 'company-info' 或 'policies')。服务器将返回资源的数据。
- 获取Prompt模板: 客户端可以请求获取服务器定义的特定Prompt模板,并根据提供的参数(如代码片段、语言等)进行渲染。服务器将返回定制化的Prompt文本,供LLM进一步处理。
通过这些交互,LLM客户端能够有效地利用此MCP服务器提供的结构化上下文信息和执行能力,从而更智能、更高效地完成复杂的开发任务。
信息
分类
AI与计算