项目简介
'solon-ai-mcp-embedded-examples' 仓库是基于 Solon AI 框架提供的一系列示例,旨在演示如何在不同的 Java Web 框架(如 Spring Boot, Solon, Vert.x, JFinal)中方便地集成并运行 Model Context Protocol (MCP) 服务器。这些示例展示了如何利用 Solon AI 的能力来定义和托管 MCP 标准的资源、工具和 Prompt 模板,并通过 HTTP/SSE 等协议对外提供服务,作为 LLM 客户端的上下文后端。
主要功能点
- 嵌入式 MCP 服务器: 将 MCP 服务器能力无缝集成到现有的 Spring Boot, Solon, Vert.x, JFinal 等应用中。
- 资源托管与访问: 通过 '@ResourceMapping' 注解或手动配置,定义并暴露应用程序内的资源,供 LLM 客户端按 URI 访问。
- 工具注册与执行: 通过 '@ToolMapping' 注解或手动配置,注册可供 LLM 调用的业务工具(函数),处理 LLM 的 Tool Call 请求。
- Prompt 模板定义与渲染: 通过 '@PromptMapping' 注解或手动配置,定义结构化的 Prompt 模板,支持 LLM 客户端获取并使用。
- 多框架支持: 提供针对 Spring Boot 2/3, Solon, Vert.x, JFinal 的具体集成示例。
- 支持多种传输协议: 主要通过 HTTP/SSE 实现 MCP 协议通信,也包含 STDIO 客户端连接外部 MCP 服务器的示例。
安装步骤
本项目是一个多模块的 Maven 项目,包含多个框架的集成示例。
- 克隆仓库:
git clone https://github.com/opensolon/solon-ai-mcp-embedded-examples.git cd solon-ai-mcp-embedded-examples - 选择并进入示例模块:
根据您使用的 Java 框架,选择对应的子目录进入,例如:
或者cd solon-ai-embedded-springboot3-newstyle
或其他框架的示例目录。cd solon-ai-embedded-solon - 构建项目:
使用 Maven 构建项目:
mvn clean package - 运行示例:
在对应的示例模块目录下,运行可执行 JAR 包(以 Spring Boot 3 New Style 示例为例):
(注意:具体的 JAR 包名称可能随版本变化) 对于 Solon 示例,可能需要使用 Maven 插件运行:java -jar target/solon-ai-embedded-springboot3-newstyle-*-SNAPSHOT.jar
其他框架的运行方式请参考对应框架的标准启动方式。 服务器通常会启动在 'http://localhost:8080'。mvn solon:run
服务器配置
MCP 服务器启动后,会暴露特定的 API URL 供 MCP 客户端连接。在这个示例中,根据配置,服务器暴露了以下 MCP 服务端点(Endpoints):
- 一个通过注解自动构建的端点,通常命名为 'demo1',其 API URL 为 '/mcp/demo1/sse'(完整的 URL 可能是 'http://localhost:8080/mcp/demo1/sse')。
- 一个手动构建的端点,通常命名为 'demo2'(在 Spring Boot 新风格示例中手动放入 Solon 容器时命名为 demo2),其 API URL 为 '/mcp/demo2/sse'(完整的 URL 可能是 'http://localhost:8080/mcp/demo2/sse')。
LLM 客户端(例如使用 Solon AI 的 MCP 客户端库)需要配置 服务器地址 (API URL) 来连接并使用这个 MCP 服务器提供的能力。例如,客户端可以配置连接到 'http://localhost:8080/mcp/demo1/sse' 或 'http://localhost:8080/mcp/demo2/sse'。客户端库会自动处理底层的 JSON-RPC 和 SSE 通信细节。
客户端连接示例所需信息:
- 服务器地址 (API URL): 'http://localhost:8080/mcp/demo1/sse' (或其他暴露的端点地址)
客户端无需了解服务器的内部实现细节(如具体的命令、参数或代码路径),只需要知道连接地址即可。
基本使用方法
- 定义 MCP 组件: 在你的应用中,创建 Java 类,并使用 '@ToolMapping', '@ResourceMapping', '@PromptMapping' 注解来定义工具、资源和 Prompt 模板。例如,参考 'webapp.tool.McpServerTool' 或 'webapp.mcpserver.tool.McpServerTool' 类。
- 配置 MCP 服务器端点: 使用 '@McpServerEndpoint' 注解标记包含 MCP 组件的类,并指定服务器端点名称和暴露的 URL 路径(如 'sseEndpoint')。Solon AI 框架会自动扫描并注册这些带有注解的类,构建 MCP 服务器端点。或者,你也可以像示例中 'McpServerConfig' 类所示,通过代码手动构建 'McpServerEndpointProvider' 并添加组件。
- 集成到 Web 框架: 根据你使用的框架,将 Solon AI 的 Web 适配器(如 'SolonServletFilter' 用于 Spring Boot/JFinal,或 'VxWebHandler' 用于 Vert.x)配置到对应的 URL 路径(通常是 '/mcp/*'),以便 Solon AI 能够处理 MCP 协议的请求。参考各个示例模块中的 'McpServerConfig' 类。
- 运行应用: 按照对应框架的标准方式启动你的应用程序。MCP 服务器端点将在指定的 URL 上开始提供服务。
- LLM 客户端连接: 开发或配置你的 LLM 客户端,使用 MCP 客户端库(如 Solon AI 提供的 'McpClientProvider'),并将其配置的 API URL 指向你部署的 MCP 服务器端点地址。客户端即可通过标准 MCP 协议调用服务器提供的工具、访问资源或获取 Prompt。
通过这些示例,开发者可以快速了解如何在现有 Java 应用中利用 Solon AI 构建符合 MCP 标准的后端服务。
信息
分类
AI与计算