tsconfig-inheritance-flattener-mcp について
tsconfig-inheritance-flattener-mcpは、TypeScriptプロジェクトの設定を調べるMCPサーバーです。継承されたtsconfigを解決し、有効なコンパイラーオプションやエイリアスの参照先、プロジェクト参照の問題を示します。
主な機能
- 01継承後のコンパイラーオプションを解決
- 02パスエイリアスからファイルを特定
- 03プロジェクト参照を検証
- 04継承チェーンとパターンを表示
活用シーン
- 01monorepoで有効なコンパイル設定を把握
- 02パスエイリアスの参照先を特定
- 03参照先パッケージの設定問題を確認
MCP 対応
TypeScript設定の継承解決、パスエイリアスの特定、プロジェクト参照の分析を行うツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| configPath | string | はい | 解決する tsconfig.json ファイルの絶対パス。例:/project/tsconfig.json |
| includeRaw | boolean | いいえ | true の場合、マージ前のファイルごとの生のオプションも返します。デフォルトは false です。 |
詳細
🔍 tsconfig-inheritance-flattener-mcp
AI エージェントは tsconfig.json を読み込みますが、実際に何を意味しているのかはまったく分かりません。
TypeScript の設定継承チェーン全体を解決し、実際に適用される有効なコンパイラーオプションを返す MCP サーバーです。拡張されたベース設定、モノレポのパッケージ、node_modules のプリセットから継承されるすべての設定も含まれます。
🤔 問題
エージェントが tsconfig.json を読み込むと、次のように表示されます。
{ "extends": "@tsconfig/strictest", "compilerOptions": { "paths": { "@/*": ["./src/*"] } } }
@tsconfig/strictest が strict: true、noUncheckedIndexedAccess: true、exactOptionalPropertyTypes: true を設定していることは分かりません。モノレポのベース設定で、2 階層上に baseUrl が定義されていることも分かりません。そのため、次のようなことが起きます。
noUncheckedIndexedAccessで失敗するコードを提案します@/がどこに解決されるのか分からなくなりますtargetがES5ではなくES2022であることを把握できません- モジュール解決について誤った回答をします
TypeScript コンパイラー API は、すでにこれらすべてを解決できます。この MCP は、その機能を公開するだけです。
🛠️ ツール
get_effective_compiler_options
extends チェーン全体を解決し、指定された tsconfig.json に実際に適用される、統合済みのコンパイラーオプションを返します。継承チェーン、統合されたすべてのオプション(マジックナンバーではなく、読みやすい文字列で列挙型を表示)、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
解決済みの paths と baseUrl を tsconfig から使用し、TypeScript のパスエイリアス(例:@/hooks/useAuth)をディスク上の実ファイルの場所に対応付けます。拡張子を調べて、存在する候補をすべて返します。
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
ルートの tsconfig.json にある references 配列を調べ、参照される各パッケージが composite: true を設定しているか検証します。TypeScript モノレポで、ビルドが何も通知せずに失敗する前に、パッケージ間の依存関係の問題を検出します。
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
🧪 実際の使用例
エージェントが TypeScript のエラーのデバッグを手伝っていて、次のように尋ねます。
「このプロジェクトで実際に有効なコンパイラーオプションは何ですか?」
この MCP がなければ、エージェントは tsconfig.json に表示される内容から推測します。この MCP があれば、次のようになります。
get_effective_compiler_options("/project/apps/web/tsconfig.json")
→ strict: true, noUncheckedIndexedAccess: true, target: "ES2022", module: "NodeNext"
これでエージェントは、arr[0] の型が単なる string ではなく、string | undefined である理由を正確に把握できます。誤った提案はもうありません。
⚡ セットアップ
{
"mcpServers": {
"tsconfig-flattener": {
"command": "npx",
"args": ["-y", "tsconfig-inheritance-flattener-mcp"]
}
}
}
🚀 使用方法
「
/project/apps/web/tsconfig.jsonに実際に適用されるコンパイラーオプションは何ですか?モノレポのベース設定と @tsconfig/strictest を拡張しています。」
「
@/components/Buttonはディスク上のどこに解決されますか?」
「ルートの tsconfig にあるプロジェクト参照は有効ですか?参照されるすべてのパッケージで composite: true が設定されていますか?」
次のツールと併用すると便利です。
- ast-impact-mapper-mcp — コードとテストの対応付け用
- release-readiness-triage-mcp — CI のトリアージ用
📦 リンク
- npm: npmjs.com/package/tsconfig-inheritance-flattener-mcp
- GitHub: github.com/vola-trebla/tsconfig-inheritance-flattener-mcp
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。