tsconfig-inheritance-flattener-mcp
Resuelve cadenas de herencia de configuración de TypeScript y devuelve las opciones efectivas del compilador.
Documentación
🔍 tsconfig-inheritance-flattener-mcp
Tu agente de IA lee tsconfig.json. No tiene idea de lo que realmente significa.
Servidor MCP que resuelve la cadena completa de herencia de configuración de TypeScript y devuelve las opciones efectivas del compilador que realmente se aplican, incluyendo todo lo heredado de configuraciones base extendidas, paquetes de monorepo y presets de node_modules.
🤔 El problema
Tu agente lee tsconfig.json y ve:
{ "extends": "@tsconfig/strictest", "compilerOptions": { "paths": { "@/*": ["./src/*"] } } }
No tiene idea de que @tsconfig/strictest establece strict: true, noUncheckedIndexedAccess: true, exactOptionalPropertyTypes: true. No sabe que baseUrl está definido dos niveles arriba en tu configuración base del monorepo. Entonces:
- Sugiere código que fallaría en
noUncheckedIndexedAccess - Se confunde sobre a qué resuelve
@/ - No sabe que tu
targetesES2022, noES5 - Da respuestas incorrectas sobre la resolución de módulos
La API del compilador de TypeScript ya resuelve todo esto. Este MCP simplemente lo expone.
🛠️ Herramientas
get_effective_compiler_options
Resuelve la cadena completa de extends y devuelve las opciones del compilador fusionadas que realmente se aplican a un tsconfig.json dado. Muestra la cadena de herencia, todas las opciones fusionadas (con enums como cadenas legibles, no números mágicos) y los patrones de include/exclude.
Effective TypeScript Configuration
Config: /project/apps/web/tsconfig.json
Inheritance chain: /project/apps/web/tsconfig.json
→ /project/tsconfig.base.json
→ node_modules/@tsconfig/strictest/tsconfig.json
Compiler Options (merged):
target: "ES2022"
module: "NodeNext"
moduleResolution: "NodeNext"
strict: true
noUncheckedIndexedAccess: true
exactOptionalPropertyTypes: true
baseUrl: "/project"
paths: { "@/*": ["apps/web/src/*"] }
resolve_module_alias
Mapea un alias de ruta de TypeScript (ej. @/hooks/useAuth) a su ubicación física de archivo en disco, usando el paths y baseUrl resueltos del tsconfig. Devuelve todos los candidatos existentes con sondeo de extensiones.
Alias Resolution: @/hooks/useAuth
Config: /project/apps/web/tsconfig.json
Base URL: /project
Resolved physical paths:
/project/apps/web/src/hooks/useAuth.ts ✓ exists
analyze_project_references
Inspecciona el array de references en un tsconfig.json raíz y valida que cada paquete referenciado tenga composite: true. Detecta dependencias cruzadas rotas entre paquetes en monorepos de TypeScript antes de que causen fallos de compilación silenciosos.
Project References Analysis
Config: /project/tsconfig.json
References found: 2
[✓] packages/shared → /project/packages/shared/tsconfig.json
[✗ NOT FOUND] packages/deprecated → /project/packages/deprecated/tsconfig.json
Violations:
✗ packages/shared is referenced but does not have composite: true
Fix: add "composite": true to packages/shared/tsconfig.json
🧪 Cómo se ve en la práctica
El agente está ayudando a depurar un error de TypeScript y pregunta:
"¿Qué opciones del compilador están realmente activas en este proyecto?"
Sin este MCP, el agente adivina basándose en lo que ve en tsconfig.json. Con él:
get_effective_compiler_options("/project/apps/web/tsconfig.json")
→ strict: true, noUncheckedIndexedAccess: true, target: "ES2022", module: "NodeNext"
Ahora el agente sabe exactamente por qué arr[0] tiene el tipo string | undefined y no solo string. No más sugerencias incorrectas.
⚡ Configuración
{
"mcpServers": {
"tsconfig-flattener": {
"command": "npx",
"args": ["-y", "tsconfig-inheritance-flattener-mcp"]
}
}
}
🚀 Uso
"¿Qué opciones del compilador se aplican realmente a
/project/apps/web/tsconfig.json? Extiende una base de monorepo y @tsconfig/strictest."
"¿Dónde se resuelve
@/components/Buttonen disco?"
"¿Son válidas las referencias de proyecto en mi tsconfig raíz? ¿Todos los paquetes referenciados tienen composite: true?"
Funciona muy bien junto con:
- ast-impact-mapper-mcp — para correlación código→prueba
- release-readiness-triage-mcp — para triaje de CI
📦 Enlaces
- npm: npmjs.com/package/tsconfig-inheritance-flattener-mcp
- GitHub: github.com/vola-trebla/tsconfig-inheritance-flattener-mcp
Licencia
MIT