能用 Java8 开发 MCP(或 MCP Server),这才是 MCP 自由(Solon AI MCP)!

现在,用 Java 开发 MCP 的情况是:

框架 JDK要求
mcp-sdk 需要 jdk17+
spring-ai-mcp-server 需要 jdk17 +
spring-ai-mcp-client 需要 jdk17 +
langchain4j-mcp-client 需要 jdk17+
solon-ai-mcp-server jdk8 +
solon-ai-mcp-client jdk8 +

之前在 mcp-sdk 仓库的 issue 与人交流时。曾有人说现在都 ia 时代了,怎么能还用 java8 呢?可是 MCP 是一个协议性的框架,应该更有普适性,应该照顾更广的市场需求。

市场的情况是,(尤其是我国)还有海量的 jdk8 服务器。所以,用 Java8 也能开发 MCP(或 MCP Server),这才是 MCP 自由!

Solon AI MCP(一个依赖包)

Java AI(智能体) 全场景应用开发框架(支持已知 AI 开发的各种能力。例如:LLM,Function Call,RAG,Embedding,Reranking,Flow,MCP Server,Mcp Client)。同时支持 java8,java11,java17,java21。

可与 Solon 集成使用,也可嵌入到 SpringBoot2、jFinal、Vert.x 等框架中使用。

Solon AI MCP Server 示例(支持多端点)

下面以一个查询天气的 Mcp 工具服务为例。

  • 组件方式构建(和 MVC 开发像)
java 复制代码
@McpServerEndpoint(name="mcp-case1", sseEndpoint = "/case1/sse") 
public class McpServerTool {
    @ToolMapping(description = "查询天气预报")
    public String getWeather(@ToolParam(description = "城市位置") String location) {
        return "晴,14度";
    }
}
  • 原生 java 方式构建
java 复制代码
McpServerEndpointProvider serverEndpoint = McpServerEndpointProvider.builder()
        .name("mcp-case2")
        .sseEndpoint("/case2/sse")
        .build();

serverEndpoint.addTool(new MethodToolProvider(new McpServerTool()));
serverEndpoint.postStart();

Solon AI MCP Client 示例

java 复制代码
McpClientToolProvider clientToolProvider = McpClientToolProvider.builder()
                .apiUrl("http://localhost:8080/case1/sse")
                .build();

String rst = clientToolProvider.callToolAsText("getWeather", Map.of("location", "杭州"));
相关推荐
唐僧洗头爱飘柔952733 分钟前
【SSM-SSM整合】将Spring、SpringMVC、Mybatis三者进行整合;本文阐述了几个核心原理知识点,附带对应的源码以及描述解析
java·spring·mybatis·springmvc·动态代理·ioc容器·视图控制器
骑牛小道士44 分钟前
Java基础 集合框架 Collection接口和抽象类AbstractCollection
java
alden_ygq1 小时前
当java进程内存使用超过jvm设置大小会发生什么?
java·开发语言·jvm
triticale1 小时前
【Java】网络编程(Socket)
java·网络·socket
淘源码d1 小时前
什么是ERP?ERP有哪些功能?小微企业ERP系统源码,SpringBoot+Vue+ElementUI+UniAPP
java·源码·erp·erp源码·企业资源计划·企业erp·工厂erp
源码方舟1 小时前
【基于ALS模型的教育视频推荐系统(Java实现)】
java·python·算法·音视频
Mcworld8572 小时前
整数分解JAVA
java·开发语言
小南家的青蛙2 小时前
LeetCode面试题 01.09 字符串轮转
java·leetcode
秋野酱3 小时前
基于javaweb的SpringBoot爱游旅行平台设计和实现(源码+文档+部署讲解)
java·spring boot·后端
饕餮争锋3 小时前
org.slf4j.MDC介绍-笔记
java·开发语言·笔记