Arthas MCP Proxy
Arthas MCP Proxy
Диагностический прокси-сервер Arthas на базе MCP (Model Context Protocol), поддерживающий динамическое подключение к любому серверу через SSH для диагностики JVM в реальном времени прямо в диалоге с Claude.
Функциональные возможности
Динамическое подключение в диалоге: прямая передача SSH-адреса, имени пользователя, пароля/ключа для подключения к целевому серверу в реальном времени.
Параллельная диагностика нескольких процессов: для каждого процесса JVM используется отдельный агент Arthas, переключение PID происходит без задержек.
Автоматическое повторное использование пула соединений: кэширование SSH-соединений по
user@host:port, автоматическое освобождение после 5 минут простоя.Автоматический attach Arthas: автоматический фоновый attach при первом использовании целевого PID, последующее повторное использование.
Удаленное развертывание SSE: поддержка постоянного развертывания в режиме HTTP SSE, подключение Claude через URL.
Поддержка оффлайн-сборки: возможность сборки Docker в изолированных сетях с помощью предварительно загруженных пакетов whl.
Список инструментов MCP
Название инструмента | Описание |
| Установка SSH-соединения, возвращает session_id |
| Список Java-процессов на целевой машине (отображает статус подключения Arthas) |
| Получение стека потоков (top N по CPU) |
| Просмотр информации о памяти/Dashboard |
| Отслеживание входных параметров и возвращаемых значений метода |
| Выполнение любой команды Arthas |
| Разрыв SSH-соединения и освобождение ресурсов |
Модель параллельной диагностики
Важно: для каждого процесса JVM в Arthas требуется отдельный экземпляр агента
PID 1234 (web) <---> Arthas agent (port 3658)
PID 5678 (cpu) <---> Arthas agent (port 3660)
PID 9012 (memory) <---> Arthas agent (port 3661)Первое использование: автоматический фоновый attach, Arthas автоматически назначает порт (около 5 секунд).
Последующее переключение: прямое подключение к существующему агенту, нулевая задержка.
Поддержка нескольких процессов: возможность одновременного поддержания работы нескольких агентов, переключение в любой момент.
Потребление ресурсов: каждый агент потребляет около 20-30 МБ памяти, рекомендуется использовать не более 10 одновременно.
Освобождение: автоматическая очистка при выполнении команды
stopчерезexec_commandили при разрыве SSH-соединения.
Технологический стек
Компонент | Выбор |
Язык | Python 3.11+ |
MCP SDK | mcp >= 1.6.0 |
SSH-библиотека | paramiko >= 3.4.0 |
HTTP-фреймворк | starlette + uvicorn |
Быстрый старт
1. Сборка онлайн (при наличии сети)
docker build -t arthas-mcp-proxy .
# 或
docker-compose up -d2. Сборка оффлайн (в изолированной сети)
Шаг 1: Предварительная загрузка зависимостей на машине с доступом в интернет
bash download-packages.sh
# 完成后 packages/ 目录包含所有 .whl 文件Шаг 2: Упаковка и перенос в изолированную сеть
zip -r arthas-mcp-proxy.zip arthas-mcp-proxy/
# 通过 U 盘/SCP 传入内网服务器Шаг 3: Сборка в изолированной сети
cd arthas-mcp-proxy
docker build --build-arg PIP_SOURCE=offline -t arthas-mcp-proxy .
# 或
PIP_SOURCE=offline docker-compose up -d --build3. Настройка Claude
Режим SSE (удаленное развертывание):
{
"mcpServers": {
"arthas": {
"type": "sse",
"url": "http://your-server-ip:8000/sse"
}
}
}Режим stdio (локальное встраивание):
{
"mcpServers": {
"arthas": {
"command": "python",
"args": ["/path/to/main.py", "--transport", "stdio"]
}
}
}Пример использования
В диалоге с Claude:
连接到 192.168.1.100,用户 root,密码 xxx,查看上面的 Java 进程。Claude автоматически вызовет connect_ssh -> list_java_processes.
Затем:
查看 PID 1234 的线程栈 top 10,然后查看 PID 5678 的内存情况。Claude автоматически переключится между диагностикой различных PID, выполняя автоматический attach при первом использовании каждого PID и повторно используя его в дальнейшем.
Структура проекта
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 # 本文档Требования к целевой машине
Установлен Arthas (
/opt/arthas/as.shили пользовательский путь).Доступность по SSH, пользователь имеет права на выполнение attach к целевой JVM.
Доступна команда
jps(входит в состав JDK).
Лицензия
MIT License
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/narcissux/arthas-mcp-proxy'
If you have feedback or need assistance with the MCP directory API, please join our Discord server