Skip to content

Lori888/mcp-java-sdk

 
 

Repository files navigation

📖 中文文档 | 📖 official English Documentation

MCP Java SDK JDK8重构版本说明

📋 概述

本项目是官方MCP Java SDK的jdk8重构版本。

官方SDK使用jdk17开发构建,为了能够使得更多使用老版本jdk的项目也能集成开发MCP功能,并且尽量避免重复造轮子,因此选择使用jdk8重构官方版本。

项目地址

重构分支项目地址:https://github.com/Lori888/mcp-java-sdk 分支0.10.0-jdk8(基于原项目分支0.10.0 revision 6307f069建立)

✨ 重构说明

重构原则

  • 保持原项目代码中类的注释等
  • 尽量和原项目代码的代码顺序保持一致,以便于修改对比

重构代码改动

主要进行了以下改动:

  • record 重构为 static class、添加 @Value注解(添加lombok包依赖)
  • sealed interface 重构为 interface 并相应修改其子类
  • List.of() 重构为 Collections.emptyList()
  • List.of(xxx) 重构为 Collections.singletonList(xxx)Arrays.stream(handlers).collect(Collectors.toList())
  • List.of(xxx, xxx) 重构为 Arrays.asList(xxx, xxx)
  • Map.of() 重构为 Collections.emptyMap()
  • Map.of(xxx) 重构为 Collections.singletonMap(xxx)
  • Map.of(xxx, xxx) 重构为 jdk8 map写法
  • stream().map(xxx).toList() 重构为 stream().map(xxx).collect(Collectors.toList())
  • stream().toList() 重构为 stream().collect(Collectors.toList())
  • Optional.isEmpty() 重构为 == null
  • var 重构为具体类型
  • instanceof Class xxx 重构为jdk8写法
  • switch 重构为jdk8写法
  • jakarta.servlet.* 重构为 javax.servlet.*(添加jakarta.servlet-api包依赖)
  • java.net.http.* 改为使用 OkHttp(添加okhttp包依赖)

功能变更

  • 在原项目代码的基础上,新增了StreamableHttpServerTransportProvider(复制于https://github.com/ZachGerman/mcp-java-sdk 项目分支StreamableHttpServerTransportProvider 并用jdk8重构~请给原作者1个小星星)
  • 修复了使用HttpServletSseServerTransportProvider时进行tools/call传参中文乱码问题

🛠️ 构建项目

环境要求

  • Java 8
  • Maven 3.3+

构建方法

1.下载项目源码:

git clone -b 0.10.0-jdk8 https://github.com/Lori888/mcp-java-sdk.git

2.构建安装到本地maven仓库中:

cd mcp-java-sdk
mvn clean install

🔥 使用方法

在项目中添加依赖:

<dependency>
	<groupId>io.modelcontextprotocol.sdk</groupId>
	<artifactId>mcp</artifactId>
	<version>0.10.0-jdk8</version>
</dependency>

🧪 应用示例

开发1个使用StreamableHttpTransport的MCP Server,关键步骤:

  • 构建MCP Server属性对象实例
  • 根据MCP Server属性创建对应的McpServerTransportProvider实例
  • 根据同步/异步类型创建MCP Server实例
  • 将提供的能力(tools/resources/prompts)注册到MCP Server实例中
  • 使用内嵌的Tomcat提供Web服务

完整代码详见: mcp-java-sdk-examples

📑 TODO LIST

  • mcp-spring-webfluxmcp-spring-webmvc子模块重构
  • 加入HttpClientStreamableHttpTransport 2025-07-21 已完成
  • 适配Specification 2025-03-26 和 2025-06-18
  • jdk8重构官方主干分支

About

The official Java SDK for Model Context Protocol servers and clients. Maintained in collaboration with Spring AI

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%