jaeger-mcp
jaeger-mcp
MCP-сервер для распределенной трассировки Jaeger. Предоставьте Claude (или любому агенту с поддержкой MCP) доступ на чтение к вашим данным трассировки — ищите трассировки, проверяйте спаны, стройте карту зависимостей сервисов — не покидая диалога.
Зачем нужен еще один Jaeger MCP?
Существующие интеграции Jaeger требуют запущенного UI или пользовательских скриптов. Этот сервер:
Использует стандартный Model Context Protocol через stdio — работает с Claude Desktop, Claude Code, Cursor и любым MCP-клиентом.
Работает только для чтения: все 5 инструментов содержат
readOnlyHint: true— нулевой риск изменения данных трассировки.Возвращает двухканальный вывод: структурированный JSON (
structuredContent) для программного использования + Markdown (content) для отображения человеку.Имеет понятные сообщения об ошибках, которые указывают точную переменную окружения для исправления и предлагают следующий шаг.
Поддерживает Bearer-токен, HTTP Basic auth или отсутствие авторизации (обычно для внутренних развертываний).
Инструменты
Инструмент | Эндпоинт | Описание |
|
| Список всех инструментированных сервисов |
|
| Список имен операций для сервиса |
|
| Поиск трассировок с расширенными фильтрами |
|
| Полные детали трассировки с деревом спанов |
|
| Граф вызовов между сервисами |
Установка
pip install jaeger-mcpИли запустите напрямую без установки:
uvx jaeger-mcpКонфигурация
Вся конфигурация осуществляется через переменные окружения:
Переменная | Обязательно | По умолчанию | Описание |
| Да | — | URL сервиса запросов Jaeger, например |
| Нет | — | Bearer-токен (имеет приоритет над Basic auth) |
| Нет | — | Имя пользователя для HTTP Basic auth |
| Нет | — | Пароль для HTTP Basic auth |
| Нет |
| Установите |
Скопируйте .env.example в .env и заполните свои значения.
Настройка Claude Desktop / Claude Code
Добавьте в вашу конфигурацию MCP (claude_desktop_config.json или .claude/mcp.json):
{
"mcpServers": {
"jaeger": {
"command": "jaeger-mcp",
"env": {
"JAEGER_URL": "https://jaeger.example.com",
"JAEGER_TOKEN": "your-token-here"
}
}
}
}Или с помощью uvx (установка не требуется):
{
"mcpServers": {
"jaeger": {
"command": "uvx",
"args": ["jaeger-mcp"],
"env": {
"JAEGER_URL": "https://jaeger.example.com"
}
}
}
}Docker
docker run --rm -e JAEGER_URL=https://jaeger.example.com jaeger-mcpПримеры запросов
После настройки спросите Claude:
"Какие сервисы известны Jaeger?"
"Найди трассировки с ошибками HTTP 500 в
order-serviceза последний час""Покажи мне самые медленные трассировки (более 2 секунд) для
GET /checkout""Что вызвало ошибку в трассировке
abcdef1234567890?""Построй граф зависимостей сервисов за последние 7 дней"
"Какие сервисы чаще всего вызывают
postgres?"
Руководство по использованию инструментов
jaeger_list_services
Возвращает все имена сервисов, которые видел Jaeger. Начните отсюда, если не знаете, какие сервисы инструментированы. Вывод ограничен 500 сервисами с подсказкой об усечении.
jaeger_list_operations
Возвращает все имена операций для заданного сервиса (например, имена HTTP-маршрутов, имена методов gRPC). Используйте для обнаружения допустимых имен операций перед фильтрацией jaeger_search_traces.
jaeger_search_traces
Основной инструмент поиска. Фильтры:
service(обязательно) — имя сервиса изjaeger_list_servicesoperation— сузить до конкретного эндпоинтаtags— JSON-строка фильтров тегов, например{"http.status_code":"500"}или{"error":"true"}start/end— временной диапазон в микросекундах UTCmin_duration/max_duration— строки длительности, такие как"100ms","1.5s","2m"limit— по умолчанию 20, максимум 1500
Возвращает сводки трассировок с trace_id, duration_us, span_count, service_count, root_operation, errors_count.
jaeger_get_trace
Полные детали трассировки. Принимает trace_id (шестнадцатеричная строка, 16-32 символа) и возвращает:
Все спаны с тегами, именами сервисов, отношениями родитель/потомок
Статистику по сервисам (количество спанов, общая длительность, количество ошибок)
Дерево выполнения (каждый узел перечисляет ID своих дочерних спанов)
Спаны с ошибками идентифицируются по tags["error"] = "true".
jaeger_get_dependencies
Граф топологии сервисов. Возвращает направленные ребра (родитель → потомок) с call_count. Используйте lookback_hours (по умолчанию 24, максимум 720) для управления окном времени.
Характеристики производительности
Все инструменты используют единую постоянную
requests.Sessionс пулом соединений.Сессия имеет
trust_env = Falseдля обхода прокси окружения (Jaeger обычно является внутренним сервисом).Запросы имеют тайм-аут 30 секунд.
jaeger_search_tracesпередаетlimitнапрямую в Jaeger — избегайте запроса большего количества трассировок, чем необходимо.jaeger_get_traceполучает полную трассировку за один вызов — большие трассировки (тысячи спанов) могут работать медленно.jaeger_get_dependenciesагрегирует данные за все окно поиска; большие окна могут работать медленно на загруженных кластерах.
Разработка
git clone https://github.com/mshegolev/jaeger-mcp
cd jaeger-mcp
pip install -e '.[dev]'
pytest tests/ -v
ruff check src tests
ruff format src testsЛицензия
MIT — см. LICENSE.
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/mshegolev/jaeger-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server