Java MCP 实战:构建跨进程与远程的工具服务

一、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 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值