tsconfig-inheritance-flattener-mcp
Resolve cadeias de herança de configuração TypeScript e retorna opções efetivas do compilador
Documentação
🔍 tsconfig-inheritance-flattener-mcp
Seu agente de IA lê tsconfig.json. Ele não tem ideia do que isso realmente significa.
Servidor MCP que resolve toda a cadeia de herança de configuração do TypeScript e retorna as opções efetivas do compilador que realmente se aplicam — incluindo tudo herdado de configurações base estendidas, pacotes de monorepo e presets de node_modules.
🤔 O problema
Seu agente lê tsconfig.json e vê:
{ "extends": "@tsconfig/strictest", "compilerOptions": { "paths": { "@/*": ["./src/*"] } } }
Ele não tem ideia de que @tsconfig/strictest define strict: true, noUncheckedIndexedAccess: true, exactOptionalPropertyTypes: true. Ele não sabe que baseUrl está definido dois níveis acima na sua configuração base do monorepo. Então ele:
- Sugere código que falharia em
noUncheckedIndexedAccess - Fica confuso sobre o que
@/resolve - Não sabe que seu
targetéES2022, nãoES5 - Dá respostas erradas sobre resolução de módulos
A API do compilador TypeScript já resolve tudo isso. Este MCP apenas expõe isso.
🛠️ Ferramentas
get_effective_compiler_options
Resolve toda a cadeia de extends e retorna as opções mescladas do compilador que realmente se aplicam a um determinado tsconfig.json. Mostra a cadeia de herança, todas as opções mescladas (com enums como strings legíveis, não números mágicos) e padrões 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
Mapeia um alias de caminho do TypeScript (ex.: @/hooks/useAuth) para sua localização física de arquivo no disco, usando o paths e baseUrl resolvidos do tsconfig. Retorna todos os candidatos existentes com sondagem de extensão.
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
Inspeciona o array references em um tsconfig.json raiz e valida se cada pacote referenciado tem composite: true. Detecta dependências entre pacotes quebradas em monorepos TypeScript antes que causem falhas silenciosas de build.
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
🧪 Como é na prática
O agente está ajudando a depurar um erro do TypeScript e pergunta:
"Quais opções do compilador estão realmente ativas neste projeto?"
Sem este MCP, o agente adivinha com base no que vê em tsconfig.json. Com ele:
get_effective_compiler_options("/project/apps/web/tsconfig.json")
→ strict: true, noUncheckedIndexedAccess: true, target: "ES2022", module: "NodeNext"
Agora o agente sabe exatamente por que arr[0] tem o tipo string | undefined e não apenas string. Sem mais sugestões erradas.
⚡ Configuração
{
"mcpServers": {
"tsconfig-flattener": {
"command": "npx",
"args": ["-y", "tsconfig-inheritance-flattener-mcp"]
}
}
}
🚀 Uso
"Quais opções do compilador realmente se aplicam a
/project/apps/web/tsconfig.json? Ele estende uma base de monorepo e @tsconfig/strictest."
"Onde
@/components/Buttonresolve no disco?"
"As referências de projeto no meu tsconfig raiz são válidas? Todos os pacotes referenciados têm composite: true?"
Funciona muito bem junto com:
- ast-impact-mapper-mcp — para correlação código→teste
- release-readiness-triage-mcp — para triagem de CI
📦 Links
- npm: npmjs.com/package/tsconfig-inheritance-flattener-mcp
- GitHub: github.com/vola-trebla/tsconfig-inheritance-flattener-mcp
Licença
MIT