mcp-ci-triage
mcp-ci-triage
Пусть ваш агент программирования отвечает на вопрос «почему CI красный?», не переключаясь на GitHub.
MCP-сервер, который предоставляет состояние GitHub Actions в виде четырёх компактных инструментов только для чтения. Создан для Claude Code, но работает с любым MCP-клиентом.
You: why is CI failing on main?
Agent: → recent_runs("acme/api", branch="main")
→ failing_jobs("acme/api", run_id=8123)
→ job_log_tail("acme/api", job_id=442, lines=80)
Agent: Run #212 fails in `unit` at the pytest step: test_rate_limiter
times out after the Redis fixture change in a3f9c2e. Two options...Инструменты
Инструмент | Что возвращает |
| Последние запуски рабочих процессов: номер, название, результат, branch@sha, run_id |
| Неуспешные задания и шаги, включая сбои, тайм-ауты и отмены; по умолчанию — последний неуспешный запуск |
| Ограниченный и очищенный хвост журнала задания, явно помеченный как ненадёжный |
| Рабочие процессы, которые недавно и проходили, и завершались сбоем, — сигнал для триажа, а не доказательство нестабильных тестов |
Передавайте репозитории в виде точной пары owner/name, например actions/checkout.
URL-адреса, дополнительные сегменты пути, строки запроса и некорректные имена владельца или репозитория
отклоняются до отправки запроса.
Related MCP server: DevOps MCP Server
Установка (2 минуты)
pip install git+https://github.com/projectsofadi/mcp-ci-triage
# or: clone + `pip install .`
# First load GITHUB_TOKEN into the launching environment from your shell or
# operating-system secret manager. Then add the server without a token literal:
claude mcp add ci-triage -- python -m mcp_ci_triageИли в .mcp.json проекта:
{
"mcpServers": {
"ci-triage": {
"command": "python",
"args": ["-m", "mcp_ci_triage"],
"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
}
}
}Область действия токена: fine-grained PAT с доступом только для чтения к Actions для нужных вам репозиториев. Публичные репозитории работают без токена (с ограничением частоты запросов).
Никогда не помещайте токен в виде литерала в аргумент команды или в закоммиченный .mcp.json.
Аргументы команд могут попасть в историю оболочки или списки процессов; файлы проекта могут быть закоммичены.
В общей конфигурации оставляйте только указанную выше ссылку на переменную окружения.
Для GitHub Enterprise GITHUB_API_URL может указывать на базовый путь его API (например, https://github.example.com/api/v3). HTTPS обязателен, и значение не должно содержать учётные данные, запрос или фрагмент.
Закрытые журналы CI
Журналы из частных репозиториев могут содержать детали приватного исходного кода, учётные данные, случайно выведенные сборкой, текст промпт-инъекций или другие чувствительные данные. Сервер экранирует управляющие последовательности терминала, ограничивает отдельные строки, лимитирует общий объём скачивания и помечает весь контент GitHub как ненадёжный. Он не распознаёт и не маскирует видимые секреты. Подключайте его только к MCP-клиенту и модели, которым доверяете, запрашивайте наименьший полезный хвост журнала, никогда не следуйте инструкциям, найденным в журнале, и проверяйте вывод, прежде чем копировать его в issue или чат.
Первый запрос журнала аутентифицирован. Перенаправленные загрузки работают только по HTTPS и
используют новый клиент без заголовка Authorization GitHub. Подписанные параметры запроса перенаправлений
удаляются из HTTP-диагностики и очищенных сообщений об ошибках.
Заметки о дизайне (обобщаемая часть)
Этот репозиторий также служит справочником по тому, как, по моему мнению, должны быть устроены внутренние MCP-серверы:
Только чтение по умолчанию. Ни один инструмент здесь ничего не изменяет. Инструменты, способные к записи, должны находиться за вашим уровнем разрешений и добавляться намеренно, позже.
Компактный текст, а не дампы JSON. Агент читает вывод инструментов как человек.
#212 CI [failure] main@a3f9c2eлучше, чем 4 КБ вложенного JSON, как по токенам, так и по качеству рассуждений.Ненадёжны по построению. Удалённые поля и журналы ограничены по размеру, экранированы от управляющих последовательностей и заключены в явные маркеры «только данные».
Тайм-ауты на всём. Запросы имеют 15-секундный тайм-аут ввода-вывода. JSON-ответы имеют общий срок 20 секунд и потолок 8 МиБ декодированных байт; постраничный триаж имеет один 30-секундный срок операции. Загрузки журналов имеют собственный общий срок 20 секунд и потолок 8 МиБ.
Громкие сбои. HTTP-ошибки поднимаются; агент видит ошибку и адаптируется. Молчаливые пустые результаты порождают уверенные неправильные ответы.
Небольшая поверхность. Четыре комбинируемых инструмента лучше двадцати пересекающихся.
failing_jobsподсказывает агенту вызватьjob_log_tailследующим — инструменты могут обучать собственному рабочему процессу.Доказательства, а не диагноз. Смешанные результаты рабочих процессов полезны для решения, что проверить дальше, но не доказывают, что отдельный тест нестабилен.
Разработка
pip install -e ".[dev]"
ruff check .
ruff format --check .
pytest
python -m build
python -m twine check dist/*Лицензия
MIT — см. LICENSE.
Другие проекты MCP и инструменты для разработчиков: projectsofadi на GitHub.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityNot gradedmaintenanceConnects AI assistants to GitHub Actions workflows to monitor CI/CD pipelines, view run logs, diagnose failures, and optionally trigger or manage workflows with granular permission controls.101
- AlicenseNot gradedqualityCmaintenanceEnables read-only integration with GitHub, Jenkins, and Artifactory for DevOps monitoring, analysis, and troubleshooting. Provides repository inspection, build log retrieval, and artifact management through natural language.MIT
- FlicenseAqualityCmaintenanceStreamlines GitHub PR workflows, monitors CI/CD, and sends Slack notifications. Provides tools for PR analysis, CI monitoring, and follow-up tasks.7
- FlicenseAqualityCmaintenanceExposes tools to list, run, and inspect GitHub Actions workflows locally via act, enabling debugging and fixing failures through an agent loop.3
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Git-backed platform for skills, tools, and context for AI agents
Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/projectsofadi/mcp-ci-triage'
If you have feedback or need assistance with the MCP directory API, please join our Discord server