Jolokia MCP Server
Uma ponte JMX-HTTP para interagir com aplicações Java usando o agente Jolokia.
Documentação
Servidor MCP Jolokia
Servidor MCP para Jolokia, uma ponte JMX-HTTP para aplicações Java. Este servidor MCP permite que um LLM gerencie uma aplicação Java usando a API JMX via Jolokia.
https://github.com/user-attachments/assets/624ec93b-da69-49b5-be8f-02f2ff14bd2e
Distribuições
Desde a versão 0.4, o Servidor MCP Jolokia oferece duas distribuições distintas para atender a diferentes necessidades de implantação:
Servidor MCP Standalone
O Servidor MCP Standalone atua como um servidor MCP convencional; ele é registrado no host MCP via stdio ou HTTP, e o próprio servidor MCP se comunica com sua aplicação Java, que deve ter um agente Jolokia anexado, via JMX sobre HTTP.
Para usar o Servidor MCP Standalone, você precisará primeiro anexar um agente Jolokia à sua aplicação Java. Para instruções detalhadas sobre como fazer isso, consulte o manual do Jolokia: https://jolokia.org/reference/html/manual/agents.html
Servidor MCP Agente JVM
Em contraste, o Servidor MCP Agente JVM fornece um substituto simplificado e "plug-and-play" para o Agente JVM Jolokia padrão.
Com esta distribuição, você simplesmente anexa o Agente JVM do Servidor MCP à sua aplicação em vez do Agente JVM Jolokia padrão. O Servidor MCP Agente JVM então abre diretamente uma porta HTTP para o protocolo MCP, transformando efetivamente sua própria aplicação Java em um Servidor MCP.
Recursos
Este servidor MCP conecta-se a uma única JVM na inicialização e fornece os seguintes recursos na JVM conectada:
- Listar MBeans da JVM conectada
- Listar operações de um MBean
- Listar atributos de um MBean
- Ler/escrever atributos de um MBean
- Executar operações em um MBean
Ferramentas
Este servidor MCP fornece 6 ferramentas.
- listMBeans
- Lista os MBeans disponíveis da JVM
- Saída (
List<String>): Lista de todos os nomes de objetos MBean na JVM
- listMBeanOperations
- Lista as operações disponíveis para um determinado MBean
- Entradas:
mbean(String): Nome do MBean
- Saída (
String): Definições formatadas em JSON de todas as operações disponíveis para o MBean fornecido
- listMBeanAttributes
- Lista os atributos disponíveis para um determinado MBean
- Entradas:
mbean(String): Nome do MBean
- Saída (
String): Definições formatadas em JSON de todos os atributos disponíveis para o MBean fornecido
- readMBeanAttribute
- Lê um atributo de um determinado MBean
- Entradas:
mbean(String): Nome do MBeanattribute(String): Nome do atributo
- Saída (
String): Representação em string do valor do atributo fornecido ou "null"
- writeMBeanAttribute
- Define o valor de um atributo de um determinado MBean
- Entradas:
mbean(String): Nome do MBeanattribute(String): Nome do atributovalue(Object): Valor do atributo
- Saída (
String): Representação em string do valor anterior do atributo fornecido ou "null"
- executeMBeanOperation
- Executa uma operação em um determinado MBean
- Entradas:
mbean(String): Nome do MBeanoperation(String): Nome da operaçãoargs(Object[]): Argumentos
- Saída (
String): Representação em string do valor de retorno da operação ou "null"
Instalação
Standalone
Baixe o jar do runner do servidor MCP:
Para instalar o servidor MCP Jolokia em um host MCP, adicione a seguinte entrada às configurações do MCP:
{
"mcpServers": {
"jolokia": {
"command": "java",
"args": [
"-jar",
"<path-to-the-runner-jar>/jolokia-mcp-0.6.0-runner.jar"
]
}
}
}
Ou se preferir usar JBang (sem necessidade de baixar o jar com este método):
{
"mcpServers": {
"jolokia": {
"command": "jbang",
"args": [
"org.jolokia.mcp:jolokia-mcp-server:0.6.0:runner"
]
}
}
}
Agente JVM
Baixe o jar do javaagent do servidor MCP:
Em seguida, execute sua aplicação Java com a opção -javaagent:
java -javaagent:jolokia-mcp-agent-jvm-0.6.0-javaagent.jar -jar your-app.jar
Isso abriria o transporte HTTP do MCP em http://localhost:8779/mcp.
Para registrar o servidor MCP Jolokia em um host MCP, adicione a seguinte entrada às configurações do MCP:
{
"mcpServers": {
"jolokia": {
"httpUrl": "http://localhost:8779/mcp"
}
}
}
Execução
Execute com java -jar:
java -jar jolokia-mcp-server-0.6.0-runner.jar [Jolokia URL]
Usando JBang, você pode executá-lo diretamente com o GAV Maven (org.jolokia.mcp:jolokia-mcp-server:0.6.0:runner):
jbang org.jolokia.mcp:jolokia-mcp-server:0.6.0:runner
Transporte HTTP
Por padrão, este servidor MCP executa com transporte stdio. Para alternar para transporte HTTP, use a opção --http:
java -jar jolokia-mcp-server-0.6.0-runner.jar --http
O endpoint de transporte HTTP é iniciado por padrão em http://localhost:8080/mcp.
Opções de Configuração
| Parâmetro/Opção | Padrão | Descrição |
|---|---|---|
| Parâmetro posicional | http://localhost:8778/jolokia | A URL do endpoint Jolokia à qual o servidor MCP se conecta |
--http | false (stdio) | Habilita transporte HTTP |
--sse | false (stdio) | Obsoleto. Use --http |
--port=<number> | 8080 | A porta para o endpoint HTTP. Equivalente a -Dquarkus.http.port=<number>. Quando a opção é definida, HTTP é sempre habilitado |
--method=<GET|POST> | Método HTTP preferido para solicitações Jolokia (GET ou POST). Equivalente a -Djolokia.mcp.preferred-http-method=<method> | |
-D*=* | Propriedades do sistema |
As propriedades do sistema relevantes para o servidor MCP:
| Propriedade do sistema | Padrão | Descrição |
|---|---|---|
quarkus.http.port | 8080 | (HTTP) A porta para o endpoint HTTP |
jolokia.mcp.url | http://localhost:8778/jolokia | Equivalente ao parâmetro posicional |
jolokia.mcp.preferred-http-method | Não definido | Método HTTP preferido para solicitações Jolokia (GET ou POST) |
Build
mvn clean install