Jolokia MCP Server
@tadayosi
Let LLMs manage your Java application via JMX/Jolokia 🌶️
Overview
What is Jolokia MCP Server?
Jolokia MCP Server is an MCP server that integrates with the Jolokia JMX-HTTP bridge, enabling an LLM to manage a Java application via the JMX API. It connects to a single JVM at startup and provides read/write access to MBeans and execution of MBean operations. It is intended for developers and operators who want to use natural language or AI assistants to interact with Java application management endpoints.
How to use Jolokia MCP Server?
You can use either the Standalone or JVM Agent distribution. For the Standalone server, download the runner jar and register it in your MCP host settings using java -jar or JBang. For the JVM Agent, download the javaagent jar and start your Java application with the -javaagent flag, which opens an MCP HTTP server at http://localhost:8779/mcp by default. When running the Standalone server, you can optionally pass a Jolokia URL (default http://localhost:8778/jolokia) as a positional parameter, and use the --sse flag to switch from stdio to HTTP transport.
Key features of Jolokia MCP Server
- List all MBeans registered in the connected JVM
- List operations and attributes for a given MBean
- Read and write MBean attributes
- Execute MBean operations with arguments
- Two deployment options: Standalone and JVM Agent
Use cases of Jolokia MCP Server
- An LLM assistant reads JVM MBeans to diagnose application health
- A chatbot modifies MBean attributes (e.g., logging levels) at runtime
- An AI tool executes JMX operations to trigger maintenance actions
- Replace the standard Jolokia JVM Agent to turn any Java app into an MCP server
FAQ from Jolokia MCP Server
What is the default Jolokia URL the server connects to?
The default Jolokia URL is http://localhost:8778/jolokia. You can override it via a positional parameter or the system property jolokia.mcp.url.
How do I enable HTTP transport instead of stdio?
Use the --sse option when launching the Standalone server. The HTTP transport endpoint runs at http://localhost:8080/mcp by default, configurable with quarkus.http.port and quarkus.mcp.server.sse.root-path system properties.
What are the differences between the two distributions?
The Standalone MCP Server communicates with a Java application that already has a Jolokia agent attached, using JMX over HTTP. The JVM Agent MCP Server is a drop-in replacement for the standard Jolokia JVM Agent and directly opens an MCP HTTP port, making your Java application itself an MCP server.
Can I configure the HTTP method used for Jolokia requests?
Yes, you can set the system property jolokia.mcp.preferred-http-method to GET or POST. By default it is not set.
How do I build the server from source?
Run mvn clean install in the project root.