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: AI Incident Monitoring RCA MCP Server

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.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides telemetry tools for retrieving recent logs and system metrics to support root-cause analysis of infrastructure incidents. Enables autonomous incident triage with grounded verification and human-in-the-loop remediation.
    1
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to investigate production incidents by exposing service health, logs, and deployment data through MCP tools.
    8

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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/sid-stack001/devcontext'

If you have feedback or need assistance with the MCP directory API, please join our Discord server