Skip to main content
Glama
sid-stack001

DevContext

by sid-stack001

DevContext

Python MCP License: MIT

DevContext es un prototipo de servidor del Model Context Protocol (MCP) y una herramienta CLI que proporciona a los asistentes de codificación con IA y a los ingenieros datos de observabilidad en tiempo de ejecución (logs, despliegues y métricas de salud) para asistir en la triaje de incidentes.


Visión general

Los asistentes de codificación pueden inspeccionar los repositorios de código fuente y redactar correcciones, pero a menudo carecen de visibilidad sobre lo que ocurre durante incidentes en tiempo de ejecución (como despliegues recientes, picos en la tasa de errores, saturación del disco o caídas de APIs posteriores). DevContext es una herramienta de prueba de concepto que expone el contexto de ejecución a través de una interfaz de línea de comandos (CLI) y llamadas a herramientas MCP estándar.


Related MCP server: Nibble

Comandos CLI y herramientas

DevContext se puede ejecutar directamente desde la línea de comandos o registrarse como un servidor MCP.

1. devcontext diagnose

Ejecuta el triaje automatizado de incidentes contra conjunto de datos integrados o archivos o carpetas personalizadas:

# 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

Inicia el servidor MCP stdio para la conexión con hosts MCP (p. ej., Claude Desktop, Antigravity):

devcontext serve

Opciones de análisis de logs

  1. Parser determinista (parser.py): Utiliza heurísticas para muestrear línees de logs e intentar la correspondencia de estructura (JSON-lines, CSV, pares clave-valor o marcas de tiempo básicas entre corchetes o separadas por espacios).

    • Limitación: Es más adecuado para logs simples de una línea. Las trazas de pila complejas multilínea o los formatos personalizados no estándar pueden recurrir a la correspondencia básica de líneas.

  2. Extracción experimental con LLM (extraction.py): Envía de forma opcional fragmentos de log la API de Groq (response_format={"type": "json_object"}) para extraer objetos de eventos estructurados.

    • Limitación: Introduce una latencia de API (~200–400ms) y de tokens; si falta la clave de API o se excede el tiempo de espera, se recurre al analizador determinista.


Opciones del origen de datos

  • Datos simulados integrados: Pase el nombre de entorno un servicio (p. ej., service_name="order-processing") para consultar los datos de demo incluidos.

  • Rutas de archivos o directorios personalizados:

    • log_path: Ruta a un único archivo de log o a un directorio que contiene archivos .log o .txt divididos.

    • deploys_path: Ruta en un archivo deploys.json personalizado.

    • health_path: Ruta a un archivo health.json personalizado.


Escenarios de evaluación y pruebas

El repositorio incluye un banco de pruebas (eval.py) evaluado con 5 escenarios de prueba sintéticos:

Escenario

Servicio

Tipo de escenario

Resultado esperado

Resultado

scenario_1_bad_deploy

payment-service

Reducción de límite de recursos

Identificar el despliegue f8a1c92

Aprobado

scenario_2_disk_full

storage-service

Disco lleno (sin despliegue reciente)

Identificar la saturación del disco (98%)

Aprobado

scenario_3_memory_leak

analytics-worker

Fuga de memoria / OOM

Identificar la saturación de memoria (97%)

Aprobado

scenario_4_downstream_outage

notification-service

Caída de API externa

Identificar errores 503 de SendGrid

Aprobado

scenario_5_bad_migración

user-service

Migración fallida de base de datos

Identificar el despliegue d4e912f

Aprobado

Limitaciones y alcance

  • Pequeño debate de pruebas: Este conjunto de evaluación contiene 5 casos de prueba sintéticos creados para la validación. No es un punto de referencia exhaustivo en producción.

  • Coincidencia heurística: diagnose() utiliza reglas simples (p. ej., verificar si un despliegue ocurrió dentro de los 10 minutos después del primer error). Los incidentes reales en infraestructura suelen ser más complejos y pueden involucrar múltiples factores combinados.


Arquitectura

┌─────────────────────────────────────────────────────────┐
│              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)         │
└─────────────────────────────────────────────────┘

Inicio rápido y configuración

1. Instalación

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

2. Diagnóstico de un servicio mediante el CLI

devcontext diagnose --service order-processing

3. Registro como servidor MCP (Claude Desktop)

Añade DevContext a tu claude_desktop_config.json:

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

4. Probar la suite de evaluación

python eval.py

5. Configuración opcional de la clave API

Copia .env.example a .env si se usa Groq para la extracción experimental de logs con LLM:

cp .env.example .env

Dependencias y requisitos

  • Python 3.10+

  • mcp (SDK del Model Context Protocol)

  • groq (Opcional, para extracción concecional LLM)


Extensiones futuras

  • Adaptadores conectables: Conectale directamente las APIs de CloudWatch, Datadog, Grafana Loki o Prometheus.

  • Puntuación de confianza probabilística: Genera distribuciones de probabilidad de causa raíz (p. ej., 95% confidence: bad deploy) en lugar de más cadenas deterministas únicas.

  • Propuestas automatizadas de rollback: Genera commits de git revert válidos o especificaciones de parche de Kubernetes junto al diagnóstico.


Licencia

Distribuido bajo la licencia MIT License.

Related MCP Connectors

Related MCP Servers