TDA Thread Dump Analyzer MCP

Анализатор дампов потоков Java с MCP-сервером: агент ищет взаимоблокировки и зависшие потоки, не читая сотни мегабайт стека

  • 552 ★ репозитория
  • Последний коммит
  • LGPL-2.1
MCP-серверОфициальный

Расширенный доступ

Почему такой уровень

  • Запускает локальный процесс Java, который читает указанные вами лог-файлы
  • Дампы потоков продакшена содержат имена потоков, стеки и иногда данные запросов, которые попадают в ответы агенту
Все причины и проверки

irockel/tda

Установка

Ручная установка

claude mcp add tda -- java -Djava.awt.headless=true -jar /absolute/path/to/tda.jar --mcp

Сначала скачайте tda.jar из раздела Releases репозитория и подставьте реальный путь. Нужна Java 11 или новее.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Запускает локальный процесс Java, который читает указанные вами лог-файлы
  • Дампы потоков продакшена содержат имена потоков, стеки и иногда данные запросов, которые попадают в ответы агенту

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

TDA — программа на Java для разбора дампов потоков, которая умеет работать без окна как MCP-сервер. Команда `java -Djava.awt.headless=true -jar tda.jar --mcp` запускает ее в режиме stdio, и агент работает через инструменты без чтения сырого лога. Дамп продакшена может занимать сотни мегабайт, поэтому скилл в репозитории запрещает агенту открывать такие файлы и отправляет все запросы в TDA. Восемь инструментов собраны в цепочку диагностики. Первым всегда вызывается parse_log, который загружает файл. Затем get_summary показывает список дампов с временем, числом потоков и взаимоблокировок, а check_deadlocks ищет взаимные блокировки. Инструмент find_long_running находит потоки, которые в нескольких последовательных дампах остаются в одном состоянии с одним стеком. Инструмент analyze_virtual_threads ловит виртуальные потоки, у которых несущий поток застрял в коде приложения. Еще три инструмента перечисляют потоки в нативных методах, показывают зомби-потоки с неразрешенными адресами SMR и сбрасывают состояние перед новым файлом. Проект поддерживает дампы Java от 1.4 до 21 и выше, включая виртуальные потоки и экспериментальные дампы в формате JSON. Кроме MCP в репозитории есть оконное приложение на Swing, плагин VisualVM и скилл для агентов. Для агентов без MCP скилл содержит мост на Python: `tda_client.py analyze` с путем к логу.

Для кого. Для Java-разработчиков и инженеров эксплуатации, которые с помощью Claude Code, Codex, Cursor или Junie разбирают зависания, всплески CPU и исчерпание пулов потоков по логам jstack.

Подходит, если

  • Вы разбираете зависший Java-сервис: в логе лежит несколько дампов `jstack` или `kill -3`, и агент должен прочитать их, не загружая в контекст целиком
  • Вы подозреваете взаимную блокировку или исчерпание пула соединений с базой и хотите получить список потоков и цепочку ожидания
  • Вы ищете на Java 21 закрепление несущих потоков у виртуальных потоков, при котором задачи встают в очередь
  • Вы сравниваете дампы, снятые с интервалом, чтобы найти потоки, застрявшие в одном месте
  • Вы расследуете утечку зомби-потоков HotSpot по неразрешенным адресам SMR

Не подходит, если

  • Нужен профилировщик CPU или анализ дампа кучи: инструменты MCP разбирают только потоки
  • Нужен поиск застрявших потоков, а дамп один: для него требуются несколько дампов с интервалом
  • Сервис написан не на Java, например на Go или Python: TDA читает форматы дампов JVM
  • Нужен анализ работающей JVM прямо из агента: инструменты MCP читают только сохраненные логи

Пример запроса к агенту

Разбери дамп потоков в файле /var/log/app/incident-dump.log через TDA: есть ли взаимоблокировки, сколько потоков заблокировано и что с виртуальными потоками

MCP

Транспорт
stdio
Авторизация
не нужна

Переменные окружения

TDA_JAR_PATH
Путь к tda.jar для моста на Python, если файл лежит вне стандартных мест поиска.

Ограничения

  • Нужны Java 11 или новее и файл tda.jar из раздела Releases. Мост на Python дополнительно требует Python 3.
  • Все инструменты MCP работают с логом, путь к которому вы указываете. Для работающей JVM предназначены оконное приложение и плагины для jconsole и VisualVM.
  • Для файлов в сотни мегабайт увеличьте память Java, например флагом `-Xmx2g` в аргументах запуска.
  • Поддержка дампов в формате JSON у Java 21 экспериментальная.
  • Установщик для macOS не подписан, поэтому система при первом запуске предупредит о неподтвержденном разработчике.

Как отключить. Удалите запись tda из конфига MCP-клиента или выполните `claude mcp remove tda`. Файл tda.jar можно удалить с диска, а скилл уходит вместе с папкой tda-thread-dump-analysis в каталоге навыков.

Частые вопросы

Как подключить TDA к Claude Code как MCP-сервер?

Скачайте tda.jar из раздела Releases и выполните `claude mcp add tda -- java -Djava.awt.headless=true -jar /абсолютный/путь/к/tda.jar --mcp`. Та же запись в виде JSON работает в Junie, Cursor и Windsurf, для Codex ее оформляют таблицей в config.toml.

Как проанализировать дамп потоков Java с помощью ИИ-агента?

Подключите MCP-сервер, поставьте скилл командой `npx skills add https://github.com/irockel/tda` и попросите агента разобрать файл, например: «Есть ли в этом дампе взаимоблокировки?». Скилл tda-thread-dump-analysis сам ведет агента по цепочке диагностики, от загрузки файла до проверки виртуальных потоков.

Что такое закрепление несущего потока и как его найти?

Это случай, когда виртуальный поток держит несущий поток в коде приложения, и другие виртуальные потоки ждут. Инструмент analyze_virtual_threads показывает такие потоки, а в документации скилла есть справочник по состояниям потоков, графам блокировок и теории закрепления.

Как запустить TDA для очень большого дампа?

Добавьте в аргументы запуска `-Xmx2g` или больше: `java -Djava.awt.headless=true -Xmx2g -jar tda.jar --mcp`. Агенту при этом по-прежнему нельзя читать файл напрямую, все запросы идут через инструменты TDA.

Как работать с TDA в агенте без поддержки MCP?

Скилл содержит мост tda_client.py. Запустите `python3 .agents/skills/tda-thread-dump-analysis/scripts/tda_client.py analyze /путь/к/дампу.log`, для машинного вывода добавьте `--json`. Если tda.jar лежит вне стандартных мест, задайте переменную TDA_JAR_PATH.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы

MCP Server for WinDbg

MCP Server for WinDbg Crash Analysis

MCP-сервер, который отдает агенту отладчики Windows: разбор аварийных дампов, удаленная и ядерная отладка на естественном языке

MCP-серверРасширенный доступ1,6 тыс.Звезды репозитория

MCP-сервер, который индексирует код через tree-sitter и отдает агенту отдельные функции и классы вместо целых файлов

MCP-серверРасширенный доступ2,8 тыс.Звезды репозитория

MCP-сервер, который дает агенту скриншоты, DOM, логи и IPC запущенного приложения на Tauri v2 и умеет кликать по интерфейсу

MCP-серверШирокий доступ329Звезды репозитория

MCP-сервер, который один раз строит граф кода проекта и отдает агенту готовые ответы вместо повторного перечитывания файлов

MCP-серверРасширенный доступ198Звезды репозитория
Официальный

Локальный граф знаний о коде с историей версий: MCP-сервер отвечает агенту, кто вызывает функцию и что сломается от правки

MCP-серверРасширенный доступ508Звезды репозитория

Локальный инструмент для проверки и отладки MCP-серверов: чат с инструментами, просмотр вызовов и прогоны оценок по разным клиентам

CLIРасширенный доступ2,3 тыс.Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
TDA Thread Dump Analyzer (эта запись)дане нужна552
claude-code-javaнет761скиллы для Java-проектов: ревью кода, Spring Boot и конкурентность, без разбора дампов потоков
Plinthнет456набор скиллов и агентов для разработки на Java, включая профилирование

Коротко о README

README объявляет большой релиз с расширенным MCP-сервером и поддержкой SMR, а затем перечисляет способы установки, от самодостаточного JAR до пакета для macOS. Раздел про агентов описывает два пути (скилл и прямой MCP), таблицу инструментов и рекомендуемую системную инструкцию. Дальше идут сборка проекта на Maven и ссылка на статью на dev.to.

Бейдж для README

Сообщить о проблеме

Foxx AITDA Thread Dump Analyzer
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.