关于 MCP Server - Build Tools
JVM Build Tools MCP Server 是面向开发者和编码 Agent 的 Java 服务,支持 Maven、Gradle 和 sbt 项目。其 2.0 预发布版为模型可见工具加入项目边界检查、HTTP 权限范围和隐私控制。
主要功能
- 01支持 Maven、Gradle 和 sbt
- 0224 个构建相关工具
- 03三种构建工作流提示词
- 04stdio 和 Streamable HTTP 传输
- 05允许根目录的项目路径检查
- 06带权限范围的 HTTP bearer 认证
适用场景
- 01通过 MCP 客户端运行 JVM 构建任务
- 02检查项目结果中的构建诊断
- 03将工具访问限制在获准的项目树中
- 04通过已认证的 HTTP 暴露构建工具
MCP 相关
通过 stdio 和 Streamable HTTP 向 MCP 客户端提供 24 个工具和三种原生构建工作流提示词。HTTP 访问支持 bearer 密钥及显式分配的权限范围。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
JVM 构建工具 MCP 服务
一个适用于 Maven、Gradle 和 sbt 的 Java 21+ MCP 服务。它通过 stdio 和 Streamable HTTP 提供 24 个工具和三个原生构建工作流提示词。2.0 开发版本为每次模型可见的工具调用设置了项目边界、限定范围的 HTTP 访问和隐私控制。
当前 2.0 预发布版: v2.0.0-rc.2 · 项目网站和文档
GitHub 将 v1.3.3 标记为最新稳定版本;v2.0.0-rc.2 是预发布版。发布标签标识经过测试的制品;
main可能会加入后续更改。较早的 1.x 工具列表和示例见变更日志。
快速开始
使用 JDK 21 或更高版本构建并验证:
./mvnw -B verify --no-transfer-progress
使用一个允许访问的项目目录启动 stdio。请将此路径保留在本地进程配置中。在 MCP 工具调用中,使用 projectDir: "." 表示根目录,或使用 "app" 这样的相对路径表示子目录,这样绝对路径就不必进入模型对话。
java -Dbuildtools.projects.allowed-roots=/workspace/projects -jar target/mcp-server-jvm-build-tools.jar
配置客户端时,请使用本地命令和参数:
{
"mcpServers": {
"jvm-build-tools": {
"command": "java",
"args": [
"-Dbuildtools.projects.allowed-roots=/workspace/projects",
"-jar",
"/opt/jvm-build-tools/server.jar"
]
}
}
}
使用 HTTP 时,服务会绑定到 127.0.0.1,并要求配置 Bearer 密钥。通过密钥管理器设置 BUILDTOOLS_API_KEY_LOCAL,并且只授予所需的作用域,例如 BUILDTOOLS_API_KEY_LOCAL_SCOPES=build:read,build:execute。然后运行:
java -Dbuildtools.projects.allowed-roots=/workspace/projects -jar target/mcp-server-jvm-build-tools.jar --spring.profiles.active=http
向 /mcp 发送 MCP 请求,并在 Authorization 标头中提供配置的 Bearer 密钥。绑定到非回环地址时,还必须显式指定项目根目录、配置密钥、启用身份验证,并限制 CORS。不要在提示词、问题、提交记录或构建日志中放入密钥或私有项目路径。
发往 /mcp 的 HTTP 请求会在存在 Origin 标头时对其进行验证,并对无效来源返回 403。回环绑定也会拒绝非本地的 Host 值,以防止 DNS 重绑定。如果本地反向代理发送自己的 Host 值,请将其主机名添加到 mcp.transport.allowed-hosts(以逗号分隔);同时将 mcp.transport.cors.allowed-origins 限制为可信的浏览器来源。CLI 客户端可以省略 Origin。
2.0 的变更
- 每次包含路径的工具调用都会根据规范化的允许根目录进行检查。相对项目别名会解析到第一个根目录下。缺少根目录时会拒绝访问项目。
- HTTP bearer 身份验证默认启用;除非明确授予,否则密钥没有作用域。每个公开的工具都分配了作用域,目录与实际情况不符会导致测试失败。
- MCP 工具结果会输出选定的汇总计数,以及最多 12 条结构化诊断信息,其中包含严重性、失败类别、每条结果的引用、可选的文件类型和行号,以及长度受限且已规范化的消息。凭据检查、令牌验证、审计读取和计划执行功能暂不向模型可见的目录公开,待重新设计其归属和隐私契约后再行开放。
- 依赖项分析会返回依赖项、受管理条目和导入的 BOM 的数量。CVE 扫描会返回扫描数量和严重性计数。依赖项坐标、每个依赖项的分类和 CVE 标识会保留在本地。
- 静态工具回调和凭据摘要会被缓存。容器构建会复用 Maven 依赖项、验证下载的 Gradle/sbt 压缩包,并以非 root 用户身份运行。
构建诊断会保留已识别的失败短语,同时隐藏任意标识符和值;对于未知或不安全的文本,则使用由服务端编写的回退内容。文件引用仅关联同一条结果中的诊断信息;请使用本地构建输出,在编辑前找到文件和符号。其他模型可见文本仍使用模式脱敏,无法证明任意文本中不含个人数据。在将结果分享给可信 MCP 客户端之外的对象之前,请先检查结果。若需更强的隔离,请在容器中运行服务和构建,并使用专用项目挂载和受限网络。
请阅读基础快速入门、当前工具目录、2.0 配置、迁移指南、架构与设计审查、安全模型、HTTP 身份验证和Agent 贡献工作流。发布计划记录了稳定版 2.0 发布前尚待完成的事项。
基于 Apache 2.0 许可。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。