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
🏆 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
configureServerpara 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)
- Abre VS Code
- Ve a Extensiones (Ctrl+Shift+X / Cmd+Shift+X)
- Busca "MCP Diagnostics Extension"
- Haz clic en Instalar
- Recarga VS Code si se te solicita
La extensión se activará automáticamente y se registrará como servidor MCP.
Desde Archivo VSIX
- Descarga el archivo
.vsixmás reciente desde GitHub Releases - Abre VS Code
- Ejecuta el comando:
Extensions: Install from VSIX... - 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 filtradogetProblemsForFile- Obtén problemas para archivos específicosgetWorkspaceSummary- 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):
- Busca: "MCP Diagnostics: Configure Server"
- Haz clic: El comando se ejecuta automáticamente
- Observa: La notificación de progreso muestra el estado del despliegue
- 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
| Plataforma | Ruta de Instalación | Ejecutable | Opciones de Spawn |
|---|---|---|---|
| Windows | %USERPROFILE%\.mcp-diagnostics\ | ❌ No requerido | shell: true (requerido) |
| macOS | ~/.mcp-diagnostics/ | ✅ chmod +x | shell: false |
| Linux | ~/.mcp-diagnostics/ | ✅ chmod +x | shell: 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 Error | Estrategia de Recuperación |
|---|---|
| Permiso Denegado | Mostrar configuración manual con guía de privilegios elevados |
| Espacio en Disco | Alertar al usuario y proporcionar recomendaciones de limpieza |
| Problemas de Red | Usar activos empaquetados con despliegue sin conexión |
| Corrupción de Configuración | Crear respaldo e inicializar configuración nueva |
| Conflictos de Versión | Fusió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 trabajodiagnostics://file/{encodedFilePath}- Problemas de un archivo específicodiagnostics://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ón | Tipo | Predeterminado | Descripción |
|---|---|---|---|
server.port | number | 6070 | Puerto del servidor MCP (1024-65535) |
debounceMs | number | 300 | Intervalo de debounce para eventos de diagnóstico (50-5000ms) |
enableDebugLogging | boolean | false | Habilitar registro de depuración detallado |
enablePerformanceLogging | boolean | false | Habilitar registro de métricas de rendimiento |
maxProblemsPerFile | number | 1000 | Máximo de problemas a rastrear por archivo (1-10000) |
debug.logLevel | string | "info" | Nivel de registro (error, warn, info, debug) |
showAutoRegistrationNotification | boolean | true | Mostrar 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:
- Iniciar el Host de Desarrollo de Extensiones (Presiona F5 en VS Code)
- Abrir el espacio de trabajo de pruebas o cualquier espacio de trabajo con problemas de diagnóstico
- Ver el panel de Problemas (Ctrl+Shift+M) para ver diagnósticos reales
- Usar las herramientas MCP para consultar los datos de diagnóstico
- 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
| Entorno | Archivo de Configuración | Formato |
|---|---|---|
| Cursor IDE | .cursor/mcp.json | mcpServers |
| VS Code | .vscode/mcp.json | servers (con type: "stdio") |
| Windsurf | .windsurf/mcp.json | servers |
| Claude Desktop | claude_desktop_config.json | mcpServers |
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
| Variable | Predeterminado | Descripción |
|---|---|---|
NODE_ENV | development | Establecer en production para rendimiento optimizado |
MCP_DEBUG | false | Habilitar registro de depuración detallado |
REFRESH_INTERVAL | 30000 | Intervalo de actualización de caché en milisegundos |
MAX_PROBLEMS | 10000 | Número máximo de problemas a almacenar en caché |
🔄 Fuentes de Datos
El servidor MCP combina inteligentemente múltiples fuentes de datos:
- Exportación de VS Code (Principal): Datos en tiempo real de la extensión
- Compilador de TypeScript (Respaldo): Análisis directo de
tsc - ESLint (Respaldo): Análisis directo de ESLint
- 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!**