一、MCP 协议简介
MCP(Model Context Protocol,模型上下文协议)是由Anthropic推出的一种开放标准协议,旨在为大语言模型(LLM)与外部数据源、工具和服务提供标准化、安全的集成方式。支持进程间(通过 stdio)和远程(通过 HTTP SSE/Streaming)通讯。它专为 AI 开发设计,可以方便地提供 Tool(工具服务)、Prompt(提示语服务)和 Resource(资源服务)三种原语内容。
MCP 的核心优势在于:
- 支持多种通讯方式(stdio/SSE/Streaming)
- 支持服务发现(客户端可查询服务端点提供的接口)
- 与 AI 生态无缝集成(可直接作为大模型的工具使用)
MCP 架构示意图:
二、环境准备
首先在项目中添加 Java MCP 关键依赖:
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-ai-mcp</artifactId>
<version>最新版本</version>
</dependency>
支持 java8, java11, java17, java21, java24 。支持 solon,springboot,vert.x,jFinal 等框架集成。完整的示例参考:
- https://gitee.com/solonlab/solon-ai-mcp-embedded-examples
- https://gitcode.com/solonlab/solon-ai-mcp-embedded-examples
- https://github.com/solonlab/solon-ai-mcp-embedded-examples
三、构建 MCP 服务端
1、最简单的 SSE 服务
@McpServerEndpoint(sseEndpoint = "/mcp/sse")
public class SimpleMcpServer {
@ToolMapping(description = "问候服务")
public String hello(@Param(name="name", description = "用户名") String name) {
return "你好, " + name;
}
}
public class App {
public static void main(String[] args) {
Solon.start(App.class, args);
}
}
2、多端点服务
// 金融工具服务
@McpServerEndpoint(name="finance-tools", sseEndpoint = "/finance/sse")
public class FinanceTools {
@ToolMapping(description = "计算复利")
public double compoundInterest(
@Param(description = "本金") double principal,
@Param(description = "年利率") double rate,
@Param(description = "年数") int years) {
return principal * Math.pow(1 + rate, years);
}
}
// 教育工具服务
@McpServerEndpoint(name="edu-tools", sseEndpoint = "/edu/sse")
public class EducationTools {
@ToolMapping(description = "生成数学题")
public String generateMathProblem(
@Param(description = "难度级别") String level) {
if("easy".equals(level)) {
return "3 + 5 = ?";
} else {
return

最低0.47元/天 解锁文章
9989

被折叠的 条评论
为什么被折叠?



