ln-012-mcp-configurator について
エージェントを問わず使えるスキルで、Claude CodeのMCP設定、サーバー登録、フック、出力スタイル、権限、IDE拡張機能の権限モードを構成します。サーバー状態とキャッシュ済みバージョンを確認し、変更を構造化されたサマリーで報告します。
主な機能
- 01MCPサーバーの状態とバージョンを確認
- 02指定サーバーの登録・更新
- 03フックと出力スタイルの同期
- 04権限とIDEモードの設定
- 05構造化された実行サマリーを作成
活用シーン
- 01Claude CodeのMCPサーバーを登録・更新
- 02サーバー接続とパッケージ差分の確認
- 03フック、スタイル、権限の設定
MCP 対応
Claude CodeのMCPサーバー登録と設定を管理し、ローカルのstdioとリモートのHTTPサーバーに対応します。サーバー未接続でも設定や削除の作業を続けられます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-012-mcp-configuratorインストール後、Claude Code で/ln-012-mcp-configuratorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/audit_scoring.mdaudit_summary_contract.mdaudit_worker_core_contract.mdcoordinator_summary_contract.mdenvironment_worker_runtime_contract.mdhex_graph_provider_matrix.mdstack_detection.mdworker_runtime_contract.mdreferences/templates/audit_worker_report_template.md詳細
パス: ファイルパス(
references/)は、このスキルのディレクトリを基準とします。
MCP Configurator
タイプ: L3 ワーカー カテゴリ: 0XX 共通
呼び出し元のエージェントは問いません。対象サーフェスは Claude 固有です。このスキルでは、Claude Code の MCP 設定、フック/スタイルの同期、権限、および Claude Code IDE 拡張機能の権限モードを設定します。
必読
必読: references/coordinator_summary_contract.md、references/environment_worker_runtime_contract.md、references/worker_runtime_contract.md を読み込んでください。
対象の MCP が利用可能であることは、このワーカーの前提条件ではありません。サーバーがまだ接続されていない場合は、設定ファイル、パッケージのメタデータ、CLI の状態を使って、登録とクリーンアップを続行してください。MCP がなければ実行できないプロバイダーチェックやライブ検証は、skipped として報告してください。
入力/出力
| 方向 | 内容 |
|---|---|
| 入力 | OS 情報、dry_run フラグ、省略可能な apply_ide_override フラグ(デフォルトは false — 指定がない場合、Phase 6b は検出のみ)、省略可能な runId、省略可能な summaryArtifactPath |
| 出力 | payload.status が completed/skipped/error のいずれかとなる構造化サマリーエンベロープ。サーバーごとの結果は changes/detail に、IDE 拡張機能の状態は payload.ide_extension に含まれます |
summaryArtifactPath が指定されている場合は、同じサマリー JSON をそのパスに書き込みます。指定されていない場合は、サマリーをインラインで返し、完全に単独で動作します。runId が指定されていない場合は、サマリーエンベロープを出力する前に、単独実行用の run_id を生成します。
ランタイム
ランタイムファミリー:environment-worker-runtime
フェーズプロファイル:
PHASE_0_CONFIGPHASE_1_CHECK_STATUS_AND_VERSIONPHASE_2_REGISTER_AND_CONFIGUREPHASE_3_VERIFY_GRAPH_PROVIDER_DEPSPHASE_4_HOOKS_AND_OUTPUT_STYLEPHASE_5_GRAPH_INDEXINGPHASE_6_MIGRATE_ALLOWED_TOOLSPHASE_7_PERMISSION_SURFACESPHASE_8_WRITE_SUMMARYPHASE_9_SELF_CHECK
ランタイムのルール:
summary_kind=env-mcp-configを出力します- 単独実行では独自の
run_idを生成し、ワーカーファミリーのデフォルトの成果物パスに書き込みます - 管理対象の実行では
runIdとsummaryArtifactPathの両方が必須であり、指定された正確なパスにサマリーを書き込む必要があります - 終了結果を出す前に、必ず検証済みのサマリー成果物を書き込みます
出力コントラクト
次に従い、構造化された env-mcp-config サマリーエンベロープを必ず作成してください。
references/coordinator_summary_contract.mdreferences/environment_worker_runtime_contract.md
ペイロードのフィールド:
serverspermissionside_extensionhooks_syncedoutput_style_syncedallowed_tools_migratedgraph_provider_statusstatus
サーバーレジストリ
トランスポートの種類は stdio(ローカルプロセス)と HTTP(クラウドエンドポイント)の2つです。
| サーバー | トランスポート | インストール | 必須 | API キー |
|---|---|---|---|---|
| hex-line | stdio | npx -y @levnikolaevich/hex-line-mcp | はい | いいえ |
| hex-ssh | stdio | npx -y @levnikolaevich/hex-ssh-mcp | いいえ | いいえ |
| hex-graph | stdio | npx -y @levnikolaevich/hex-graph-mcp | いいえ | いいえ |
| hex-research | stdio | npx -y @levnikolaevich/hex-research-mcp | いいえ | いいえ |
| context7 | HTTP | https://mcp.context7.com/mcp | はい | 任意 |
| Ref | HTTP | https://api.ref.tools/mcp | はい | はい(ユーザーに確認) |
| linear | HTTP | https://mcp.linear.app/mcp | ユーザーに確認 | いいえ(OAuth) |
ワークフロー
Check Status & Version → Register & Configure → Verify Graph Provider Deps → Hooks → Permissions → IDE Extension Mode → Migrate → Report
フェーズ 1:ステータスとバージョンを確認する
スマートインストール:MCP のステータスとパッケージの差異を確認します。npx はキャッシュを積極的に使用するため、サーバーが接続済みでも、古いキャッシュ済みパッケージが使われている場合があります。
ステップ 1a:MCP サーバーのステータスを確認する
claude mcp list を実行し、各 hex サーバーを解析します。
| サーバー | ステータス | アクション |
|---|---|---|
| 登録済み + 接続済み | 動作中 | バージョンを確認します(ステップ 1b) |
| 登録済み + 切断済み | 破損 | 再登録します(フェーズ 2) |
| 未登録 | 未登録 | フェーズ 2 で登録します |
ステップ 1b:接続済みの hex- サーバーのバージョンを確認する*
接続済みの公開 hex サーバーごとに、次を並列実行します。
npm view @levnikolaevich/${PKG} version 2>/dev/null
次に、npm の最新バージョンと実行中のローカルバージョンを比較します。
- npx キャッシュを調査:
npm config get cache->{cacheRoot}/_npx/**/node_modules/@levnikolaevich/${PKG}/package.jsonを検索 -> semver/更新日時が最も新しいものを選択します
npx キャッシュのバージョンを使用します。調査結果が空の場合は、running=unknown と報告し、最新であると断定せず、サーバーを更新推奨として扱います。
注:公開 hex パッケージは npx -y で実行し、グローバルにはインストールしません。グローバル npm のパスは絶対に調査しないでください。
| npm の最新バージョン | キャッシュ済みローカルバージョン | アクション |
|---|---|---|
| 同じ | 同じ | スキップ |
| より新しい | 古い | 「更新が必要」とマーク -> フェーズ 2 で再登録します |
| 不明 | 任意 | 警告して続行します |
スキップ条件:
| 条件 | アクション |
|---|---|
disabled: true | スキップ |
dry_run: true | 実行予定のコマンドを表示します |
| 接続済み + キャッシュ済みローカルバージョンが npm の最新バージョンと一致 | スキップし、バージョンを報告します |
フェーズ 2:登録と設定
1 回の処理で、フェーズ 1 の状態を使用し(claude mcp list を再実行しないでください)、未対応のサーバーを削除してから、登録または更新し、検証します。
- フェーズ 1 の状態を再利用する — ステップ 1a のサーバーマップには、登録状況と接続状況がすでに含まれています
- フォールバック(単独で実行する場合のみ):
~/.claude.jsonと~/.claude/settings.jsonを読み取ります
- フォールバック(単独で実行する場合のみ):
- 未対応のサーバーを削除します。
| 未対応のサーバー | 対応 |
|---|---|
| hashline-edit | 見つかった場合は削除 |
| pencil | 見つかった場合は削除 |
| lighthouse | 見つかった場合は削除 |
| playwright | 見つかった場合は削除 |
| browsermcp | 見つかった場合は削除 |
- 未登録のサーバーを登録するか、古いサーバーを更新します。
- すでに設定済みで、接続済み、かつキャッシュされたローカルバージョンが一致する場合 -> スキップ
- 接続済みでも古い場合 -> 削除して再追加(npx で最新バージョンを取得します)
dry_run: trueの場合 -> 実行予定のコマンドを表示- linear の場合 -> ユーザーに「Linear を使っていますか?」と尋ねます -> いいえの場合はスキップ
登録コマンド(OS に応じたプレフィックス):
| OS | プレフィックス | 理由 |
|---|---|---|
| Windows(bash/MSYS2) | MSYS_NO_PATHCONV=1 claude mcp add ... -- cmd /c npx | MSYS2/Git Bash は引数内の /c を C:/ に変換します。MSYS_NO_PATHCONV=1 でこれを防ぎます |
| Windows(PowerShell/cmd) | cmd /c npx | ネイティブシェルではパス変換の問題はありません |
| macOS / Linux | npx | 直接実行 |
| サーバー | コマンド(Windows bash — 必ず MSYS_NO_PATHCONV=1 をプレフィックスとして付けます) |
|---|---|
| hex-line | MSYS_NO_PATHCONV=1 claude mcp add -s user hex-line -- cmd /c npx -y @levnikolaevich/hex-line-mcp |
| hex-ssh | MSYS_NO_PATHCONV=1 claude mcp add -s user hex-ssh -- cmd /c npx -y @levnikolaevich/hex-ssh-mcp |
| hex-graph | MSYS_NO_PATHCONV=1 claude mcp add -s user hex-graph -- cmd /c npx -y @levnikolaevich/hex-graph-mcp |
| hex-research | MSYS_NO_PATHCONV=1 claude mcp add -s user hex-research -- cmd /c npx -y @levnikolaevich/hex-research-mcp |
| context7 | claude mcp add -s user --transport http context7 https://mcp.context7.com/mcp |
| Ref | claude mcp add -s user --transport http Ref https://api.ref.tools/mcp |
| linear | claude mcp add -s user --transport http linear-server https://mcp.linear.app/mcp |
- 検証:
claude mcp listを実行し、登録済みのすべてのサーバーがConnectedと表示されることを確認します。これは 2 回目のclaude mcp list呼び出し(変更後の検証)に限ります。失敗した場合は再試行し、結果を報告します。
Windows MSYS2 のパス検証(win32 では必須):
登録後、~/.claude.json を読み取り、各 hex サーバーの args[0] が "C:/" ではなく "/c" であることを確認します。
壊れている場合は、mcp__hex-line__edit_file で修正し(set_line で引数を "/c" に設定します)。
エラー処理:
| エラー | 対応 |
|---|---|
claude CLI が見つからない | 失敗として扱い、「Claude CLI が PATH にありません」と報告 |
| サーバーがすでに存在する | スキップし、「すでに設定済み」と報告 |
| 追加後に接続に失敗 | 警告し、claude mcp list の詳細を報告 |
| API キーがない(Ref) | ユーザーにキーを求め、拒否された場合はスキップ |
フェーズ 2b:Graph プロバイダーの依存関係を検証
必須の読み込み: references/hex_graph_provider_matrix.md と references/stack_detection.md を読み込みます。
登録と接続が完了したら、より充実した MCP の動作に必要な追加のシステムバイナリまたはパッケージのみを確認します。プロジェクトには独自のランタイムとアプリケーションの依存関係がすでにあるものとします。このフェーズでは、プロジェクトの依存関係、フレームワークのパッケージ、ランタイムはインストールしません。
ステップ 1:接続済みのサーバーを特定する フェーズ 2 の検証状態を再利用します。依存関係を確認するのは、接続済みの hex-* サーバーのみです。
ステップ 2:hex-line-mcp の依存関係を検証する
| 依存関係 | 確認方法 | 必須 | 自動修正 | フォールバック |
|---|---|---|---|---|
| ripgrep | rg --version | はい | インストール表を参照 | grep_search が失敗します |
| git | git --version | いいえ | 情報提供のみ | changes ツールが無効になります |
プラットフォーム別の ripgrep のインストール:
| Platform | Command |
|---|---|
| Linux (apt) | sudo apt-get install -y ripgrep |
| Linux (yum) | sudo yum install -y ripgrep |
| macOS | brew install ripgrep |
| Windows (winget) | winget install BurntSushi.ripgrep.MSVC |
| Windows (scoop) | scoop install ripgrep |
| Fallback (npm) | npm exec --yes -- @vscode/ripgrep-postinstall |
rg --version が失敗する場合は、自動インストールするかユーザーに確認してください(プラットフォームに適したコマンドを提案してください)。ユーザーが希望しない場合は、WARN を出して続行してください。grep では hex-line の機能が低下します。
Step 2a: hex-line の EOL リスクに関する注意
リポジトリとユーザーの EOL ポリシーを確認しますが、ここでは書き換えないでください。
.gitattributesのeol=/text=auto.editorconfigのend_of_linegit config --get core.autocrlfgit config --get core.eolgit config --get core.safecrlf
通常の編集でリポジトリのポリシーとユーザーの作業ツリーポリシーが競合し、行末が頻繁に変更される可能性が高い場合は WARN を報告してください。これはあくまで注意喚起です。ln-012 ではリポジトリのポリシーファイルを自動編集しないでください。
Step 3: hex-graph 用の現在のプロジェクト言語を検出
現在のプロジェクトルートのみを対象に検出してください。
docs/project/tech_stack.mdがある場合はその内容- プロジェクトルートにあるマーカーファイル
- フォールバックとしてソースファイルの拡張子をスキャン
フレームワークのマーカーは、言語を確認するためにのみ使用してください。
| Framework hint | Language |
|---|---|
| FastAPI, Django, Flask | Python |
| ASP.NET Core | C# |
| Laravel | PHP |
| React, Next.js, Express, NestJS | JavaScript / TypeScript |
hex-graph に関連する言語が検出されない場合は、オプションのプロバイダーチェックをスキップし、SKIP を報告してください。
Step 4: hex-graph-mcp のグラフ固有プロバイダーと SCIP エクスポーターを検証
信頼できる情報源として、hex-graph-mcp の MCP ツール install_graph_providers を使用してください。
- 最初に
mode: "check"を指定して呼び出します。 instructions_for_agentの出力を修正手順として再利用します。- ユーザーが同意した場合に限り、
mode: "install"を指定して再度呼び出します。 - 以下の表は参考ポリシーとして扱い、別の実装情報源として使用しないでください。
| 検出されたプロジェクト言語 | ツール | 確認 | 必須 | 自動修正 | フォールバック |
|---|---|---|---|---|---|
| JavaScript / TypeScript | なし | なし | いいえ | なし | 埋め込みの TypeScript 精密オーバーレイと SCIP エクスポートをすでに利用できます |
| Python | basedpyright | basedpyright-langserver --version | いいえ | pip install basedpyright | Python の精密解析をスキップ |
| Python | scip-python | scip-python index --help | いいえ | Windows: npm install -g github:levnikolaevich/scip-python#fix/windows-path-sep-regex、macOS/Linux: npm install -g @sourcegraph/scip-python | Python の export_scip をスキップ |
| C# | csharp-ls | csharp-ls --version | いいえ | dotnet tool install -g csharp-ls | C# の精密解析をスキップ |
| C# | scip-dotnet | scip-dotnet --help | いいえ | dotnet tool install -g scip-dotnet | C# の export_scip をスキップ |
| PHP | phpactor | phpactor --version | いいえ | プロジェクト固有の PHP インストール手順 | PHP の精密解析をスキップ |
| PHP | scip-php | scip-php --help または php vendor/bin/scip-php --help | いいえ | composer global config repositories.levnikolaevich-scip-php vcs https://github.com/levnikolaevich/scip-php の後に composer global require davidrjenni/scip-php:dev-fix/windows-runtime-fixes --prefer-source | PHP の export_scip をスキップ |
hex-graph では、グラフ固有のプロバイダーとオプションの SCIP エクスポーターのみを検討してください。
- 言語が検出されたら、
basedpyright、csharp-ls、phpactor、scip-python、scip-dotnet、scip-phpをインストールするか、推奨してください - 上流の Windows 修正がリリースされるまで、Windows ではパッチ適用済みの
scip-pythonインストールを優先してください - パッチ適用済みの Python SCIP バイナリがデフォルトの
PATHの外にある場合は、HEX_GRAPH_SCIP_PYTHON_BINARYについて言及してください - プロジェクトローカルの Composer インストールがブロックされている場合、または上流のバイナリが空の成果物を出力する場合は、PHP SCIP エクスポートに分離されたパッチ適用済みの
scip-phpフォークを優先してください python、.NET、php、fastapi、django、laravel、nestjs、またはプロジェクトの依存関係をインストールしないでください- フレームワークオーバーレイのみのために何もインストールしないでください。ステージ 4 のフレームワークサポートはパーサー/規約ベースです
- プロバイダーのインストールコマンドを実行する前にユーザーに確認してください
ステップ 5: hex-ssh-mcp の依存関係を検証する
システム依存関係はありません(純粋な JS ssh2)。スキップします。
ステップ 6: 依存関係テーブルを報告する
Server | Dependency | Status | Action の列を持つテーブルを出力します。
| Status | 意味 |
|---|---|
| OK | 利用可能で機能している |
| INSTALLED | 欠落していたため、自動インストールされた |
| WARN | 欠落しており、ユーザーがインストールを拒否した |
| SKIP | 検出されたプロジェクト言語には不要 |
| FAIL | 必須だが、インストールできない |
エラー処理:
| エラー | 対応 |
|---|---|
| 必須の依存関係が欠落 + ユーザーが拒否 | WARN、機能を低下させて続行 |
| 自動インストールが失敗 | WARN、手動インストール手順を表示 |
| オプションの依存関係が欠落 | INFO、レポートに記載 |
hex-graph については、プロバイダー/エクスポーターのチェックを促進した検出言語も報告してください。
フェーズ 3: フックと出力スタイル [CRITICAL]
setup_hooks を呼び出さないでください。hex-line は MCP サーバーの起動時にフックと出力スタイルを自動同期するようになりました。
フェーズ 2 のすべての登録が完了した後:
- サーバーを起動するために、無害な
hex-line呼び出しを 1 回トリガーします。たとえばmcp__hex-line__inspect_path({ path: "{project_path}" }) - 以下の起動時同期の結果を確認します
フック(~/.claude/settings.json 内):
PreToolUseフック — 組み込みの Read/Edit/Write/Grep/Glob を hex-line の同等のものにリダイレクトします(Glob->inspect_path(pattern=...))PostToolUseフック — 冗長なツール出力を圧縮します(RTK フィルター)SessionStartフック — MCP ツール設定のリマインダーを注入しますdisableAllHooks: フックが同期されていることを確認した後、~/.claude/settings.jsonを読み取り、disableAllHooks: falseを設定し(マージし、他のすべてのフィールドを保持)、書き戻します。ユーザーが明示的にセットアップを呼び出し、フックを有効にしたいと考えているため、ここではこれが適切です。autoSync はこのフラグを管理しません — フックファイルの内容とエントリのみを同期します。
出力スタイル:
5. output-style.md を ~/.claude/output-styles/hex-line.md にコピーします
6. スタイルがアクティブでない場合、outputStyle: "hex-line" を設定します(既存のスタイルを保持)
検証: 最初の hex-line ツール呼び出しの後、以下をすべて確認します:
~/.claude/settings.jsonに、現在のコマンドパスを持つ 3 つのhex-lineフックエントリが含まれているdisableAllHooks: false(autoSync ではなく、このスキルによって明示的に設定される)~/.claude/output-styles/hex-line.mdが存在し、パッケージの内容と一致するoutputStyle: "hex-line"は、他のスタイルがまだアクティブでない場合にのみ設定される
Hex-line ワークフローのリマインダー: 同期された出力スタイルは、以下をすべて教えなければなりません:
- 同一ファイルの後続編集に
revisionをbase_revisionとして引き継ぐ - 同一ファイルに対する遅延編集または混在ツールでの後続編集の前に
verifyを実行する retry_edit、retry_edits、retry_checksum、retry_planを直接再利用する- 行末ポリシーを保持されたファイル状態として扱い、
edit_fileが暗黙的に正規化すべきものとはしない
注記: autosync は冪等です。以降の hex-line の起動時には、インストールされたフックとスタイルの内容を再チェックし、それらがずれた場合にのみ更新します。
フェーズ 4:グラフのインデックス作成
hex-graph の登録後、接続済みになったら:
mcp__hex-graph__index_project({ path: "{project_path}" })— 初期コードナレッジグラフを構築します- その後、グラフを使った読み取りや編集の結果が古く見える場合は、
mcp__hex-graph__index_project({ path: "{project_path}" })を再実行します — インデックス作成処理は冪等で、変更されたファイルのみを更新します
hex-graph が登録されていないか、接続されていない場合はスキップします。
フェーズ 5:allowed-tools の移行[重要]
プロジェクトのコマンド/スキルを確認し、allowed-tools のフロントマターで組み込みツールを hex-line の同等ツールに置き換えます。
ツールの対応関係:
| 組み込みツール | Hex の同等ツール |
|---|---|
Read | mcp__hex-line__read_file |
Edit | mcp__hex-line__edit_file |
Write | mcp__hex-line__write_file |
Grep | mcp__hex-line__grep_search |
Glob | mcp__hex-line__inspect_path |
手順:
mcp__hex-line__inspect_path(path=".claude/commands", pattern="*.md", max_entries=0)で.claude/commands/*.mdを、mcp__hex-line__inspect_path(path=".claude/skills", pattern="SKILL.md", max_entries=0)で.claude/skills/*/SKILL.mdを検索します- 各ファイルについて、YAML フロントマターを解析し、
allowed-toolsを抽出します - 各対応項目について:
a. 組み込みツールが存在し、Hex の同等ツールが存在しない場合は、Hex の同等ツールを追加し、組み込みツールを削除します(
ReadとBashを除く) b. 組み込みツールと Hex の同等ツールの両方が存在する場合は、組み込みツールを削除します(ReadとBashを除く) c. 置換表にない既存のmcp__*ツールはすべて保持します - 更新したフロントマターを書き戻します(引用符のスタイルを保持します)
スキップ条件:
| 条件 | 操作 |
|---|---|
.claude/ ディレクトリがない | フェーズ全体をスキップ |
ファイルに allowed-tools がない | ファイルをスキップ |
| Hex の同等ツールがすべて存在する | ファイルをスキップし、「すでに移行済み」と報告 |
dry_run: true | 予定されている変更を表示 |
フェーズ 6:権限の付与
指示ファイルと MCP Tool Preferences の内容は、ln-014-agent-instructions-manager が管理します。このスキルでは、CLAUDE.md または AGENTS.md を作成または書き換えてはいけません。
組み込みツールと MCP サーバーのプレフィックスが、~/.claude/settings.json -> permissions.allow[] に含まれていることを確認します。
組み込みツール(存在することを確認):
| ツール | 権限エントリ |
|---|---|
| Bash | Bash |
| Read | Read |
| Write | Write |
| Edit | Edit |
| Grep | Grep |
| WebSearch | WebSearch |
| WebFetch | WebFetch |
MCP サーバー(設定されているものごと):
| サーバー | 権限エントリ |
|---|---|
| hex-line | mcp__hex-line |
| hex-ssh | mcp__hex-ssh |
| hex-graph | mcp__hex-graph |
| hex-research | mcp__hex-research |
| context7 | mcp__context7 |
| Ref | mcp__Ref |
| linear | mcp__linear-server |
~/.claude/settings.jsonを読み込みます(存在しない場合は{"permissions":{"allow":[]}}を作成します)- 既存エントリを統合します: 各汎用ツール(
Bash、Read、Write、Edit、Grep、WebSearch、WebFetchおよび各mcp__{name})について:- 特定のバリエーション(例:
Bash(gh repo:*)、Bash(node ...)、WebFetch(domain:docs.github.com))がある場合は、それらを削除します。汎用エントリで、すべてが許可されるためです - パターン:
entry.startsWith("Tool(")→ 汎用のToolを追加する場合は削除します
- 特定のバリエーション(例:
- まだ存在しない汎用エントリを追加します
- 書き戻します(JSON のインデントは 2 スペース)
冪等性: 既存の汎用エントリはスキップします。汎用エントリに統合されるのは、特定のサブエントリのみです。
フェーズ 6b:IDE 拡張機能の権限モードを確認
Claude Code IDE 拡張機能(Cursor / VSCode)には独自の claudeCode.initialPermissionMode 設定があり、Claude が IDE 経由で実行される際は、~/.claude/settings.json の permissions.defaultMode が上書きされます。デフォルト値は "default" で、.claude/settings.local.json に設定されたプロジェクトレベルの bypassPermissions は暗黙のうちに無視されます。IDE 経由の実行時にバイパスを実際に有効にするには、拡張機能の設定を 2 つ同時に設定する必要があります。
このフェーズは検出を優先します。 権限モードはセキュリティ上の判断であり、IDE の設定はベンダー固有のため、ユーザーの明示的な同意なしに IDE の設定を変更することはありません。
ステップ 1:インストール済みの Claude Code IDE 拡張機能を検出する
| IDE | 拡張機能ディレクトリ | ユーザー設定パス(Windows) | ユーザー設定パス(macOS) | ユーザー設定パス(Linux) |
|---|---|---|---|---|
| Cursor | ~/.cursor/extensions/anthropic.claude-code-* | %APPDATA%/Cursor/User/settings.json | ~/Library/Application Support/Cursor/User/settings.json | ~/.config/Cursor/User/settings.json |
| VSCode | ~/.vscode/extensions/anthropic.claude-code-* | %APPDATA%/Code/User/settings.json | ~/Library/Application Support/Code/User/settings.json | ~/.config/Code/User/settings.json |
各 IDE について、拡張機能ディレクトリ内で anthropic.claude-code-* を glob で検索します。一致するものが 1 つ以上あれば、拡張機能はインストール済みです。
ステップ 2:拡張機能の package.json を読み込み、claudeCode.* 設定を列挙する
関連するキー(拡張機能の package.json の contributes.configuration.properties を確認済み):
| 設定キー | 型 | デフォルト | 効果 |
|---|---|---|---|
claudeCode.initialPermissionMode | 文字列の列挙型 | "default" | セッション開始時に --permission-mode フラグを設定します。列挙値:default、acceptEdits、plan、bypassPermissions |
claudeCode.allowDangerouslySkipPermissions | ブール値 | false | ハードゲートです。bypassPermissions を実際に有効にするには true が必要です。IDE コンテキストに対する Anthropic の明示的なガードです |
ステップ 3:検出された各 IDE のユーザー設定 JSON を読み込み、現在の状態を報告する
| 検出された状態 | 実効動作 | 報告値 |
|---|---|---|
initialPermissionMode が未設定または "default"、かつ allowDangerouslySkipPermissions が未設定または false | 標準のプロンプトベースの権限設定です。プロジェクトの defaultMode は無視されます | default-prompt |
initialPermissionMode = "acceptEdits" | ファイル操作は自動承認されますが、Bash は引き続きプロンプトを表示します | accept-edits |
initialPermissionMode = "plan" | プランモードが強制されます(実行なし) | plan-only |
initialPermissionMode = "bypassPermissions"、allowDangerouslySkipPermissions = true | バイパスが有効です | bypass-active |
initialPermissionMode = "bypassPermissions"、allowDangerouslySkipPermissions = false | 設定ミス — ユーザーはバイパスを指定していますが、ゲートが閉じているため、デフォルトにフォールバックします | bypass-blocked |
レポートには必ず、IDE 拡張機能経由で実行する場合に .claude/settings.local.json defaultMode が暗黙に無視される理由を 1 行で説明してください。
ステップ 4:.claude/settings.json と .claude/settings.local.json defaultMode を照合する
プロジェクト設定で permissions.defaultMode = "bypassPermissions" が宣言されている一方、IDE 拡張機能の状態が default-prompt または bypass-blocked の場合は、上書きについて説明する WARN を概要に出力します:
WARN: プロジェクトの
.claude/settings.local.jsonでdefaultMode: bypassPermissionsが宣言されていますが、{IDE} の Claude Code IDE 拡張機能はセッション開始時に--permission-mode {detected}を強制します。IDE 経由で実行すると、プロジェクト設定は無視されます。設定を一致させるには、このスキルをapply_ide_override=trueで実行してプロンプトで確認するか、{settings_path} でclaudeCode.initialPermissionModeとclaudeCode.allowDangerouslySkipPermissionsを手動で設定してください。
ステップ 5:オプションの修正(ユーザーの明示的な同意がある場合のみ)
このフェーズで IDE 設定を書き込むのは、呼び出し元がメインの dry_run とは別のフラグである apply_ide_override=true を渡した場合に限ります。このフラグが渡された場合でも、スキルは変更対象のキーとファイルを正確に列挙した確認質問を 1 つだけユーザーに提示しなければなりません。
変更を適用する場合:
- 最初にバックアップする: 書き込み前に settings.json を
settings.json.bak.{timestamp}にコピーします - 読み取り → ディープマージ → 書き込み: その他すべての
claudeCode.*キー(preferredLocation、useTerminal、respectGitIgnoreなど)と、claudeCode.*以外のキーをすべて保持します - 目的のモードに応じて、次の2つのキーのみを書き込みます:
bypassPermissionsの場合:claudeCode.allowDangerouslySkipPermissions: trueとclaudeCode.initialPermissionMode: "bypassPermissions"を設定しますacceptEditsの場合:claudeCode.initialPermissionMode: "acceptEdits"を設定します(ゲートは不要です)defaultの場合:両方のキーを削除します(またはfalse/"default"に設定します)
- 完全な再起動を指示する: 「IDE の再起動が必要です(完全に終了して再度開いてください。ウィンドウの再読み込みではありません)。拡張機能は有効化時にのみ設定を読み込みます」と表示します
- 概要に記録する: 変更前/変更後の値、バックアップパス、明示的なユーザー同意のタイムスタンプを含めます
スキップ条件:
| 条件 | アクション |
|---|---|
| Claude Code IDE 拡張機能が見つからない | フェーズ全体をスキップし、no-ide を報告します |
dry_run: true | 検出と報告のみ行い、書き込みません(デフォルトの動作と同じです) |
apply_ide_override フラグがない | 検出と報告のみ行い、ユーザーに確認しません |
| ユーザーが修正の確認プロンプトを拒否する | 書き込みをスキップし、判断を概要に記録します |
プロジェクトの .claude/settings*.json で defaultMode が宣言されていない | INFO:WARN は出さず、拡張機能の状態を報告します(解決すべき競合がありません) |
このフェーズがデフォルトで検出優先である理由:
- IDE の設定は IDE ベンダーごと、ユーザーごとに異なるため、複数のマシンにわたる自動変更は侵襲的です
bypassPermissionsはセキュリティ上慎重な扱いが必要な選択肢です。Anthropic は IDE のコンテキスト(インターネットに接続しないサンドボックスを想定)で使用するため、allowDangerouslySkipPermissionsによる保護を明示的に設けています- ユーザーが IDE ごとに異なるモードを正当に使いたい場合があります(例:日常作業では Cursor で
acceptEdits、サンドボックスの自動化では別の VSCode プロファイルでbypassPermissions) - ホストプロジェクトのメモにある「エージェント設定を変更しない」というルールに沿っています。常に検出を行い、明示的な同意がある場合にのみ書き込みます
フェーズ 7:レポート
ステータステーブル:
MCP Configuration:
| Server | Transport | Version | Status | Permission | Detail |
|-----------|-----------|---------|---------------|------------|-------------------------|
| hex-line | stdio | 1.5.0 | configured | granted | npx package (hex-line-mcp) |
| hex-ssh | stdio | 1.2.0 | updated | granted | was 1.1.6, now 1.2.0 |
| hex-research | stdio | 0.1.0 | configured | granted | npx package (hex-research-mcp) |
| context7 | HTTP | — | configured | granted | mcp.context7.com |
| Ref | HTTP | — | configured | granted | api.ref.tools (key set) |
| linear | HTTP | — | skipped | skipped | user declined |
IDE Extension Permission Mode:
| IDE | Extension Version | initialPermissionMode | allowDangerouslySkipPermissions | Effective State | Conflict with project defaultMode |
|---------|-------------------|-----------------------|---------------------------------|-----------------|-----------------------------------|
| Cursor | 2.1.92 | bypassPermissions | true | bypass-active | aligned |
| VSCode | (not installed) | — | — | no-ide | n/a |
重要なルール
- 許可された方法でのみ書き込みます。 サーバーは
claude mcp addで登録してください。~/.claude/settings.jsonに書き込めるのは、権限(permissions.allow[])を設定するとき、または自動同期が失敗した後に、明示的なフック/スタイルの検証で修正が必要なときに限ります - 追加後に検証します。 登録後は必ず
claude mcp listを実行して、接続を確認してください - 任意のサーバーを追加する前に確認します。 Linear の追加には、ユーザーの明示的な同意が必要です
- すべての hex MCP で npx -y を使用します。
npm i -gは使用しないでください。npx を使うとプロセスが分離され、Windows での EBUSY を回避できます。Windows では、パッケージをcmd /c npxでラップしてください(Phase 2 の OS プレフィックス表を参照) - サポート対象外のサーバーを削除します。 レジストリにないサーバーをクリーンアップしてください
- 権限を付与します。 登録後、ユーザー設定に
mcp__{server}を追加してください claude mcp listの実行回数を最小限にします。 Phase 1 では検出のために一度だけ実行します。Phase 2 ではそのデータを再利用します。再実行するのは Phase 2 Step 4(変更後の検証)のみです。合計最大 2 回- npm のバージョン差分を必ず確認します。 接続済みでも最新とは限りません。スキップする前に、npm の最新バージョンと、ローカルにキャッシュされた npx パッケージの最新バージョンを比較してください
- MSYS2 でのパス安全性を確保します。 Git Bash/MSYS2 を使用する Windows では、
claude mcp addの前に必ずMSYS_NO_PATHCONV=1を付けてください。登録後、.claude.jsonのargs[0]が"C:/"ではなく"/c"であることを確認してください。破損している場合は、その場で修正してください - インストール後にグラフ固有の依存関係を確認します。 Phase 2 での登録後、hex-line のシステムバイナリ、グラフ固有の任意プロバイダー、検出されたプロジェクト言語向けの任意 SCIP エクスポーターを確認してください。自動インストールはユーザーの同意がある場合に限ります。ここではプロジェクトのランタイムやフレームワークのパッケージをインストールしないでください
- EOL による変更リスクを報告し、隠さないでください。
.gitattributes、.editorconfig、または Git の設定から、作業ツリーの改行コードが書き換えられる可能性が示唆される場合、この場でリポジトリのポリシーを黙って変更するのではなく、明示的に警告してください - 設定ファイルには非破壊的に書き込みます。 必ず読み取り → マージ → 編集の順で行ってください。設定ファイルを一から上書きしてはいけません。このスキルが管理しないすべてのキー/セクションを保持してください
- IDE 拡張機能の設定は検出を優先します。 Phase 6b では Cursor/VSCode のユーザー設定から
claudeCode.*キーを読み取り、有効な権限モードを報告します。ただし、apply_ide_override=trueであり、かつユーザーの明示的な確認がある場合を除き、IDE の設定を書き換えてはいけません。IDE の設定はベンダー固有であり、bypassPermissionsの変更はユーザー自身が判断すべきセキュリティ上の決定です。
アンチパターン
| してはいけないこと | するべきこと |
|---|---|
任意のフィールドを ~/.claude.json に書き込む | サーバーには claude mcp add を使い、フック/スタイルには hex-line の起動時自動同期を利用する |
| 追加後の確認を省略する | 変更後は必ず claude mcp list を確認する |
| 任意のサーバーを自動追加する | Linear などの任意サーバーはユーザーに確認する |
| 未対応のサーバーをそのままにする | hashline-edit、pencil などを削除する |
| トークン予算を計算する | このワーカーの担当ではありません |
各フェーズで claude mcp list を実行する | フェーズ 1 で一度実行し、フェーズ 2 では再利用し、変更後に一度確認する |
| 接続済みなら最新だと思い込む | npm view のバージョンと、最新のキャッシュ済み npx パッケージのバージョンを確認する |
| 登録直後からフック/スタイルが準備できていると思い込む | 無害な hex-line ツール呼び出しを 1 回行ってから、自動同期の結果を確認する |
Windows の bash で MSYS_NO_PATHCONV を設定せずに claude mcp add を実行する | 常に MSYS_NO_PATHCONV=1 claude mcp add ... を使うか、引数を確認して修正する |
| hex-graph のプロバイダー確認を省略する | まずプロジェクトの言語を検出し、関連する graph 固有のプロバイダーと SCIP エクスポーターのみを確認する |
| プロジェクト/フレームワーク/ランタイムのパッケージを自動インストールする | このフェーズでは MCP 関連の graph プロバイダーと SCIP エクスポーターに限定し、インストール前にユーザーへ確認する |
| 既知のフィールドだけで設定ファイル全体を上書きする | 既存の設定を読み込み、管理対象のフィールドのみをディープマージしてから書き戻す |
プロジェクトからの指示を理由に、通知なしで claudeCode.initialPermissionMode を bypassPermissions に切り替える | 上書きを検出して警告し、IDE 設定を書き込む前に apply_ide_override=true とユーザーの明示的な確認の両方を必須とする |
allowDangerouslySkipPermissions = true も設定せずに initialPermissionMode = "bypassPermissions" を設定する | 両方のキーをセットで設定する必要があります。ゲートがないと、モードは通知なしでデフォルトに戻ります |
IDE の bypassPermissions を Codex CLI のデフォルト設定の代わりとして扱う | Codex の実行デフォルト設定の管理は ln-013-config-syncer に任せる |
権限関連の設定だからという理由で、このワーカーから ~/.codex/config.toml を変更する | Codex CLI の実際の設定調整は ln-013-config-syncer に任せる |
| IDE 設定の変更後に「ウィンドウの再読み込み」を案内する | 必ず完全に終了してから再起動するよう案内する。拡張機能が設定を読み込むのは有効化時のみであり、「ウィンドウの再読み込み」では読み込みません |
完了の定義
- MCP パッケージがインストールされ、npm レジストリと照合してバージョンが確認されている(フェーズ 1)
- 不足しているサーバーが登録され、接続済みであることが確認されている(フェーズ 2)
- 古いサーバーが最新バージョンで再登録されている(フェーズ 2)
- graph 固有の依存関係が確認されている:ripgrep が利用可能で、検出された hex-graph プロバイダーと SCIP エクスポーターが報告されている(フェーズ 2b)
- 最初の
hex-line起動後にフックが自動同期されている(PreToolUse、PostToolUse、SessionStart、ConfigChange、PermissionDenied)。また、disableAllHooks: falseになっている(フェーズ 3)。MCP 設定に関する補足:大きなツール結果には_meta["anthropic/maxResultSizeChars"]を最大 500K に設定可能(Claude Code 2.1.91);-pモードではMCP_CONNECTION_NONBLOCKING環境変数を使用(2.1.89);disableSkillShellExecution設定はスキルのシェル実行を防止する(2.1.91) - 出力スタイルがインストールされている(フェーズ 3)
- 設定済みのすべてのサーバーに権限が付与されている(フェーズ 6)
- インストール済みの Cursor/VSCode について IDE 拡張機能の権限モードが検出され、プロジェクトの
defaultModeを上書きする場合は WARN とともに報告されている(フェーズ 6b)。書き込みはapply_ide_override=trueとユーザーの同意がある場合のみ。 - プロジェクトの allowed-tools が移行されている(フェーズ 5)
- バージョン列を含むステータステーブルが表示されている(フェーズ 7)。IDE 拡張機能の権限モードの行も含む
- 構造化された概要が返されている
- 概要アーティファクトが管理対象またはスタンドアロンのランタイムパスに書き込まれている
バージョン: 1.7.0 最終更新日: 2026-04-07