Skip to main content
Glama
sid-stack001

DevContext

by sid-stack001

DevContext

Python MCP License: MIT

DevContext — это прототип сервера Model Context Protocol (MCP) и CLI-инструмент, который предоставляет ИИ-ассистентам и инженерам данные о наблюдаемости рантайма (логи, деплои и метрики здоровья) для помощи в разборе инцидентов.


Обзор

ИИ-ассистенты могут просматривать исходный код репозиториев и предлагать исправления, но часто не видят, что происходит во время инцидентов в рантайме (например, недавние деплои, всплески частоты ошибок, переполнение диска или сбои внешних API). DevContext — это экспериментальный инструмент, который открывает контекст рантайма через интерфейс командной строки (CLI) и стандартные вызовы инструментов MCP.


Related MCP server: Nibble

Команды CLI и инструмента

DevContext можно запускать напрямую из командной строки или регистрировать как MCP-сервер.

1. devcontext diagnose

Запускает автоматический разбор инцидентов на встроенных наборах данных или пользовательских файлах/папках:

# Diagnose built-in service dataset
devcontext diagnose --service order-processing

# Output raw JSON format
devcontext diagnose --service order-processing --json

# Point at custom log, deploy, and health paths (files or log directories)
devcontext diagnose --log-path /var/log/app/ --deploys-path deploys.json --health-path health.json

# Enable experimental Groq LLM extraction
devcontext diagnose --service order-processing --use-llm

2. devcontext serve

Запускает stdio MCP-сервер для подключения к MCP-хостам (например, Claude Desktop, Antigravity):

devcontext serve

Варианты разбора логов

  1. Детерминированный парсер (parser.py): использует эвристики для выборки строк логов и попытки сопоставления структуры (JSON-lines, CSV, пары ключ-значение или временные метки в скобках с разделителями по пробелу).

    • Ограничение: лучше всего подходит для простых однострочных логов. Сложные многострочные трассировки стека или нестандартные кастомные форматы могут выполнять откат к базовому сопоставлению строк.

  2. Экспериментальная LLM-экстракция (extraction.py): опционально отправляет фрагменты логов в API Groq (response_format={"type": "json_object"}) для извлечения структурированных объектов событий.

    • Ограничение: добавляет задержку API (~200–400 мс) и расходы на токены; при отсутствии API-ключа или по тайм-ауту выполняется откат к детерминированному парсеру.


Варианты источников данных

  • Встроенные демонстрационные данные: передайте имя сервиса (например, service_name="order-processing"), чтобы запросить встроенные демонстрационные данные.

  • Пользовательские пути к файлам или папкам:

    • log_path: путь к одному файлу лога или папке с разделёнными файлами .log / .txt.

    • deploys_path: путь к пользовательскому файлу deploys.json.

    • health_path: путь к пользовательскому файлу health.json.


Оценка и тестовые сценарии

Репозиторий содержит оценочный стенд (eval.py), протестированный на 5 синтетических тестовых сценариях:

Сценарий

Сервис

Тип сценария

Ожидаемый результат

Итог

scenario_1_bad_deploy

payment-service

Снижение лимитов ресурсов

Определить деплой f8a1c92

Пройден

scenario_2_disk_full

storage-service

Переполнение диска (без недавнего деплоя)

Определить переполнение диска (98%)

Пройден

scenario_3_memory_leak

analytics-worker

Утечка памяти / OOM

Определить насыщение памяти (97%)

Пройден

scenario_4_downstream_outage

notification-service

Сбой внешнего API

Определить ошибки SendGrid 503

Пройден

scenario_5_bad_migration

user-service

Неудачная миграция базы данных

Определить деплой d4e912f

Пройден

Ограничения и область применения

  • Небольшой набор тестов: этот оценочный набор содержит 5 синтетических тестовых сценариев для валидации. Это не полная производственная эталонная база.

  • Эвристическое сопоставление: функция diagnose() использует простые правила (например, проверку, произошёл ли деплой в течение 10 минут после первой ошибки). Реальные иниценты инфраструктуры часто сложнее и могут включать несколько взаимодествующих факторов.


Архитектура

┌─────────────────────────────────────────────────────────┐
│              CLI / MCP Clients                          │
│     (devcontext CLI / Claude Desktop / Antigravity)     │
└───────────────────────────┬─────────────────────────────┘
                            │ CLI Args / stdio JSON-RPC
┌───────────────────────────▼─────────────────────────────┐
│              DevContext Entry Point                     │
│               (cli.py / server.py)                      │
└───────────────────────────┬─────────────────────────────┘
                            │
┌───────────────────────────▼─────────────────────────────┐
│                 Diagnostic Core (tools.py)               │
└───────┬───────────────────┬─────────────────────┬───────┘
        │                   │                     │
┌───────▼───────────┐ ┌─────▼─────────────┐ ┌─────▼─────────────┐
│ Structure Parser  │ │ Deployment Engine │ │ Health Observer   │
│   (parser.py)     │ │ (deploys.json)    │ │ (health.json)     │
└───────┬───────────┘ └───────────────────┘ └───────────────────┘
        │
┌───────┴─────────────────────────────────────────┐
│  Groq API (Optional LLM log extraction)         │
└─────────────────────────────────────────────────┘

Быстрый старт и настройка

1. Установка

git clone https://github.com/your-username/devcontext.git
cd devcontext
pip install -e .

2. Диагностика сервиса через CLI

devcontext diagnose --service order-processing

3. Регистрация в качестве MCP-сервера (Claude Desktop)

Добавьте DevContext в ваш файл claude_desktop_config.json:

{
  "mcpServers": {
    "devcontext": {
      "command": "devcontext",
      "args": [
        "serve"
      ]
    }
  }
}

4. Запуск оценочного набора

python eval.py

5. Необязательная настройка API-ключа

Скопируйте .env.example в .env, если вы используете Groq для экспериментальной LLM-экстракции данных:

cp .env.example .env

Зависимости и требования

  • Python 3.10+

  • mcp (Model Context Protocol SDK)

  • groq (Опционально, для LLM-экстрабликации)


Будущие расширения

  • Подключаемые адаптеры: подключение напрямую к API CloudWatch, Datadog, Grafana Loki или Prometheus.

  • Вероятностные оценки достоверности: вывод распределения вероятностей корневой причины (например, 95% confidence: bad deploy) вместо одной детерминированной строки.

  • Автоматические предложения отката: создание проверенных git revert-коммитов или спецификаций патчей Kubernetes вместе с диагностикой.


Лицензия

Распространяется по лицензии MIT.

Related MCP Connectors

Related MCP Servers