Jolokia MCP Server
Un puente JMX-HTTP para interactuar con aplicaciones Java mediante el agente Jolokia.
Documentación
Servidor MCP de Jolokia
Servidor MCP para Jolokia, un puente JMX-HTTP para aplicaciones Java. Este servidor MCP permite a un LLM gestionar una aplicación Java utilizando la API JMX a través de Jolokia.
https://github.com/user-attachments/assets/624ec93b-da69-49b5-be8f-02f2ff14bd2e
Distribuciones
Desde la versión 0.4, el Servidor MCP de Jolokia ofrece dos distribuciones distintas para adaptarse a diferentes necesidades de despliegue:
Servidor MCP independiente
El Servidor MCP independiente actúa como un servidor MCP convencional; se registra en el host MCP con stdio o HTTP, y el propio servidor MCP se comunica con su aplicación Java, que debe tener un agente Jolokia adjunto, mediante JMX sobre HTTP.
Para utilizar el Servidor MCP independiente, primero deberá adjuntar un agente Jolokia a su aplicación Java. Para obtener instrucciones detalladas sobre cómo hacerlo, consulte el manual de Jolokia: https://jolokia.org/reference/html/manual/agents.html
Servidor MCP de agente JVM
En contraste, el Servidor MCP de agente JVM proporciona un reemplazo simplificado y "plug-and-play" del agente JVM estándar de Jolokia.
Con esta distribución, simplemente adjunta el agente JVM del Servidor MCP a su aplicación en lugar del agente JVM estándar de Jolokia. El Servidor MCP de agente JVM abre directamente un puerto HTTP para el protocolo MCP, transformando efectivamente su aplicación Java en un servidor MCP.
Características
Este servidor MCP se conecta a una única JVM al iniciarse y proporciona las siguientes características en la JVM conectada:
- Listar MBeans de la JVM conectada
- Listar operaciones de un MBean
- Listar atributos de un MBean
- Leer/escribir atributos de un MBean
- Ejecutar operaciones en un MBean
Herramientas
Este servidor MCP proporciona 6 herramientas.
- listMBeans
- Lista los MBeans disponibles de la JVM
- Salida (
List<String>): Lista de todos los nombres de objetos MBean en la JVM
- listMBeanOperations
- Lista las operaciones disponibles para un MBean dado
- Entradas:
mbean(String): Nombre del MBean
- Salida (
String): Definiciones en formato JSON de todas las operaciones disponibles para el MBean dado
- listMBeanAttributes
- Lista los atributos disponibles para un MBean dado
- Entradas:
mbean(String): Nombre del MBean
- Salida (
String): Definiciones en formato JSON de todos los atributos disponibles para el MBean dado
- readMBeanAttribute
- Lee un atributo de un MBean dado
- Entradas:
mbean(String): Nombre del MBeanattribute(String): Nombre del atributo
- Salida (
String): Representación en cadena del valor del atributo dado o "null"
- writeMBeanAttribute
- Establece el valor de un atributo de un MBean dado
- Entradas:
mbean(String): Nombre del MBeanattribute(String): Nombre del atributovalue(Object): Valor del atributo
- Salida (
String): Representación en cadena del valor anterior del atributo dado o "null"
- executeMBeanOperation
- Ejecuta una operación en un MBean dado
- Entradas:
mbean(String): Nombre del MBeanoperation(String): Nombre de la operaciónargs(Object[]): Argumentos
- Salida (
String): Representación en cadena del valor de retorno de la operación o "null"
Instalación
Independiente
Descargue el jar ejecutable del servidor MCP:
Para instalar el servidor MCP de Jolokia en un host MCP, agregue la siguiente entrada a la configuración de MCP:
{
"mcpServers": {
"jolokia": {
"command": "java",
"args": [
"-jar",
"<path-to-the-runner-jar>/jolokia-mcp-0.5.2-runner.jar"
]
}
}
}
O si prefiere usar JBang (no es necesario descargar el jar con este método):
{
"mcpServers": {
"jolokia": {
"command": "jbang",
"args": [
"org.jolokia.mcp:jolokia-mcp-server:0.5.2:runner"
]
}
}
}
Agente JVM
Descargue el jar del agente java del servidor MCP:
Luego ejecute su aplicación Java con la opción -javaagent:
java -javaagent:jolokia-mcp-agent-jvm-0.5.2-javaagent.jar -jar your-app.jar
Esto abriría el transporte HTTP de MCP en http://localhost:8779/mcp.
Para registrar el servidor MCP de Jolokia en un host MCP, agregue la siguiente entrada a la configuración de MCP:
{
"mcpServers": {
"jolokia": {
"httpUrl": "http://localhost:8779/mcp"
}
}
}
Ejecución
Ejecútelo con java -jar:
java -jar jolokia-mcp-server-0.5.2-runner.jar [Jolokia URL]
Usando JBang, puede ejecutarlo directamente con el GAV de Maven (org.jolokia.mcp:jolokia-mcp-server:0.5.2:runner):
jbang org.jolokia.mcp:jolokia-mcp-server:0.5.2:runner
Transporte HTTP
Por defecto, este servidor MCP se ejecuta con transporte stdio. Para cambiarlo a transporte HTTP, use la opción --sse:
java -jar jolokia-mcp-server-0.5.2-runner.jar --sse
El endpoint de transporte HTTP se inicia por defecto en http://localhost:8080/mcp.
Opciones de configuración
| Parámetro/Opción | Predeterminado | Descripción |
|---|---|---|
| Parámetro posicional | http://localhost:8778/jolokia | La URL del endpoint de Jolokia al que se conecta el servidor MCP |
--sse | false (stdio) | Habilita el transporte HTTP |
-D*=* | Propiedades del sistema |
Las propiedades del sistema relevantes para el servidor MCP:
| Propiedad del sistema | Predeterminado | Descripción |
|---|---|---|
quarkus.http.port | 8080 | (SSE) El puerto para el endpoint SSE |
quarkus.mcp.server.sse.root-path | mcp | (SSE) La ruta raíz para el endpoint SSE (http://localhost:8080/mcp/sse) |
jolokia.mcp.url | http://localhost:8778/jolokia | Equivalente al parámetro posicional |
jolokia.mcp.preferred-http-method | No establecido | Método HTTP preferido para solicitudes de Jolokia (GET o POST) |
Compilación
mvn clean install