Arthas MCP Proxy
Proxy MCP de Arthas
Servidor proxy de diagnóstico de Arthas basado en MCP (Model Context Protocol), que permite la conexión dinámica a cualquier servidor a través de SSH dentro de las conversaciones de Claude para realizar diagnósticos de JVM en tiempo real.
Características
Conexión dinámica en la conversación: Pase directamente la dirección SSH, el nombre de usuario y la contraseña/clave para conectarse al servidor de destino en tiempo real.
Diagnóstico paralelo de múltiples procesos: Cada proceso de JVM tiene un agente de Arthas independiente, lo que permite cambiar de PID sin latencia.
Reutilización automática del pool de conexiones: Almacena en caché las conexiones SSH por
user@host:porty las libera automáticamente tras 5 minutos de inactividad.Attach automático de Arthas: Se conecta automáticamente en segundo plano al PID de destino la primera vez que se utiliza, reutilizándolo posteriormente.
Despliegue remoto SSE: Admite despliegue residente en modo HTTP SSE, permitiendo que Claude se conecte a través de una URL.
Soporte para construcción offline: Permite la construcción de Docker en entornos de red interna sin acceso a internet mediante la descarga previa de paquetes whl.
Related MCP server: javaperf
Lista de herramientas MCP
Nombre de la herramienta | Descripción |
| Establece una conexión SSH y devuelve un session_id |
| Lista los procesos Java en la máquina de destino (muestra el estado de adjunto de Arthas) |
| Obtiene la pila de hilos (top N por CPU) |
| Consulta información de memoria/Dashboard |
| Monitorea los parámetros de entrada y valores de retorno de un método |
| Ejecuta cualquier comando de Arthas |
| Cierra la conexión SSH y libera recursos |
Modelo de diagnóstico concurrente
Importante: Cada proceso de JVM de Arthas requiere una instancia de agente independiente
PID 1234 (web) <---> Arthas agent (port 3658)
PID 5678 (cpu) <---> Arthas agent (port 3660)
PID 9012 (memory) <---> Arthas agent (port 3661)Primer uso: Se conecta automáticamente en segundo plano, Arthas asigna un puerto automáticamente (aprox. 5 segundos).
Cambios posteriores: Conexión directa al agente existente, latencia cero.
Soporte multiproceso: Puede mantener múltiples agentes ejecutándose simultáneamente y cambiar entre ellos a voluntad.
Consumo de recursos: Cada agente consume aproximadamente 20-30 MB de memoria; se recomienda un máximo de 10 simultáneos.
Liberación: Se limpia automáticamente al ejecutar
stopmedianteexec_commando al cerrar la conexión SSH.
Stack tecnológico
Componente | Selección |
Lenguaje | Python 3.11+ |
MCP SDK | mcp >= 1.6.0 |
Librería SSH | paramiko >= 3.4.0 |
Framework HTTP | starlette + uvicorn |
Inicio rápido
1. Construcción online (entorno con red)
docker build -t arthas-mcp-proxy .
# 或
docker-compose up -d2. Construcción offline (entorno de red interna sin internet)
Paso 1: Descarga previa de dependencias en una máquina con acceso a internet
bash download-packages.sh
# 完成后 packages/ 目录包含所有 .whl 文件Paso 2: Empaquetar y transferir a la red interna
zip -r arthas-mcp-proxy.zip arthas-mcp-proxy/
# 通过 U 盘/SCP 传入内网服务器Paso 3: Construcción en la red interna
cd arthas-mcp-proxy
docker build --build-arg PIP_SOURCE=offline -t arthas-mcp-proxy .
# 或
PIP_SOURCE=offline docker-compose up -d --build3. Configuración de Claude
Modo SSE (despliegue remoto):
{
"mcpServers": {
"arthas": {
"type": "sse",
"url": "http://your-server-ip:8000/sse"
}
}
}Modo stdio (integración local):
{
"mcpServers": {
"arthas": {
"command": "python",
"args": ["/path/to/main.py", "--transport", "stdio"]
}
}
}Ejemplo de uso
En la conversación de Claude:
连接到 192.168.1.100,用户 root,密码 xxx,查看上面的 Java 进程。Claude llamará automáticamente a connect_ssh -> list_java_processes.
Luego:
查看 PID 1234 的线程栈 top 10,然后查看 PID 5678 的内存情况。Claude cambiará automáticamente el diagnóstico entre múltiples PIDs, realizando el attach automáticamente la primera vez que se usa cada PID y reutilizándolo después.
Estructura del proyecto
arthas-mcp-proxy/
├── main.py # MCP Server 入口(SSE + stdio 双模式)
├── ssh_pool.py # SSH 连接池(动态连接 + session 复用)
├── arthas_client.py # Arthas 命令封装(多 PID 并行支持)
├── requirements.txt # Python 依赖
├── Dockerfile # 双模式构建 Dockerfile
├── docker-compose.yml # Docker Compose 配置
├── download-packages.sh # 外网预下载脚本
├── packages/ # 离线 whl 包目录
└── README.md # 本文档Requisitos de la máquina de destino
Arthas instalado (
/opt/arthas/as.sho ruta personalizada).SSH accesible, el usuario que ejecuta tiene permisos para hacer attach a la JVM de destino.
Comando
jpsdisponible (incluido con el JDK).
Licencia
Licencia MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Run commands and read/write files on your servers over Termalin's keyless tunnels (hosted MCP).
Create, deploy, and operate MCP servers directly from your GitHub repositories.
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
- AgentCatOAuthcom.agentcat
Analytics and debugging for your MCP server — explore usage and sessions, then root-cause errors.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceJava diagnostics MCP server for LLM integration with Alibaba Arthas, enabling analysis and diagnosis of Java applications.56MIT
- AlicenseAqualityDmaintenanceMCP server for profiling Java applications via JDK utilities (jcmd, jfr, jps). Enables AI assistants to diagnose performance, analyze threads, and inspect JFR recordings without manual CLI usage.262610MIT
- AlicenseAqualityDmaintenanceEnables AI tools to manage SSH connections, execute commands, transfer files, and perform remote server diagnostics via MCP protocol.1713MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that connects AI agents to live Java processes via Alibaba Arthas, enabling real-time diagnostics, debugging, and performance analysis without code changes.25MIT