sourcemap-retrace-mcp

Decodifica trazas de pila minificadas de vuelta al código fuente original de TypeScript usando mapas de origen

Documentación

🗺️ sourcemap-retrace-mcp

npm CI License: MIT

Tu aplicación falló en producción. El stack trace es inútil. Tu agente de IA no tiene idea de dónde está el error.

Servidor MCP que decodifica stack traces de producción minificados de vuelta a los archivos fuente TypeScript originales, líneas y columnas — usando source maps. Antes de que tu agente pase 20 minutos adivinando código ofuscado.


🤔 El problema

Tu herramienta de monitoreo te envía esto:

TypeError: Cannot read properties of undefined (reading 'userId')
    at e.<anonymous> (main.a3f2c1.js:1:47821)
    at h (vendor.d4e5f6.js:1:12045)
    at processQueue (main.a3f2c1.js:1:89234)

Le pides a tu agente que lo depure. El agente lee main.a3f2c1.js. Son 40,000 caracteres de JavaScript minificado. No tiene idea de qué significa e.<anonymous> en la columna 47821.

sourcemap-retrace-mcp lo mapea de vuelta a:

    at validateSession (src/auth/session.ts:142:8)
    at handleRequest (src/api/middleware.ts:67:3)

Ahora el agente sabe exactamente dónde mirar.


🛠️ Herramientas

retrace_stack

Decodifica un stack trace minificado de vuelta a las ubicaciones originales del código fuente TypeScript. Pasa el stack trace crudo y el directorio que contiene tus archivos .js.map.

Retrace Results
  Frames mapped: 3  |  Unmapped: 1

TypeError: Cannot read properties of undefined (reading 'userId')
    at validateSession (src/auth/session.ts:142:8)
    at handleRequest (src/api/middleware.ts:67:3)
    at processQueue (src/queue/processor.ts:28:12)
    at Module._compile (node:internal/modules/cjs/loader:1376:14)

retrieve_code_context

Muestra las líneas de código fuente originales alrededor de una ubicación de error mapeada — con números de línea y un puntero de columna.

Code Context
  File: src/auth/session.ts
  Target: line 142, column 8

  139 │   const session = await getSession(token);
  140 │   if (!session) throw new AuthError("invalid token");
  141 │
> 142 │   return session.userId;
        │         ^
  143 │ }
  144 │
  145 │ export async function refreshSession(token: string) {

audit_sourcemap_match

Valida que los archivos .map en tu directorio dist estén presentes y apunten a archivos fuente que realmente existan en disco. Detecta mapas obsoletos o faltantes antes del despliegue.

Sourcemap Audit
  Directory: dist/
  Files checked: 4
  OK: 3  |  Missing maps: 0  |  Broken sources: 1

  ✓ main.a3f2c1.js — 47 source(s) mapped
  ✓ vendor.d4e5f6.js — 312 source(s) mapped
  ✓ worker.b1c2d3.js — 8 source(s) mapped
  ⚠ legacy.e7f8a9.js — 2 source(s) not found on disk:
      ../src/utils/deprecated.ts
      ../src/utils/compat.ts

⚡ Configuración

{
  "mcpServers": {
    "sourcemap-retrace": {
      "command": "npx",
      "args": ["-y", "sourcemap-retrace-mcp"]
    }
  }
}

🚀 Uso

"Tengo un error de producción. Aquí está el stack trace: [pegar]. Mis archivos dist están en /path/to/dist. Rastréalo, muéstrame el código alrededor del error y dime qué está mal."

El agente ejecuta retrace_stack, luego retrieve_code_context en la ubicación mapeada, y finalmente puede leer el TypeScript real que falló.

Funciona muy bien junto con:


📦 Enlaces

Licencia

MIT