digline — MCP-сервер для Claude Code: читает и измеряет прогоны eval
Даёт агенту доступ к результатам прогонов digline: посмотреть сохранённые, сравнить с базой, запустить новый. Продвинуть baseline через него нельзя.
claude mcp add digline-mcp -- uvx digline-mcpЧто делает digline
Сервер отдаёт восемь инструментов. list_runs показывает прогоны набора от свежих к старым и помечает baseline, get_run и get_baseline возвращают вердикты, compare сверяет прогон с базой, diff — два прогона между собой, explain разбирает один прогон по типизированным фактам вместе с кодом выхода, log показывает, какая модель отвечала. Инструмента promote здесь нет намеренно: baseline — это утверждённая ссылка, и запись в неё должна приходить от человека, а не от агента. Отказ агент мог бы оспорить, отсутствие инструмента — нет.
Перед запуском run требует обязательный acknowledge_calls, равный числу запланированных обращений к цели. Без него вызов отклоняется, но сервер тут же называет нужное число — например, для набора из 20 кейсов по 5 сэмплов это 100 обращений. Только после повторного вызова с этим числом набор выполняется.
Ставится через uv pip install digline-mcp, запускается командой digline-mcp с аргументом --root на корень репозитория. Один сервер обслуживает один репозиторий: для нескольких проектов поднимают несколько именованных серверов. Флаги --tenant и --env только проверяются и ничего не переопределяют — решает набор. Учтите: каждый инструмент, включая читающие, загружает названный набор, а suite.py исполняет код проекта в окружении сервера. В ответы попадает только проекция вердиктов — имя, статус, счёт, порог, допуск, интервал и раскрытые метаданные; причина от судьи не пересекает границу, потому что судья цитирует вывод.
Какие задачи решает
- посмотреть, какие прогоны набора уже сохранены и где baseline
- сравнить свежий прогон с утверждённой базой и увидеть регресс
- сопоставить два прогона, ни один из которых не эталон
- разобрать один прогон по фактам вместе с кодом выхода
- запустить набор, заранее подтвердив число обращений к цели
Примеры запросов агенту
- Покажи все сохранённые прогоны набора
suite.pyи отметь baseline - Сравни последний прогон с baseline — стало хуже?
- Запусти
suite.py, число обращений к цели подтверждаю: 100
Как установить digline
Командой платформы
claude mcp add digline-mcp -- uvx digline-mcpuvx запускает команду с именем пакета; если в README она другая — uvx --from digline-mcp <команда>
Командой платформы
codex mcp add digline-mcp -- uvx digline-mcpuvx запускает команду с именем пакета; если в README она другая — uvx --from digline-mcp <команда>
Файл настроек
{
"mcpServers": {
"digline-mcp": {
"command": "uvx",
"args": [
"digline-mcp"
]
}
}
}uvx запускает команду с именем пакета; если в README она другая — uvx --from digline-mcp <команда>
Файл настроек
{
"servers": {
"digline-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"digline-mcp"
]
}
}
}uvx запускает команду с именем пакета; если в README она другая — uvx --from digline-mcp <команда>
Командой платформы
gemini mcp add digline-mcp uvx digline-mcpuvx запускает команду с именем пакета; если в README она другая — uvx --from digline-mcp <команда>
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о digline
Как установить digline в Claude Code?
Одной командой: claude mcp add digline-mcp -- uvx digline-mcp. После этого сервер появится в списке MCP-серверов Claude.
Что делает digline?
Читает сохранённые прогоны eval-набора digline, измеряет новый прогон и объясняет результат. Продвинуть baseline он не может — такого инструмента в нём нет.
Почему run отказывается работать без acknowledge_calls?
Так агент не потратит сотни вызовов модели, не назвав число заранее. При отказе сервер возвращает, сколько обращений планирует набор, и ждёт повторного вызова с этим значением.