MCP Annotated Java Server SDK

使用说明(Markdown 格式)

  • 项目简介

    • 这是一个基于注解的 MCP(Model Context Protocol)服务器框架,用 Java 实现。通过在资源、工具、提示等组件上使用注解,自动注册到 MCP 服务端,LLM 客户端可以通过统一的协议读取资源、调用工具、获取并执行提示模板。
  • 主要功能点

    • 注解驱动的资源、工具、提示注册与暴露
    • 支持三种服务器模式:STDIO(标准输入输出)、SSE(服务端事件,HTTP)、STREAMABLE(HTTP 流式传输)
    • i18n(多语言)支持,组件文本可本地化
    • 配置文件驱动:support 融合基础配置与按环境的 profile 配置
    • JSON Schema 与结构化内容支持:工具可返回文本与结构化内容
    • 反射与缓存机制以提高性能
  • 安装步骤

    • 使用 Maven 构建并打包项目(提供 Maven Wrapper)
    • 将示例主类(如 TestMcpStdioServer)作为入口启动,或将你自己的带有 @McpServerApplication 注解的应用打包成 JAR 使用
    • 通过命令行启动示例服务器(详见下一节的服务器配置)
  • 服务器配置

    • MCP 服务器配置除了 YAML 基础文件外,MCP 客户端还需要一个启动命令及参数来启动服务器。本仓库提供了示例入口 TestMcpStdioServer,作为 STDIO 模式的参考。
    • 下面给出一个可直接用于客户端的配置示例(JSON 格式,字段含义在括号内说明;仅供参考,实际使用以你的环境为准): { "serverName": "mcp-server", "command": "java", "args": ["-cp", "<classpath>", "com.github.thought2code.mcp.annotated.test.TestMcpStdioServer"] }
    • 说明
      • serverName: 服务器在 MCP 客户端中的名称,建议与 YAML 配置中的 name 保持一致
      • command: 启动服务器的命令,示例中为 Java 运行为前提
      • args: 启动参数,范围可包含 -cp、-jar 等,<classpath> 需替换为实际的类路径,若打包成 JAR 则可改为 ["-jar", "your-app.jar"]
  • 基本使用方法

    • 构建并打包后,使用客户端加载上述配置后即可启动并连接到服务器
    • STDIO 模式的服务端通过标准输入/输出与同一进程或通过管道进行交互
    • SSE/STREAMABLE 模式则通过 HTTP 端点提供资源、提示、工具等
    • 客户端可通过 MCP 的标准调用方式读取资源、调用工具、获取提示并执行完成等操作
    • 详见仓库中的单元测试和示例类(如 TestMcpStdioServer、TestMcpStdioServer.main、TestMcpTools、TestMcpPrompts 等)
  • 注意事项

    • 生产环境建议使用 STREAMABLE 模式,以获得更稳定的网络传输和可扩展性
    • 配置文件(如 mcp-server.yml)以及 profile 配置支持合并,确保必填项正确且非空
    • 系统依赖 Java 17+,并使用相应的依赖与打包方式

服务器信息