configdoc について
configdocは渡されたソーステキストから環境変数の直接参照を検出し、デフォルト値、参照数、ファイル位置を含む一覧を作成します。設定項目を整理するチーム向けで、スキャンはローカルで完結し、追加のファイル読み込みやネットワーク通信は行いません。
主な機能
- 01process.envとimport.meta.envの参照を抽出
- 02??や||の後にあるリテラル値を取得
- 03参照数を集計しソースファイルを列挙
- 04結果作成前に入力を検証
- 05コマンドラインとMCPサーバーを提供
活用シーン
- 01複数のソースファイルの環境変数を整理
- 02各設定項目が参照されるファイルを確認
- 03設定のデフォルト値と参照数を確認
MCP 対応
MCPサーバーはextract_config_optionsツールを提供します。クライアントはpathとcontentを含むソースファイルオブジェクトを渡し、設定一覧を受け取ります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| files | array | はい | スキャンするソースファイル(1 つ以上) |
詳細
configdoc
コード内のすべての設定オプションとそのデフォルト値を、1つのドキュメントにまとめます。configdoc にソースファイルをテキストとして渡すと、ほとんどのコードベースで実際に使われている設定の範囲である、環境変数の直接参照をスキャンし、1つの一覧を返します。
- 両方の読み取り形式 —
process.env.NAMEとimport.meta.env.NAMEを抽出します。NAME は大文字の環境変数の規則([A-Z_][A-Z0-9_]*)に従います。 小文字または大文字と小文字が混在する名前は一致せず、分割代入による読み取り(const { X } = process.env)や環境変数以外の設定オブジェクトは、意図的に対象外としています。 - デフォルト値 — 読み取りの直後に
??または||とリテラルが続く場合、そのリテラルを読み取りのデフォルト値として扱います。文字列リテラルの場合は引用符の間のテキストをそのまま取得し(エスケープは解釈しません)、数値リテラルの場合は記述された値を取得します。フォールバックが識別子、関数呼び出し、その他の値の場合、デフォルト値は取得されません。 - オプションごとに1件 — 異なる名前はそれぞれ1回だけ、昇順で表示されます。デフォルト値には、その名前の読み取りのうち、デフォルト値を取得できた最初のもの(スキャン順:入力順のファイル、上から下の行、左から右の一致)を使用します。取得できる読み取りがない場合は
nullです。また、すべてのファイルにおけるその名前の読み取り総数と、読み取りがあったファイルの一覧を昇順で表示します。
入力は厳密に検証されます。ファイルセットがない、または空である場合、ファイルに path または content がない場合、path が空、文字列以外、または重複している場合、あるいは content が文字列以外の場合は、エラーとなり、該当するパスが示されます(例:files[0].content must be a string)。部分的な一覧は生成されません。スキャンは純粋かつローカルで実行されます。ネットワークや設定は不要で、渡された入力以外のファイルを読み取ることもありません。
CLI
npx @reneturcios/configdoc extract --input args.json
npx @reneturcios/configdoc --version
args.json には引数オブジェクト全体が含まれます。
{
"files": [
{
"path": "src/config.ts",
"content": "const port = process.env.PORT ?? 8080;\nconst host = process.env.HOST ?? \"localhost\";"
},
{
"path": "web/env.ts",
"content": "export const api = import.meta.env.API_URL;"
}
]
}
一覧は JSON として出力されます。
{
"options": [
{ "name": "API_URL", "default": null, "reads": 1, "files": ["web/env.ts"] },
{ "name": "HOST", "default": "localhost", "reads": 1, "files": ["src/config.ts"] },
{ "name": "PORT", "default": "8080", "reads": 1, "files": ["src/config.ts"] }
],
"total_options": 3,
"files_scanned": 2
}
終了コード:成功時は 0、実行時エラー(読み取り不能または無効な入力ファイル、無効な入力を含む)の場合は 1、使用方法のエラーの場合は 2。
MCP サーバー
npx -y @reneturcios/configdoc mcp
MCP クライアントの設定:
{
"mcpServers": {
"configdoc": {
"command": "npx",
"args": ["-y", "@reneturcios/configdoc", "mcp"]
}
}
}
ツール
-
extract_config_options— コード内で読み取られるすべての設定オプションと、それぞれの読み取り時にフォールバックするデフォルト値を、1つの一覧にまとめます。files(配列、必須、1件以上) —{path, content}オブジェクト形式のソースファイル。pathはセット内で一意であり、contentはソーステキスト全体です(空でもかまいません)。
{options, total_options, files_scanned}を返します。各オプションは{name, default, reads, files}です。
Docker
docker run -i ghcr.io/cloudcorprecords/configdoc
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/configdoc extract --input /w/args.json
開発
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (pure local, no network)
npm run dev # run the CLI from source
ライセンス
MIT — Copyright (c) 2026 Rene Turcios
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。