项目简介
OpenJDK Helper 是一个为协助 OpenJDK 项目相关活动而设计的服务,同时也是一个 MCP (Model Context Protocol) 服务器。它通过标准化的方式向 LLM 客户端提供关于 OpenJDK 社区成员、项目、群组以及 GitHub 仓库信息的访问能力,支持 AI 助手进行更深入和有上下文的交互。
该服务既可以通过传统的 REST API 访问(Swagger UI 和 OpenAPI 描述),也通过 MCP 协议支持 AI 助手(如 Claude Desktop)进行直接交互。
主要功能点
本项目作为 MCP 服务器,提供了以下核心功能供 AI 助手调用:
- 获取服务版本: 了解当前运行的 OpenJDK Helper 服务版本信息。
- 搜索 OpenJDK 成员: 根据姓名或用户名在 OpenJDK 社区名册中查找成员。
- 获取 OpenJDK 成员详情: 根据 ID 或用户名获取指定成员的详细信息。
- 搜索 OpenJDK 项目: 根据查询条件搜索 OpenJDK 项目。
- 获取 OpenJDK 项目详情: 根据项目 ID 获取指定项目的详细信息。
- 搜索 OpenJDK 群组: 根据查询条件搜索 OpenJDK 群组。
- 获取 OpenJDK 群组详情: 根据群组 ID 获取指定群组的详细信息。
- 获取 GitHub 用户仓库列表: 根据 GitHub 用户名获取其公开仓库列表。
- 获取 GitHub 仓库的 Pull Requests: 获取指定 GitHub 仓库的 Pull Request 列表,支持过滤和排序。
安装步骤
本项目基于 Java 和 Quarkus 框架构建,可以使用 Maven 进行构建和打包。
- 克隆仓库:
git clone https://github.com/thegreystone/openjdk-helper.git cd openjdk-helper - 使用 Maven 构建:
- 构建普通的 JAR 包 (运行时依赖 lib 目录):
./mvnw package - 构建包含所有依赖的 Uber JAR 包 (便于单文件运行):
./mvnw package -Dquarkus.package.jar.type=uber-jar
- 构建普通的 JAR 包 (运行时依赖 lib 目录):
- 运行应用程序:
- 运行普通 JAR 包:
java -jar target/quarkus-app/quarkus-run.jar - 运行 Uber JAR 包:
java -jar target/*-runner.jar - (可选)使用 Docker 运行:
# 构建 Docker 镜像 mvnw clean package -Dquarkus.native.container-build=true -Dquarkus.container-image.build=true # 运行 Docker 容器 docker run -i --rm -p 8080:8080 greystone/openjdk-helper:latest
- 运行普通 JAR 包:
服务器配置
作为 MCP 服务器,'openjdk-helper' 支持 Stdio 和 SSE 传输协议。AI 客户端需要知道如何启动或连接到这个服务器。典型的 MCP 客户端(如 Claude Desktop 或 VS Code 插件)需要一个 JSON 格式的配置来注册服务器。
配置信息通常包含:
- 'server name': 服务器的标识名称(例如: "openjdk-helper")
- 'command': 用于启动服务器进程的可执行命令或脚本(例如: "java")
- 'args': 传递给启动命令的参数列表。对于 Stdio 模式,通常需要指定 enable stdio 的 JVM 参数和要运行的 JAR 文件路径。例如,使用 Uber JAR 启动 Stdio 模式的参数可能是 '["-Dquarkus.mcp.server.stdio.enabled=true", "-jar", "path/to/openjdk-helper-version-runner.jar"]'。
- 'transport': 指定使用的传输协议 ("stdio" 或 "sse")。如果使用 SSE,通常还需要配置 'url' 指向服务器的 SSE 端点(例如: "https://api.hirt.se/openjdk/mcp/sse" 或本地运行时的 "http://localhost:8080/mcp/sse")。
AI 客户端的用户需要根据其客户端的具体要求和 'openjdk-helper' 的运行方式(本地 Stdio 或远程 SSE)来配置这些信息。
基本使用方法
与 'openjdk-helper' MCP 服务器的交互主要通过 AI 客户端发起对已注册工具的调用。
- 启动或连接: 根据客户端配置,AI 客户端会自动启动 'openjdk-helper' 进程(Stdio 模式)或连接到指定的 SSE 端点。
- 发现能力: 客户端会通过 MCP 协议发现服务器提供的所有工具及其描述(例如 'getVersion', 'searchPeople', 'getGitHubPulls' 等)。
- 调用工具: 当 AI 助手需要获取与 OpenJDK 或 GitHub 相关的信息时,它会根据用户请求和自身逻辑,选择合适的工具,构建 JSON-RPC 请求(携带必要的参数,如 'query', 'userid', 'owner', 'repo' 等),并通过 MCP 协议发送给服务器。
- 接收结果: 服务器执行工具功能,并将结果通过 JSON-RPC 响应返回给客户端。AI 助手接收到结果后,可以利用这些信息生成回复或执行后续操作。
例如,AI 助手可能会调用 'searchPeople' 工具来回答用户关于某个 OpenJDK 成员的问题,或者调用 'getGitHubPulls' 工具来获取某个项目的最新 Pull Request 列表。具体的交互细节取决于 AI 助手的实现。
信息
分类
开发者工具