mcpField
J
JVM Diagnostics MCP

JVM Diagnostics MCP

本地服务
github.com/brunoborges开发工具278 周前更新

关于 JVM Diagnostics MCP

JVM Diagnostics MCP 通过 MCP 服务提供 JVM 命令行诊断能力,面向开发者和运维人员。它封装 jstat、jps、jcmd 等工具,并支持分析线程转储和堆转储;目前通过 stdio 在本地运行。

主要功能

  1. 01使用 jstat 监控指标
  2. 02使用 jps 检查进程
  3. 03使用 jcmd 执行诊断
  4. 04分析线程转储和堆转储
  5. 05以 Java 应用或 Docker 容器运行

适用场景

  1. 01检查 JVM 性能指标
  2. 02查找并检查 JVM 进程
  3. 03执行 JVM 诊断命令
  4. 04分析线程或堆转储

MCP 相关

该服务通过 MCP 暴露 JVM 诊断命令行工具,供兼容客户端调用。目前使用 stdio 传输,设计为在本地运行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"java-project-starter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"JAVA_HOME",
"ghcr.io/brunoborges/jvm-diagnostics-mcp:latest"
],
"env": {
"JAVA_HOME": "<JAVA_HOME>"
}
}
}
}
启动命令docker run -i --rm -e JAVA_HOME ghcr.io/brunoborges/jvm-diagnostics-mcp:latest
需要配置的环境变量
JAVA_HOME

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/brunoborges/jvm-diagnostics-mcp:latest

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

JVM Diagnostics MCP

这是一个 MCP 服务,用于封装各种 JVM 诊断工具(CLI),例如 jstat、jcmd、jps,添加实用的提示词来改进这些工具的使用方式,并将它们提供出来。

它能做什么?

它可以使用各种 JVM 诊断工具,因此能够执行以下任务:

  • 使用 jstat 监控 JVM 性能指标。
  • 使用 jps 检查和管理 JVM 进程。
  • 使用 jcmd 执行诊断命令。
  • 分析线程转储、堆转储及其他 JVM 相关诊断信息。

使用安全吗?

由于 MCP 服务由大模型驱动,我们建议谨慎使用,并验证它生成的命令。如果你使用 Claude 3.7 或 GPT-4o 这类可靠的大模型,它们针对 JVM 工具的训练数据非常出色,根据我们的经验,使用效果很好。

请阅读我们的 许可证,其中声明“本软件按‘原样’提供,不附带任何形式的保证”,因此使用此 MCP 服务的风险由你自行承担。

它是否安全?我应该在远程服务上运行它吗?

简短回答:不应该。

此 MCP 服务会为你运行 JVM 诊断命令,攻击者可能利用它来运行其他命令。与目前大多数 MCP 服务一样,当前实现仅支持 stdio 传输:它应该在你的机器本地运行,并使用你的 JVM 工具,就像你自己操作一样。

未来,此 MCP 服务可能会支持 http 传输和基于令牌的身份验证,以便不同的用户远程使用。待 MCP 规范和 SDK 更加稳定后,我们会考虑此事。

如何安装?

此 MCP 服务目前仅支持 stdio 传输,因此应在你的机器本地运行,并使用你的 JVM 诊断工具。

此服务可以作为 Java 应用运行,也可以在 Docker 容器中运行。 如果你的机器上已安装 Java,第一种方式可能最简单。如果没有安装 Java,或者你希望安全性更高一些,可以使用第二种方式。

使用 Java 安装和配置服务
  • 确保已安装 Java 17 或更高版本。你可以在终端中运行 java -version 进行检查。
  • 确保你的环境中可以使用 jstat、jcmd 和 jps 等 JVM 诊断工具。

GitHub Release 页面提供了二进制文件,以下是使用 GitHub CLI 下载最新版本的方法:

  • 下载最新版本:gh release download --repo brunoborges/jvm-diagnostics-mcp --pattern='jvm-diagnostics-mcp.jar'

要在 Claude Desktop 中使用此服务,请将其添加到你的 claude_desktop_config.json 文件中。请注意,你需要指定下载的 jvm-diagnostics-mcp.jar 文件所在的位置。

{
    "mcpServers": {
        "jvm-diagnostics": {
            "command": "java",
            "args": [
                "-jar",
              "~/Downloads/jvm-diagnostics-mcp.jar"
            ]
        }
    }
}

要在 VS Code Insiders 中使用此服务,请按以下步骤进行配置:

  • 安装 GitHub Copilot
  • 使用命令面板安装此 MCP 服务:MCP: Add Server...
  • 点击聊天窗口底部的箭头,将 GitHub Copilot 设置为在 Agent 模式下运行
  • 在聊天窗口顶部,你应该能看到配置为工具的 jvm-diagnostics-mcp 服务
使用 Docker 安装和配置服务

要在 Claude Desktop 中使用此服务,请将其添加到你的 claude_desktop_config.json 文件中。JAVA_HOME 环境变量应设置为 Java 安装位置。

{
  "mcpServers": {
    "jvm-diagnostics": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "JAVA_HOME",
        "ghcr.io/brunoborges/jvm-diagnostics-mcp:latest"
      ],
      "env": {
        "JAVA_HOME": "/path/to/java/home"
      }
    }
  }
}

要在 VS Code Insiders 中使用此服务,请按以下步骤进行配置:

  • 安装 GitHub Copilot
  • 使用命令面板安装此 MCP 服务:MCP: Add Server...
  • 点击聊天窗口底部的箭头,将 GitHub Copilot 设置为在 Agent 模式下运行
  • 在聊天窗口顶部,你应该能看到配置为工具的 jvm-diagnostics-mcp 服务

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。