MCP Diagnostics Extension

Una extensión de VS Code que proporciona problemas de diagnóstico en tiempo real como errores y adverten

Documentación

MCP Diagnostics Extension

VS Code Marketplace Downloads Rating Installs

CI/CD Pipeline Release Pipeline Tests Test Coverage

TypeScript VS Code Engine MCP SDK Node.js

License: MIT Security Policy Dependabot

GitHub Release GitHub Issues GitHub Stars Conventional Commits


🏆 Una extensión de VS Code lista para producción que expone los problemas de diagnóstico (errores, advertencias, etc.) en tiempo real a través del Protocolo de Contexto de Modelo (MCP) para un consumo sin interrupciones por parte de agentes de IA y herramientas habilitadas para MCP.

🎯 LOGROS EXCEPCIONALES

🏆 Estándares de Calidad de Clase Mundial

  • ✅ 810 Pruebas Aprobadas - Cobertura integral de pruebas con 0 fallos (1 omitida)
  • ✅ 97.99% de Cobertura de Declaraciones - Superando los estándares de la industria (objetivo del 95%+)
  • ✅ Arquitectura Lista para Producción - Arquitectura limpia con inyección de dependencias
  • ✅ Pipeline CI/CD Profesional - Pruebas multiplataforma y lanzamientos automatizados
  • ✅ Cero Dependencias Externas - Implementaciones nativas para máxima confiabilidad

🚀 Excelencia en Rendimiento

  • ⚡ <2s Activación de la Extensión - Rendimiento de inicio ultrarrápido
  • ⚡ <500ms Procesamiento de Diagnósticos - Monitoreo de problemas en tiempo real
  • ⚡ <100ms Respuesta de Herramienta MCP - Integración instantánea con agentes de IA
  • 💾 <50MB Línea Base de Memoria - Utilización eficiente de recursos
  • 📊 Soporte para Espacios de Trabajo de 10,000+ Archivos - Capacidad a escala empresarial

🔧 Implementación Técnica Avanzada

  • 🎯 Arquitectura Basada en Eventos - Acoplamiento flexible mediante patrones de EventEmitter
  • 🛡️ Manejo Robusto de Errores - Mecanismos integrales de recuperación de errores
  • 📈 Monitoreo de Rendimiento - Métricas integradas y optimización
  • 🔄 Sincronización en Tiempo Real - Actualizaciones de diagnóstico en vivo mediante notificaciones MCP
  • 🌐 Compatibilidad Multiplataforma - Soporte para Windows, macOS y Linux con manejo inteligente de spawn

✨ Características Más Recientes (v1.4.0)

  • 🔧 Utilidades Multiplataforma - Detección inteligente de plataforma y manejo de opciones de spawn
  • ⚙️ Validación de Configuración - Validación y mejora automática de las configuraciones del cliente MCP
  • 📊 Sistema de Exportación Mejorado - Exportación continua de datos de diagnóstico para integración con servidor MCP independiente
  • 🎨 Visualización de Estado Mejorada - Mejores indicadores visuales y reporte de errores
  • 🛠️ Configuración Automatizada - Registro del servidor MCP con un clic en diferentes entornos

🚀 NUEVO: v1.4.0 - Inyección Automática de Servidor y Diagnósticos Avanzados

  • 🤖 Registro Automático del Servidor MCP - Implementación y configuración con un clic en VS Code, Cursor y otros clientes MCP
  • 📊 Análisis de Diagnóstico Multiplataforma - Análisis mejorado de TypeScript y ESLint con escaneo de fondo del espacio de trabajo
  • ⚙️ Administrador de Configuración - Inyección atómica de configuración con capacidades de respaldo y reversión
  • 🔧 Utilidades de Instalación del Servidor - Implementación automatizada del servidor empaquetado con gestión de versiones
  • 🛠️ Sistema de Comandos Mejorado - Nuevo comando configureServer para configuración automatizada de MCP
  • 📈 Monitoreo de Rendimiento Mejorado - Gestión avanzada de temporizadores y prevención de fugas de memoria
  • 🌐 Soporte Multiplataforma Mejorado - Manejo nativo de opciones de spawn para Windows, macOS y Linux
  • 🧪 Cobertura Integral de Pruebas - 810 pruebas con 97.99% de cobertura, incluyendo pruebas E2E e integración

🚀 ¿Qué es esto?

La Extensión de Diagnósticos MCP conecta el potente sistema de diagnóstico de VS Code con el Protocolo de Contexto de Modelo, permitiendo que los agentes de IA accedan a los problemas de tu código en tiempo real. Ya sea que estés depurando errores de TypeScript, advertencias de ESLint o problemas de linters personalizados, esta extensión hace que toda la información de diagnóstico esté disponible al instante para tus herramientas de IA.

¿Por qué se construyó?

  • 🤖 Desarrollo Primero con IA: El desarrollo moderno depende cada vez más de la asistencia de IA. Esta extensión asegura que tus herramientas de IA tengan visibilidad completa de la salud de tu código.
  • ⚡ Integración en Tiempo Real: No más copiar manualmente mensajes de error o explicar problemas a las herramientas de IA: lo ven todo al instante.
  • 🔧 Diagnósticos Universales: Funciona con cualquier proveedor de diagnóstico de VS Code (TypeScript, ESLint, linters personalizados, etc.)
  • 📊 Productividad Mejorada: Los agentes de IA pueden proporcionar ayuda más contextual cuando entienden tus problemas actuales.

¿Qué problema resuelve?

Antes de esta extensión, los agentes de IA no podían ver el panel de problemas de VS Code, lo que dificultaba que:

  • Comprendieran errores de compilación al sugerir correcciones
  • Proporcionaran soluciones relevantes para problemas de linting
  • Ayudaran con patrones de diagnóstico en todo el proyecto
  • Asistieran en la depuración basada en el estado de error actual

Características Clave Aprendidas e Implementadas

  • 🔍 Monitoreo de Diagnósticos en Tiempo Real: Captura automáticamente todos los problemas de diagnóstico del panel de Problemas de VS Code usando debouncing avanzado de eventos (300ms configurable)
  • 🤖 Integración del Servidor MCP: Expone diagnósticos a través de herramientas y recursos MCP estandarizados con capacidades integrales de filtrado
  • ⚡ Optimizado para Rendimiento: Maneja espacios de trabajo grandes de manera eficiente con caché inteligente y gestión de memoria (97.99% de cobertura de pruebas)
  • 🏢 Soporte Multi-espacio de Trabajo: Funciona sin problemas con estructuras de proyecto complejas y múltiples carpetas de espacio de trabajo
  • 📡 Notificaciones en Tiempo Real: Envía cambios de diagnóstico al instante a clientes MCP conectados con cargas útiles estructuradas
  • 🎨 Barra de Estado Mejorada: Barra de estado con códigos de color: fondo rojo (errores), naranja (advertencias), verde (limpio) y actualizaciones en tiempo real
  • 🎛️ Paleta de Comandos: Integración completa con los comandos de VS Code para la gestión del servidor y visualización detallada del estado con webview
  • 🔧 Altamente Configurable: Puerto personalizable, tiempo de debounce, opciones de registro y ajustes de rendimiento
  • 🚀 Registro Automático: Configuración con un clic con registro inteligente del servidor MCP en diferentes entornos
  • 🧪 Espacio de Trabajo de Pruebas: Entorno de pruebas integral con errores intencionales para validación (810 pruebas aprobadas)
  • 🛡️ Manejo Robusto de Errores: Degradación elegante y mecanismos integrales de recuperación de errores
  • 🌐 Soporte Multiplataforma: Compatibilidad nativa con Windows, macOS y Linux con optimizaciones específicas de plataforma

📦 Instalación

Desde el Marketplace de VS Code (Recomendado)

  1. Abre VS Code
  2. Ve a Extensiones (Ctrl+Shift+X / Cmd+Shift+X)
  3. Busca "MCP Diagnostics Extension"
  4. Haz clic en Instalar
  5. Recarga VS Code si se te solicita

La extensión se activará automáticamente y se registrará como servidor MCP.

Desde Archivo VSIX

  1. Descarga el archivo .vsix más reciente desde GitHub Releases
  2. Abre VS Code
  3. Ejecuta el comando: Extensions: Install from VSIX...
  4. Selecciona el archivo descargado

Desde el Código Fuente (Desarrollo)

# Clone the repository
git clone https://github.com/newbpydev/mcp-diagnostics-extension.git
cd mcp-diagnostics-extension

# Install dependencies
npm install

# Compile TypeScript
npm run compile

# Launch Extension Development Host
# Press F5 in VS Code or run:
code --extensionDevelopmentPath=.

🚀 Inicio Rápido

1. Instalación y Activación

Después de instalar desde el marketplace, la extensión automáticamente:

  • ✅ Se activa cuando VS Code inicia
  • ✅ Se registra como servidor MCP
  • ✅ Comienza a monitorear diagnósticos
  • ✅ Muestra el estado en la barra de estado

2. Verifica que Funciona

Busca el elemento de la barra de estado: $(bug) MCP: XE YW (X errores, Y advertencias)

3. Conecta tu Cliente MCP

Agrega a la configuración de tu cliente MCP:

{
  "mcpServers": {
    "vscode-diagnostics": {
      "command": "node",
      "args": ["scripts/mcp-server.js"],
      "cwd": "/path/to/mcp-diagnostics-extension",
      "env": {
        "NODE_ENV": "production",
        "MCP_DEBUG": "false"
      }
    }
  }
}

4. Comienza a Usar las Herramientas MCP

Tu agente de IA ahora puede acceder a tres herramientas potentes:

  • getProblems - Obtén todos los diagnósticos con filtrado
  • getProblemsForFile - Obtén problemas para archivos específicos
  • getWorkspaceSummary - Obtén estadísticas de todo el espacio de trabajo

🚀 AUTO-DESPLIEGUE Y CONFIGURACIÓN CON UN CLIC (Característica del Sprint 4)

⚡ Registro Automático del Servidor MCP

La extensión ahora cuenta con configuración automática con un clic que elimina toda configuración manual. Esta característica innovadora automáticamente:

  • ✅ Despliega el servidor MCP empaquetado en el directorio del usuario con permisos adecuados
  • ✅ Inyecta la configuración en Cursor IDE y otros clientes MCP
  • ✅ Valida el despliegue con operaciones atómicas y creación de respaldos
  • ✅ Soporte multiplataforma con compatibilidad para Windows/macOS/Linux
  • ✅ Recuperación de errores con degradación elegante a configuración manual

🎯 Cómo Funciona el Auto-Despliegue

graph TD
    A[🔧 User Runs Configure Server Command] --> B[📋 Progress Notification Shown]
    B --> C[📦 Deploy Bundled Server]
    C --> D{🔍 Server Exists?}
    D -->|No| E[📂 Create Installation Directory]
    D -->|Yes| F[📋 Check Version]
    F -->|Newer| E
    F -->|Same/Older| G[✅ Skip Deployment]
    E --> H[📋 Copy Server Binary]
    H --> I[🔐 Set Executable Permissions]
    I --> J[📄 Persist Manifest]
    J --> K[🔧 Inject Configuration]
    G --> K
    K --> L[🔍 Locate Config File]
    L --> M{📁 Config Exists?}
    M -->|Yes| N[📋 Load & Validate]
    M -->|No| O[📄 Create Default Config]
    N --> P[🔄 Deep Merge Configurations]
    O --> P
    P --> Q[💾 Atomic Write Operation]
    Q --> R[✅ Backup Creation]
    R --> S[📋 Validate Final Config]
    S --> T[🎉 Success Notification]

    %% Error Paths
    C -.->|Error| U[❌ Deployment Failed]
    K -.->|Error| V[❌ Configuration Failed]
    U --> W[📖 Show Manual Setup Guide]
    V --> W

    %% Styling
    classDef success fill:#d4edda,stroke:#155724,color:#155724
    classDef error fill:#f8d7da,stroke:#721c24,color:#721c24
    classDef process fill:#cce5ff,stroke:#004085,color:#004085

    class T success
    class U,V,W error
    class A,B,C,E,H,I,J,K,L,N,O,P,Q,R,S process

📋 Proceso de Inyección de Auto-Configuración

sequenceDiagram
    participant User
    participant ExtensionCommands
    participant ServerDeployment
    participant McpServerRegistration
    participant FileSystem
    participant VSCode

    User->>ExtensionCommands: Execute "Configure Server"
    ExtensionCommands->>VSCode: Show Progress Notification

    Note over ExtensionCommands,ServerDeployment: Phase 1: Server Deployment
    ExtensionCommands->>ServerDeployment: deployBundledServer()
    ServerDeployment->>FileSystem: Check installation directory
    FileSystem-->>ServerDeployment: Directory status
    ServerDeployment->>FileSystem: Atomic copy & permissions
    FileSystem-->>ServerDeployment: Deployment complete
    ServerDeployment-->>ExtensionCommands: Server path

    Note over ExtensionCommands,McpServerRegistration: Phase 2: Configuration Injection
    ExtensionCommands->>McpServerRegistration: injectConfiguration()
    McpServerRegistration->>FileSystem: Locate config file (priority order)
    FileSystem-->>McpServerRegistration: Config path
    McpServerRegistration->>FileSystem: Load existing config
    FileSystem-->>McpServerRegistration: Config data
    McpServerRegistration->>McpServerRegistration: Deep merge with validation
    McpServerRegistration->>FileSystem: Atomic write with backup
    FileSystem-->>McpServerRegistration: Write complete
    McpServerRegistration-->>ExtensionCommands: Configuration complete

    ExtensionCommands->>VSCode: Success notification
    VSCode-->>User: "MCP server configured successfully!"

    Note over User,VSCode: Alternative: Error Handling
    ExtensionCommands->>VSCode: Error notification (if failed)
    VSCode-->>User: Show manual setup guide

🏗️ Arquitectura del Auto-Despliegue

graph LR
    subgraph "📦 Bundled Assets"
        A[scripts/mcp-server.js]
        B[Server Manifest]
        C[Configuration Template]
    end

    subgraph "🔧 Core Components"
        D[ServerInstallUtils]
        E[ServerDeployment]
        F[McpServerRegistration]
        G[ExtensionCommands]
    end

    subgraph "💾 User Environment"
        H[~/.mcp-diagnostics/]
        I[.cursor/mcp.json]
        J[IDE Configuration]
    end

    subgraph "🛡️ Safety Features"
        K[Atomic Operations]
        L[Backup Creation]
        M[Version Validation]
        N[Permission Checks]
    end

    A --> D: Bundled Server
    D --> E: Installation Utils
    E --> F: Deployment Service
    F --> G: Registration Service
    G --> H: Deploy to User Dir
    F --> I: Inject Config
    I --> J: Configure IDE

    K --> E: Ensure Atomicity
    L --> F: Create Backups
    M --> E: Version Control
    N --> D: Security Checks

    %% Styling
    classDef bundled fill:#fff3cd,stroke:#856404,color:#856404
    classDef core fill:#cce5ff,stroke:#004085,color:#004085
    classDef user fill:#d4edda,stroke:#155724,color:#155724
    classDef safety fill:#f8d7da,stroke:#721c24,color:#721c24

    class A,B,C bundled
    class D,E,F,G core
    class H,I,J user
    class K,L,M,N safety

⚙️ Prioridades de Archivos de Configuración

graph TD
    A[🔍 Configuration Discovery] --> B[📁 Check Workspace .cursor/mcp.json]
    B --> C{✅ Exists?}
    C -->|Yes| D[🎯 Use Workspace Config]
    C -->|No| E[📁 Check User Home .cursor/mcp.json]
    E --> F{✅ Exists?}
    F -->|Yes| G[🏠 Use User Config]
    F -->|No| H[📄 Create New Configuration]

    D --> I[🔄 Load & Parse JSON]
    G --> I
    H --> J[📋 Generate Default Config]
    J --> I
    I --> K[✅ Validate with Zod Schema]
    K --> L[🔄 Deep Merge with Diagnostics Server]
    L --> M[💾 Atomic Write with Backup]

    %% Styling
    classDef primary fill:#007bff,stroke:#ffffff,color:#ffffff
    classDef success fill:#28a745,stroke:#ffffff,color:#ffffff
    classDef process fill:#17a2b8,stroke:#ffffff,color:#ffffff

    class D,G primary
    class H,J,M success
    class I,K,L process

🎛️ Comandos de Configuración con un Clic

MCP Diagnostics: Configure Server ⚡

¡El comando mágico que hace todo automáticamente!

Accede a través de la Paleta de Comandos (Ctrl+Shift+P / Cmd+Shift+P):

  1. Busca: "MCP Diagnostics: Configure Server"
  2. Haz clic: El comando se ejecuta automáticamente
  3. Observa: La notificación de progreso muestra el estado del despliegue
  4. Resultado: Ya sea una notificación de éxito O una guía de configuración manual

Qué hace:

  • ✅ Despliega el servidor en ~/.mcp-diagnostics/mcp-server.js
  • ✅ Establece permisos de ejecución adecuados (Unix/Linux)
  • ✅ Crea un manifiesto de versión para futuras actualizaciones
  • ✅ Localiza tu archivo de configuración MCP (espacio de trabajo → directorio de usuario)
  • ✅ Preserva los servidores MCP existentes durante la inyección
  • ✅ Valida la configuración con esquema JSON
  • ✅ Crea un respaldo antes de cualquier cambio
  • ✅ Proporciona una alternativa de configuración manual si el automático falla

📊 Soporte de Despliegue Multiplataforma

PlataformaRuta de InstalaciónEjecutableOpciones de Spawn
Windows%USERPROFILE%\.mcp-diagnostics\❌ No requeridoshell: true (requerido)
macOS~/.mcp-diagnostics/✅ chmod +xshell: false
Linux~/.mcp-diagnostics/✅ chmod +xshell: false

🛡️ Características de Seguridad y Confiabilidad

Operaciones Atómicas

// All file operations are atomic to prevent corruption
1. Write to temporary file (.tmp)
2. Validate written content
3. Atomic rename to final location
4. Clean up temporary files

Estrategia de Respaldo

// Automatic backup creation before any changes
- Original config → config.backup
- Malformed config → config.malformed.backup
- Restore on validation failure

Gestión de Versiones

// Smart version detection and upgrade handling
- Compare semantic versions (1.2.3 format)
- Skip deployment if same/older version
- Automatic upgrade for newer versions

🚨 Manejo de Errores y Recuperación

El sistema de auto-despliegue incluye manejo integral de errores:

Tipo de ErrorEstrategia de Recuperación
Permiso DenegadoMostrar configuración manual con guía de privilegios elevados
Espacio en DiscoAlertar al usuario y proporcionar recomendaciones de limpieza
Problemas de RedUsar activos empaquetados con despliegue sin conexión
Corrupción de ConfiguraciónCrear respaldo e inicializar configuración nueva
Conflictos de VersiónFusión inteligente con preservación de preferencias del usuario

📈 Métricas de Rendimiento

El auto-despliegue del Sprint 4 cumple con estrictos requisitos de rendimiento:

  • ⚡ Tiempo de Despliegue: <2 segundos para configuración completa
  • ⚡ Inyección de Configuración: <500ms incluyendo validación
  • ⚡ Uso de Memoria: <10MB adicionales durante el despliegue
  • ⚡ Operaciones de Archivo: Atómicas con <100ms de sobrecarga
  • ⚡ Multiplataforma: Compatibilidad universal con detección inteligente de spawn

🛠️ Guía de Uso

Comandos Disponibles

Accede a través de la Paleta de Comandos (Ctrl+Shift+P / Cmd+Shift+P):

  • MCP Diagnostics: Show Status - Abre la webview de estado detallado con:

    • Estado de conexión del servidor
    • Estadísticas de problemas por severidad y fuente
    • Desglose archivo por archivo
    • Información de carpetas del espacio de trabajo
    • Métricas de rendimiento
  • MCP Diagnostics: Restart Server - Reinicia el servidor MCP con indicación de progreso

  • MCP Diagnostics: Show Setup Guide - Abre una guía de configuración integral para la configuración del cliente MCP

Referencia de Herramientas MCP

🔍 getProblems - Consulta Universal de Problemas

Obtén todos los problemas de diagnóstico con potentes opciones de filtrado:

{
  "name": "getProblems",
  "arguments": {
    "filePath": "/path/to/file.ts", // Optional: filter by specific file
    "severity": "Error", // Optional: Error, Warning, Information, Hint
    "workspaceFolder": "my-project", // Optional: filter by workspace
    "source": "typescript", // Optional: filter by diagnostic source
    "limit": 100, // Optional: limit results (default: 1000)
    "offset": 0 // Optional: pagination offset
  }
}

Ejemplo de Respuesta:

{
  "content": [
    {
    "type": "text",
    "text": "[{\"filePath\":\"/workspace/src/app.ts\",\"severity\":\"Error\",\"message\":\"Cannot find name 'foo'\",\"range\":{\"start\":{\"line\":10,\"character\":5},\"end\":{\"line\":10,\"character\":8}},\"source\":\"typescript\",\"workspaceFolder\":\"/workspace\",\"code\":\"2304\"}]"
    }
  ]
}

📄 getProblemsForFile - Diagnósticos Específicos de Archivo

Obtén todos los problemas de un archivo específico:

{
  "name": "getProblemsForFile",
  "arguments": {
    "filePath": "/absolute/path/to/file.ts"
  }
}

📊 getWorkspaceSummary - Estadísticas del Espacio de Trabajo

Obtén estadísticas completas de diagnóstico del espacio de trabajo:

{
  "name": "getWorkspaceSummary",
  "arguments": {
    "groupBy": "severity" // Optional: severity, source, workspaceFolder
  }
}

Ejemplo de Respuesta:

{
  "content": [
    {
    "type": "text",
    "text": "{\"totalProblems\":15,\"byFile\":{\"app.ts\":3,\"utils.ts\":2},\"bySeverity\":{\"Error\":5,\"Warning\":10},\"bySource\":{\"typescript\":8,\"eslint\":7},\"byWorkspace\":{\"main\":15},\"timestamp\":\"2024-01-15T10:30:00.000Z\"}"
    }
  ]
}

Recursos MCP

Recursos dinámicos que proporcionan acceso estructurado a los datos de diagnóstico:

  • diagnostics://summary - Resumen general de problemas del espacio de trabajo
  • diagnostics://file/{encodedFilePath} - Problemas de un archivo específico
  • diagnostics://workspace/{encodedWorkspaceName} - Problemas de un espacio de trabajo específico

Notificaciones en Tiempo Real

El servidor envía automáticamente notificaciones problemsChanged cuando los diagnósticos cambian:

{
  "method": "notifications/message",
  "params": {
    "level": "info",
    "data": {
      "type": "problemsChanged",
      "uri": "/path/to/file.ts",
      "problemCount": 3,
      "problems": [...],
      "timestamp": "2024-01-15T10:30:00.000Z"
    }
  }
}

⚙️ Configuración

Personaliza la extensión mediante la configuración de VS Code (Ctrl+, / Cmd+,):

{
  "mcpDiagnostics.server.port": 6070,
  "mcpDiagnostics.debounceMs": 300,
  "mcpDiagnostics.enableDebugLogging": false,
  "mcpDiagnostics.enablePerformanceLogging": false,
  "mcpDiagnostics.maxProblemsPerFile": 1000,
  "mcpDiagnostics.debug.logLevel": "info",
  "mcpDiagnostics.showAutoRegistrationNotification": true
}

Opciones de Configuración

ConfiguraciónTipoPredeterminadoDescripción
server.portnumber6070Puerto del servidor MCP (1024-65535)
debounceMsnumber300Intervalo de debounce para eventos de diagnóstico (50-5000ms)
enableDebugLoggingbooleanfalseHabilitar registro de depuración detallado
enablePerformanceLoggingbooleanfalseHabilitar registro de métricas de rendimiento
maxProblemsPerFilenumber1000Máximo de problemas a rastrear por archivo (1-10000)
debug.logLevelstring"info"Nivel de registro (error, warn, info, debug)
showAutoRegistrationNotificationbooleantrueMostrar notificaciones de registro del servidor MCP

🧪 Pruebas y Desarrollo

🏆 Logro Excepcional de Cobertura de Pruebas

La extensión ha alcanzado estándares de prueba de clase mundial:

  • ✅ 810 Pruebas Exitosas - Suite de pruebas integral con 0 fallos (1 omitida)
  • ✅ 97.99% de Cobertura de Declaraciones - Superando los estándares de la industria
  • ✅ 34 Suites de Pruebas - Estructura de pruebas organizada y mantenible en todos los componentes
  • ✅ Pruebas Multiplataforma - Validado en entornos Windows, macOS y Linux
  • ✅ Pruebas E2E Integrales - Validación completa del flujo de trabajo de la extensión

Servidor Real vs Simulado

La extensión proporciona dos modos operativos:

🔴 Extensión Real de VS Code (Modo de Producción)

  • Propósito: Uso en producción con diagnósticos reales de VS Code
  • Fuente de Datos: Panel de Problemas en vivo de VS Code
  • Activación: Automática cuando la extensión está instalada
  • Caso de Uso: Flujos de trabajo de desarrollo reales con agentes de IA

🔧 Herramientas de Desarrollo

  • Validación de Paquetes: scripts/validate-package.sh - Verificaciones automatizadas de integridad de paquetes
  • Conversión de Recursos: scripts/convert-assets.js - Utilidades de optimización de recursos visuales

Espacio de Trabajo de Pruebas

La extensión incluye test-workspace/ con errores intencionales:

  • example.ts: Errores de TypeScript (errores de tipo, variables indefinidas, asignaciones inválidas)
  • utils.js: Advertencias de ESLint (variables no utilizadas, problemas de estilo, violaciones de mejores prácticas)

Para probar la extensión:

  1. Iniciar el Host de Desarrollo de Extensiones (Presiona F5 en VS Code)
  2. Abrir el espacio de trabajo de pruebas o cualquier espacio de trabajo con problemas de diagnóstico
  3. Ver el panel de Problemas (Ctrl+Shift+M) para ver diagnósticos reales
  4. Usar las herramientas MCP para consultar los datos de diagnóstico
  5. Revisar la barra de estado para ver los conteos en vivo de errores/advertencias

Configuración de Desarrollo

# Install dependencies
npm install

# Run tests (810 tests)
npm test

# Run tests with coverage
npm run test:coverage

# Lint code
npm run lint

# Format code
npm run format

# Compile TypeScript
npm run compile

# Package extension
npm run package

# Run CI checks
npm run ci:check

🔧 Configuración del Cliente MCP

La extensión proporciona un servidor MCP universal que funciona con todos los entornos principales habilitados para MCP. El servidor se ejecuta como un proceso independiente de Node.js y proporciona datos de diagnóstico en tiempo real desde tu espacio de trabajo.

🎯 Patrón de Configuración Universal

Todos los clientes MCP usan el mismo patrón de configuración básico con variaciones específicas del entorno:

{
  "mcpServers": {
    // or "servers" for some clients
    "vscode-diagnostics": {
      "command": "node",
      "args": ["scripts/mcp-server.js"],
      "cwd": "/path/to/mcp-diagnostics-extension",
      "env": {
        "NODE_ENV": "production",
        "MCP_DEBUG": "false"
      }
    }
  }
}

📁 Ubicaciones de Archivos de Configuración

EntornoArchivo de ConfiguraciónFormato
Cursor IDE.cursor/mcp.jsonmcpServers
VS Code.vscode/mcp.jsonservers (con type: "stdio")
Windsurf.windsurf/mcp.jsonservers
Claude Desktopclaude_desktop_config.jsonmcpServers

Ejemplos de Configuración del Cliente MCP

Cursor IDE

// .cursor/mcp.json or cursor-mcp-config.json
{
  "mcpServers": {
    "vscode-diagnostics": {
      "command": "node",
      "args": ["scripts/mcp-server.js"],
      "cwd": "/path/to/mcp-diagnostics-extension",
      "env": {
        "NODE_ENV": "production",
        "MCP_DEBUG": "false"
      }
    }
  }
}

VS Code con Extensión MCP

// .vscode/mcp.json
{
  "servers": {
    "vscode-diagnostics": {
      "type": "stdio",
      "command": "node",
      "args": ["scripts/mcp-server.js"],
      "cwd": "/path/to/mcp-diagnostics-extension",
      "env": {
        "NODE_ENV": "production",
        "MCP_DEBUG": "false"
      }
    }
  }
}

Windsurf IDE

// .windsurf/mcp.json
{
  "servers": {
    "vscode-diagnostics": {
      "command": "node",
      "args": ["scripts/mcp-server.js"],
      "cwd": "/path/to/mcp-diagnostics-extension",
      "env": {
        "NODE_ENV": "production",
        "MCP_DEBUG": "false"
      }
    }
  }
}

Claude Desktop

// claude_desktop_config.json
{
  "mcpServers": {
    "vscode-diagnostics": {
      "command": "node",
      "args": ["scripts/mcp-server.js"],
      "cwd": "/path/to/mcp-diagnostics-extension",
      "env": {
        "NODE_ENV": "production",
        "MCP_DEBUG": "false"
      }
    }
  }
}

Cliente MCP Personalizado

import { Client } from '@modelcontextprotocol/client';

const client = new Client({
  name: 'my-client',
  version: '1.0.0',
});

// Connect to extension
await client.connect({
  command: 'node',
  args: ['scripts/mcp-server.js'],
  cwd: '/path/to/mcp-diagnostics-extension',
  env: {
    NODE_ENV: 'production',
    MCP_DEBUG: 'false',
  },
});

// Use tools
const problems = await client.callTool({
  name: 'getProblems',
  arguments: { severity: 'Error' },
});

🚀 Características del Servidor MCP

El scripts/mcp-server.js proporciona:

  • 🔍 Diagnósticos en Tiempo Real: Análisis en vivo de TypeScript y ESLint
  • 📊 Integración con VS Code: Importación automática de datos del panel de Problemas de VS Code
  • ⚡ Optimizado para Rendimiento: Resultados en caché con lógica de actualización inteligente
  • 🛡️ Recuperación de Errores: Respaldo elegante cuando los datos de VS Code no están disponibles
  • 🔧 Configurable: Variables de entorno para depuración y control de comportamiento

🌍 Variables de Entorno

VariablePredeterminadoDescripción
NODE_ENVdevelopmentEstablecer en production para rendimiento optimizado
MCP_DEBUGfalseHabilitar registro de depuración detallado
REFRESH_INTERVAL30000Intervalo de actualización de caché en milisegundos
MAX_PROBLEMS10000Número máximo de problemas a almacenar en caché

🔄 Fuentes de Datos

El servidor MCP combina inteligentemente múltiples fuentes de datos:

  1. Exportación de VS Code (Principal): Datos en tiempo real de la extensión
  2. Compilador de TypeScript (Respaldo): Análisis directo de tsc
  3. ESLint (Respaldo): Análisis directo de ESLint
  4. Resultados en Caché (Rendimiento): Caché inteligente con actualización automática

## 📚 Documentation

### Additional Resources

- **[MCP Server Guide](./MCP_SERVER_GUIDE.md)** - Comprehensive setup and configuration guide
- **[Quick Setup Guide](./QUICK_SETUP.md)** - Fast-track installation instructions
- **[Troubleshooting Guide](./TROUBLESHOOTING.md)** - Common issues and solutions
- **[Contributing Guide](./.github/CONTRIBUTING.md)** - Development and contribution guidelines
- **[Changelog](./CHANGELOG.md)** - Version history and release notes
- **[Security Policy](./.github/SECURITY.md)** - Security reporting and policies

### API Documentation

Comprehensive TypeScript documentation is available for all public APIs:

- **[DiagnosticsWatcher API](./src/core/diagnostics/)** - Core diagnostic monitoring
- **[MCP Tools API](./src/infrastructure/mcp/)** - MCP server implementation
- **[Extension Commands API](./src/commands/)** - VS Code command integration

## 🤝 Contributing

We welcome contributions! Please see our [Contributing Guide](./.github/CONTRIBUTING.md) for details.

### Quick Contribution Steps

1. **Fork the repository**
2. **Create a feature branch**: `git checkout -b feature/amazing-feature`
3. **Make changes** following our coding standards
4. **Run tests**: `npm test` (all 810 tests must pass)
5. **Lint code**: `npm run lint`
6. **Commit changes**: `npm run commit` (uses conventional commits)
7. **Push to branch**: `git push origin feature/amazing-feature`
8. **Open a Pull Request**

### Development Requirements

- Node.js 22.x or higher
- VS Code 1.96.0 or higher
- TypeScript 5.8.3 or higher

## 🐛 Troubleshooting

### Common Issues

#### Extension Not Activating
1. Check VS Code version compatibility (requires 1.96.0+)
2. Look for activation errors in Developer Tools Console
3. Try reloading VS Code window (Ctrl+Shift+P → "Reload Window")

#### MCP Connection Issues
1. Verify MCP client configuration paths
2. Check that the extension is active (status bar shows MCP status)
3. Restart the MCP server: Command Palette → "MCP Diagnostics: Restart Server"

#### No Diagnostics Showing
1. Ensure you have files with actual errors/warnings open
2. Check VS Code Problems panel (Ctrl+Shift+M) - MCP data comes from here
3. Verify diagnostic providers (TypeScript, ESLint) are working

For more detailed troubleshooting, see our [Troubleshooting Guide](./TROUBLESHOOTING.md).

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.

## 🙏 Acknowledgments

- **VS Code Team** - For the excellent extension API and diagnostic system
- **Model Context Protocol** - For the innovative protocol enabling AI agent integration
- **TypeScript Team** - For the robust type system and development experience
- **Jest Community** - For the comprehensive testing framework
- **Open Source Community** - For the tools and libraries that make this project possible

---

**🚀 Ready to supercharge your AI-assisted development workflow? Install the MCP Diagnostics Extension today and give your AI agents complete visibility into your codebase health!**