sourcemap-retrace-mcp

Decodifica stack traces minificados de volta para o código TypeScript original usando source maps

Documentação

🗺️ sourcemap-retrace-mcp

npm CI License: MIT

Seu aplicativo quebrou em produção. O stack trace é inútil. Seu agente de IA não tem ideia de onde está o bug.

Servidor MCP que decodifica stack traces de produção minificados de volta para arquivos, linhas e colunas originais do TypeScript — usando source maps. Antes que seu agente gaste 20 minutos tentando adivinhar código ofuscado.


🤔 O problema

Sua ferramenta de monitoramento envia isto:

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)

Você pede ao seu agente para depurar. O agente lê main.a3f2c1.js. São 40.000 caracteres de JavaScript minificado. Ele não tem ideia do que e.<anonymous> na coluna 47821 significa.

sourcemap-retrace-mcp mapeia isso de volta para:

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

Agora o agente sabe exatamente onde procurar.


🛠️ Ferramentas

retrace_stack

Decodifica um stack trace minificado de volta para as localizações originais do código TypeScript. Passe o stack trace bruto e o diretório contendo seus arquivos .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

Mostra as linhas originais do código ao redor de uma localização de erro mapeada — com números de linha e um ponteiro de coluna.

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 os arquivos .map no seu diretório dist estão presentes e apontam para arquivos de origem que realmente existem no disco. Detecta maps desatualizados ou ausentes antes da implantação.

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

⚡ Configuração

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

🚀 Uso

"Tenho um erro de produção. Aqui está o stack trace: [cole]. Meus arquivos dist estão em /path/to/dist. Retrace-o, mostre-me o código ao redor do erro e diga-me o que está errado."

O agente executa retrace_stack, depois retrieve_code_context na localização mapeada e finalmente pode ler o TypeScript real que quebrou.

Funciona muito bem junto com:


📦 Links

Licença

MIT