java-sdk
modelcontextprotocol/java-sdk加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:你的团队用 Spring Boot 做了一套企业知识库系统,里面散落着订单查询、库存查询、工单创建、用户画像四套业务接口。现在产品经理说:"把这些能力接给公司的大模型,让员工用自然语言查订单、查库存。"
过去这活儿怎么干?为每个 AI 场景单独写一套适配代码——定义函数、拼 Prompt、解析返回、处理流式输出、接鉴权。两周下来代码量比业务系统还大,而且每接一个新工具就要重写一遍。
MCP(Model Context Protocol)就是来解决这个问题的:它把"AI 应用如何调用外部工具"标准化成了协议。而 modelcontextprotocol/java-sdk 是这个协议的官方 Java 实现——由 Anthropic 牵头的 MCP 团队,与 Spring AI 团队联合维护。它在 GitHub 上已获得 3748 Star、1114 Fork,是 Java 生态接入 MCP 的事实标准入口。

图:MCP Java SDK 的客户端架构,transport 层与协议层解耦
打个比方:MCP 之于 AI 工具,就像 USB-C 之于外设。以前的做法是"每个品牌一根专用线",MCP 想做的是"一个口,插所有设备"。
具体到 SDK,它提供三类能力:
这个 SDK 的架构设计相当克制,几个关键决策值得拆开看:
编程模型:公共 API 用 Reactive Streams 规范(Publisher/Subscriber/Subscription),内部实现用 Project Reactor,同时提供同步门面(McpSyncClient/McpSyncServer)给习惯阻塞模型的开发者。这是很聪明的"渐进式响应式"——简单场景写同步代码即可,需要流式与背压时再下沉到异步。
序列化:默认 Jackson 3,但通过 io.modelcontextprotocol.json 抽象层隔离,Jackson 2 单独成模块,理论上第三方可替换。
授权:SDK 刻意不内置任何鉴权实现,只提供服务端传输层的授权钩子。这是刻意的"生态中立"——Spring Security、MicroProfile JWT 或自研方案由使用者自行接入,避免锁定。

图:MCP Java SDK 服务端架构,包含有状态与无状态两种会话模型
模块划分上分为 mcp-bom(版本)、mcp-core(参考实现)、mcp-json-jackson2/3(JSON 绑定)、mcp(便捷聚合包)、mcp-test(集成测试),采用 Maven 多模块 + JPMS 模块化,Spring 相关传输(WebFlux/WebMVC)已迁入 Spring AI 2.0。
这是一个库(SDK),不是一个可独立部署的应用,因此不存在 Dockerfile、docker-compose 或 Web UI,容器化部署支持度评分为最低档。
mcp 聚合包引入最简,或通过 BOM 精确控制版本mvnw wrapper./mvnw clean install -DskipTests对使用者而言,"部署"等同于"在 pom.xml 里加一行依赖",属于零运维负担。
需要诚实指出几处风险:
一个值得注意的信号:官方博客引用第三方基准测试(TM Dev Lab,390 万次请求、四语言横向对比)称,Java MCP Server 平均延迟 0.835 ms、吞吐 1624 RPS、CPU 效率 57.2 RPS/CPU%,全面优于 Go(0.855ms)并显著甩开 Node.js(10.66ms)与 Python(26.45ms)。这类对比测试第三方复现难度高、结论需谨慎对待,但它至少说明:JVM 在高并发工具调用场景是有性能优势的,这让 Java 成为企业级 MCP 服务端的有力候选。
项目当前 2.2.0-SNAPSHOT 开发中,最近 12 周提交 99 次,v2.1.0 于 2026-10-16 发布,维护活跃。维护 16 条并行版本分支(0.1.x 至 2.1.x),说明官方在认真处理向后兼容。
综合判断:这是 Java 团队接入 MCP 的最短路径。如果你的系统是 Spring Boot 技术栈、且要把内部业务能力开放给 AI 客户端,这个 SDK 值得投入;纯 Python/TypeScript 团队则应优先看对应语言的官方 SDK。