Jolokia MCP Server

Uma ponte JMX-HTTP para interagir com aplicações Java usando o agente Jolokia.

Documentação

Servidor MCP Jolokia

Test

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 MBean
      • attribute (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 MBean
      • attribute (String): Nome do atributo
      • value (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 MBean
      • operation (String): Nome da operação
      • args (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çãoPadrãoDescrição
Parâmetro posicionalhttp://localhost:8778/jolokiaA URL do endpoint Jolokia à qual o servidor MCP se conecta
--httpfalse (stdio)Habilita transporte HTTP
--ssefalse (stdio)Obsoleto. Use --http
--port=<number>8080A 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 sistemaPadrãoDescrição
quarkus.http.port8080(HTTP) A porta para o endpoint HTTP
jolokia.mcp.urlhttp://localhost:8778/jolokiaEquivalente ao parâmetro posicional
jolokia.mcp.preferred-http-methodNão definidoMétodo HTTP preferido para solicitações Jolokia (GET ou POST)

Build

mvn clean install