V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
frank42a
V2EX  ›  程序员

手搓了一个 Java MCP SDK,支持 Java8+

  •  
  •   frank42a · Jun 7, 2025 · 2846 views
    This topic created in 327 days ago, the information mentioned may be changed or developed.

    MCP 是一个基于协议的框架,因此应具有更强的通用性,满足更广泛的市场需求。

    目前 Java 领域中开发 MCP 的情况如下:

    框架名称 所需 JDK 版本
    官方 Java MCP SDK jdk17+
    Spring AI MCP jdk17+
    Quarkus MCP 服务器 jdk17+
    langchain4j-mcp 客户端 jdk11+

    考虑到仍有大量服务器运行在 JDK 8 上,使用 Java 8 开发 MCP (或 MCP 服务器)对于确保广泛兼容性和灵活性至关重要。

    仓库地址: https://github.com/lightweight-component/aj-mcp or https://gitcode.com/lightweight-component/aj-mcp

    用户手册: https://mcp.ajaxjs.com/

    本人不才,,,其实这算是最初版本,实现了 MCP 基本功能,,,协议中的细节还没搞,,当前想法是把 client/server 走通,实现了个闭环,,,文档、单测啥都有了,,希望大家过目,顺便点点心:)

    13 replies    2025-06-12 22:43:18 +08:00
    hepin1989
        1
    hepin1989  
       Jun 7, 2025
    最大的问题是,你可以坚持几年?
    frank42a
        2
    frank42a  
    OP
       Jun 7, 2025
    @hepin1989 不设限期。
    frank42a
        3
    frank42a  
    OP
       Jun 7, 2025
    @hepin1989 为什么要说坚持?那是很难的事情吗?要说难也行 容易也行。乐于此,不疲倦。
    LeviMarvin
        4
    LeviMarvin  
       Jun 7, 2025
    @hepin1989 你想白嫖一辈子吗?
    hepin1989
        5
    hepin1989  
       Jun 8, 2025
    我为啥白嫖,我都不用这个库。表示支持,但是我不用。
    ranran
        6
    ranran  
       Jun 8, 2025
    不错不错,正好有需求。
    frank42a
        7
    frank42a  
    OP
       Jun 8, 2025
    @hepin1989 谢谢支持!
    CynicalRose
        8
    CynicalRose  
       Jun 8, 2025
    用 Java 实现 MCP 服务端,只能 SSE 了,没可能让用户下 jar 包本地启一个常驻服务,stdio 方式连接的。现在写服务端工具都是拿 npx 或者 uvx 管理服务,java 没有类似的工具,上 docker 变更重了
    frank42a
        9
    frank42a  
    OP
       Jun 9, 2025
    @CynicalRose Java App 跑 stdio 容易,无非一个 main() 函数启动。你意思是要依赖 JRE/JDK 的麻烦?
    CynicalRose
        10
    CynicalRose  
       Jun 9, 2025
    @frank42a 我的意思是 Java 实现的 MCP 服务发布到网上开源分享出去麻烦,stdio 需要把依赖下到本地,smithery.ai 上就没看到用 java 写的,不方便下载,uvx 和 npx 更容易下载清理。
    MarkLazy
        11
    MarkLazy  
       Jun 9, 2025
    @CynicalRose 还是有需求的,很多企业内部的系统要做 ai 化转型
    b2byco
        12
    b2byco  
       Jun 12, 2025
    @CynicalRose 用 graalvm quarkus 之类的 native 打包是不是就不需要依赖了,启动还快,资源占用也小
    frank42a
        13
    frank42a  
    OP
       Jun 12, 2025
    @b2byco Quarkus 的 MCP 实现我看过源码,的确如你所说的。但 Quarkus 的:

    - 要求 JDK17+
    - 只有 Server 端没有 Client 端
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1202 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 17:35 · PVG 01:35 · LAX 10:35 · JFK 13:35
    ♥ Do have faith in what you're doing.