listMBeansLABSCO SUMMARY
Live JVM internals in a conversation, rather than a JConsole window.
The resource surface is what makes it useful beyond a tool call: heap usage, GC timings and thread counts are addressable URIs, so an agent can correlate them without knowing the MBean layout first. Connection switching means one server can move between a local process and a staging host mid-investigation.
What it is
A Spring Boot server that bridges JMX to MCP. Twelve tools over MBeans, plus every JMX attribute exposed as a readable resource under a jmx:// URI.
What you get
- MBeans discovered and listed with optional domain filtering, one MBean in full detail, and the domain list — listMBeans, getMBeanInfo, listDomains
- An attribute read, and a writable attribute set — getAttribute, setAttribute
- Connections listed, added, removed and switched, with the current connection's status and statistics — listJmxConnections, addJmxConnection, removeJmxConnection, switchJmxConnection, getConnectionInfo
- JMX-enabled Java processes found on the machine and registered automatically — discoverJmxServices, autoRegisterDiscoveredConnections
- Attributes readable as resources at jmx://domain:type=Type,name=Name/attributes/AttributeName — memory pools, GC counts and times, thread state, uptime, class loading and OS load
- Security controls that validate object names, restrict operations and check attribute types before a write
Requirements
Java 17 or newer, and Maven 3.6+ to build the jar. Launch with the stdio Spring profile and logging switched off, since anything written to stdout breaks the JSON-RPC stream. Security configuration takes an allowed-domain list and a blocked-operation list.
Setup effort
Build from source — clone the repository, then point your client at the binary
USE CASES
Answering "is it memory" during an incident
Read heap and non-heap usage straight off the Memory MBean, then check GC collection counts and times over the same period.
Attaching to a Java process you did not configure
Discover JMX-enabled applications on the machine and register them automatically, instead of hand-writing a connection URL.
Moving between environments mid-investigation
Add the staging connection, switch to it, and read the same attributes again for comparison without restarting anything.
Changing a setting on a live application
Find the writable attribute on its MBean and set it — a log level, for example — with type validation before the write lands.
12 tools
Listed in project docs. Your client may show a different list.
getMBeanInfogetAttributesetAttributelistDomainslistJmxConnectionsaddJmxConnectionremoveJmxConnectionswitchJmxConnectiongetConnectionInfodiscoverJmxServicesautoRegisterDiscoveredConnectionsBEFORE YOU INSTALL
What to know first
Tools you get
12 tools named in the project's documentation.
Requires
- Java 17+
- Maven 3.6+
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/itz4blitz/JMX-MCP.git
cd JMX-MCP
mvn clean packageMCP Clients
Claude Desktop
{
"mcpServers": {
"jmx-mcp-server": {
"command": "java",
"args": [
"-Xmx512m",
"-Xms256m",
"-Dspring.profiles.active=stdio",
"-Dspring.main.banner-mode=off",
"-Dlogging.level.root=OFF",
"-Dspring.main.log-startup-info=false",
"-jar",
"<YOUR_PATH_TO_JMX_MCP_SERVER_1>"
],
"env": {
"JAVA_OPTS": "-Djava.awt.headless=true"
}
}
}
}