mcpField
L
ln-012-mcp-configurator

ln-012-mcp-configurator

github.com/levnikolaevichエージェントワークフロー584162 回インストール2 日前に更新
リポジトリ

ln-012-mcp-configurator について

エージェントを問わず使えるスキルで、Claude CodeのMCP設定、サーバー登録、フック、出力スタイル、権限、IDE拡張機能の権限モードを構成します。サーバー状態とキャッシュ済みバージョンを確認し、変更を構造化されたサマリーで報告します。

主な機能

  1. 01MCPサーバーの状態とバージョンを確認
  2. 02指定サーバーの登録・更新
  3. 03フックと出力スタイルの同期
  4. 04権限とIDEモードの設定
  5. 05構造化された実行サマリーを作成

活用シーン

  1. 01Claude CodeのMCPサーバーを登録・更新
  2. 02サーバー接続とパッケージ差分の確認
  3. 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.md
audit_summary_contract.md
audit_worker_core_contract.md
coordinator_summary_contract.md
environment_worker_runtime_contract.md
hex_graph_provider_matrix.md
stack_detection.md
worker_runtime_contract.md
references/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

フェーズプロファイル:

  1. PHASE_0_CONFIG
  2. PHASE_1_CHECK_STATUS_AND_VERSION
  3. PHASE_2_REGISTER_AND_CONFIGURE
  4. PHASE_3_VERIFY_GRAPH_PROVIDER_DEPS
  5. PHASE_4_HOOKS_AND_OUTPUT_STYLE
  6. PHASE_5_GRAPH_INDEXING
  7. PHASE_6_MIGRATE_ALLOWED_TOOLS
  8. PHASE_7_PERMISSION_SURFACES
  9. PHASE_8_WRITE_SUMMARY
  10. PHASE_9_SELF_CHECK

ランタイムのルール:

  • summary_kind=env-mcp-config を出力します
  • 単独実行では独自の run_id を生成し、ワーカーファミリーのデフォルトの成果物パスに書き込みます
  • 管理対象の実行では runId と summaryArtifactPath の両方が必須であり、指定された正確なパスにサマリーを書き込む必要があります
  • 終了結果を出す前に、必ず検証済みのサマリー成果物を書き込みます

出力コントラクト

次に従い、構造化された env-mcp-config サマリーエンベロープを必ず作成してください。

  • references/coordinator_summary_contract.md
  • references/environment_worker_runtime_contract.md

ペイロードのフィールド:

  • servers
  • permissions
  • ide_extension
  • hooks_synced
  • output_style_synced
  • allowed_tools_migrated
  • graph_provider_status
  • status

サーバーレジストリ

トランスポートの種類は stdio(ローカルプロセス)と HTTP(クラウドエンドポイント)の2つです。

サーバートランスポートインストール必須API キー
hex-linestdionpx -y @levnikolaevich/hex-line-mcpはいいいえ
hex-sshstdionpx -y @levnikolaevich/hex-ssh-mcpいいえいいえ
hex-graphstdionpx -y @levnikolaevich/hex-graph-mcpいいえいいえ
hex-researchstdionpx -y @levnikolaevich/hex-research-mcpいいえいいえ
context7HTTPhttps://mcp.context7.com/mcpはい任意
RefHTTPhttps://api.ref.tools/mcpはいはい(ユーザーに確認)
linearHTTPhttps://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 の最新バージョンと実行中のローカルバージョンを比較します。

  1. 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. フェーズ 1 の状態を再利用する — ステップ 1a のサーバーマップには、登録状況と接続状況がすでに含まれています
    • フォールバック(単独で実行する場合のみ):~/.claude.json と ~/.claude/settings.json を読み取ります
  2. 未対応のサーバーを削除します。
未対応のサーバー対応
hashline-edit見つかった場合は削除
pencil見つかった場合は削除
lighthouse見つかった場合は削除
playwright見つかった場合は削除
browsermcp見つかった場合は削除
  1. 未登録のサーバーを登録するか、古いサーバーを更新します。
    • すでに設定済みで、接続済み、かつキャッシュされたローカルバージョンが一致する場合 -> スキップ
    • 接続済みでも古い場合 -> 削除して再追加(npx で最新バージョンを取得します)
    • dry_run: true の場合 -> 実行予定のコマンドを表示
    • linear の場合 -> ユーザーに「Linear を使っていますか?」と尋ねます -> いいえの場合はスキップ

登録コマンド(OS に応じたプレフィックス):

OSプレフィックス理由
Windows(bash/MSYS2)MSYS_NO_PATHCONV=1 claude mcp add ... -- cmd /c npxMSYS2/Git Bash は引数内の /c を C:/ に変換します。MSYS_NO_PATHCONV=1 でこれを防ぎます
Windows(PowerShell/cmd)cmd /c npxネイティブシェルではパス変換の問題はありません
macOS / Linuxnpx直接実行
サーバーコマンド(Windows bash — 必ず MSYS_NO_PATHCONV=1 をプレフィックスとして付けます)
hex-lineMSYS_NO_PATHCONV=1 claude mcp add -s user hex-line -- cmd /c npx -y @levnikolaevich/hex-line-mcp
hex-sshMSYS_NO_PATHCONV=1 claude mcp add -s user hex-ssh -- cmd /c npx -y @levnikolaevich/hex-ssh-mcp
hex-graphMSYS_NO_PATHCONV=1 claude mcp add -s user hex-graph -- cmd /c npx -y @levnikolaevich/hex-graph-mcp
hex-researchMSYS_NO_PATHCONV=1 claude mcp add -s user hex-research -- cmd /c npx -y @levnikolaevich/hex-research-mcp
context7claude mcp add -s user --transport http context7 https://mcp.context7.com/mcp
Refclaude mcp add -s user --transport http Ref https://api.ref.tools/mcp
linearclaude mcp add -s user --transport http linear-server https://mcp.linear.app/mcp
  1. 検証: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 の依存関係を検証する

依存関係確認方法必須自動修正フォールバック
ripgreprg --versionはいインストール表を参照grep_search が失敗します
gitgit --versionいいえ情報提供のみchanges ツールが無効になります

プラットフォーム別の ripgrep のインストール:

PlatformCommand
Linux (apt)sudo apt-get install -y ripgrep
Linux (yum)sudo yum install -y ripgrep
macOSbrew 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_line
  • git config --get core.autocrlf
  • git config --get core.eol
  • git config --get core.safecrlf

通常の編集でリポジトリのポリシーとユーザーの作業ツリーポリシーが競合し、行末が頻繁に変更される可能性が高い場合は WARN を報告してください。これはあくまで注意喚起です。ln-012 ではリポジトリのポリシーファイルを自動編集しないでください。

Step 3: hex-graph 用の現在のプロジェクト言語を検出

現在のプロジェクトルートのみを対象に検出してください。

  1. docs/project/tech_stack.md がある場合はその内容
  2. プロジェクトルートにあるマーカーファイル
  3. フォールバックとしてソースファイルの拡張子をスキャン

フレームワークのマーカーは、言語を確認するためにのみ使用してください。

Framework hintLanguage
FastAPI, Django, FlaskPython
ASP.NET CoreC#
LaravelPHP
React, Next.js, Express, NestJSJavaScript / 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 エクスポートをすでに利用できます
Pythonbasedpyrightbasedpyright-langserver --versionいいえpip install basedpyrightPython の精密解析をスキップ
Pythonscip-pythonscip-python index --helpいいえWindows: npm install -g github:levnikolaevich/scip-python#fix/windows-path-sep-regex、macOS/Linux: npm install -g @sourcegraph/scip-pythonPython の export_scip をスキップ
C#csharp-lscsharp-ls --versionいいえdotnet tool install -g csharp-lsC# の精密解析をスキップ
C#scip-dotnetscip-dotnet --helpいいえdotnet tool install -g scip-dotnetC# の export_scip をスキップ
PHPphpactorphpactor --versionいいえプロジェクト固有の PHP インストール手順PHP の精密解析をスキップ
PHPscip-phpscip-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-sourcePHP の 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 のすべての登録が完了した後:

  1. サーバーを起動するために、無害な hex-line 呼び出しを 1 回トリガーします。たとえば mcp__hex-line__inspect_path({ path: "{project_path}" })
  2. 以下の起動時同期の結果を確認します

フック(~/.claude/settings.json 内):

  1. PreToolUse フック — 組み込みの Read/Edit/Write/Grep/Glob を hex-line の同等のものにリダイレクトします(Glob -> inspect_path(pattern=...))
  2. PostToolUse フック — 冗長なツール出力を圧縮します(RTK フィルター)
  3. SessionStart フック — MCP ツール設定のリマインダーを注入します
  4. 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 の登録後、接続済みになったら:

  1. mcp__hex-graph__index_project({ path: "{project_path}" }) — 初期コードナレッジグラフを構築します
  2. その後、グラフを使った読み取りや編集の結果が古く見える場合は、mcp__hex-graph__index_project({ path: "{project_path}" }) を再実行します — インデックス作成処理は冪等で、変更されたファイルのみを更新します

hex-graph が登録されていないか、接続されていない場合はスキップします。

フェーズ 5:allowed-tools の移行[重要]

プロジェクトのコマンド/スキルを確認し、allowed-tools のフロントマターで組み込みツールを hex-line の同等ツールに置き換えます。

ツールの対応関係:

組み込みツールHex の同等ツール
Readmcp__hex-line__read_file
Editmcp__hex-line__edit_file
Writemcp__hex-line__write_file
Grepmcp__hex-line__grep_search
Globmcp__hex-line__inspect_path

手順:

  1. 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 を検索します
  2. 各ファイルについて、YAML フロントマターを解析し、allowed-tools を抽出します
  3. 各対応項目について: a. 組み込みツールが存在し、Hex の同等ツールが存在しない場合は、Hex の同等ツールを追加し、組み込みツールを削除します(Read と Bash を除く) b. 組み込みツールと Hex の同等ツールの両方が存在する場合は、組み込みツールを削除します(Read と Bash を除く) c. 置換表にない既存の mcp__* ツールはすべて保持します
  4. 更新したフロントマターを書き戻します(引用符のスタイルを保持します)

スキップ条件:

条件操作
.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[] に含まれていることを確認します。

組み込みツール(存在することを確認):

ツール権限エントリ
BashBash
ReadRead
WriteWrite
EditEdit
GrepGrep
WebSearchWebSearch
WebFetchWebFetch

MCP サーバー(設定されているものごと):

サーバー権限エントリ
hex-linemcp__hex-line
hex-sshmcp__hex-ssh
hex-graphmcp__hex-graph
hex-researchmcp__hex-research
context7mcp__context7
Refmcp__Ref
linearmcp__linear-server
  1. ~/.claude/settings.json を読み込みます(存在しない場合は {"permissions":{"allow":[]}} を作成します)
  2. 既存エントリを統合します: 各汎用ツール(Bash、Read、Write、Edit、Grep、WebSearch、WebFetch および各 mcp__{name})について:
    • 特定のバリエーション(例:Bash(gh repo:*)、Bash(node ...)、WebFetch(domain:docs.github.com))がある場合は、それらを削除します。汎用エントリで、すべてが許可されるためです
    • パターン:entry.startsWith("Tool(") → 汎用の Tool を追加する場合は削除します
  3. まだ存在しない汎用エントリを追加します
  4. 書き戻します(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 つだけユーザーに提示しなければなりません。

変更を適用する場合:

  1. 最初にバックアップする: 書き込み前に settings.json を settings.json.bak.{timestamp} にコピーします
  2. 読み取り → ディープマージ → 書き込み: その他すべての claudeCode.* キー(preferredLocation、useTerminal、respectGitIgnore など)と、claudeCode.* 以外のキーをすべて保持します
  3. 目的のモードに応じて、次の2つのキーのみを書き込みます:
    • bypassPermissions の場合:claudeCode.allowDangerouslySkipPermissions: true と claudeCode.initialPermissionMode: "bypassPermissions" を設定します
    • acceptEdits の場合:claudeCode.initialPermissionMode: "acceptEdits" を設定します(ゲートは不要です)
    • default の場合:両方のキーを削除します(または false / "default" に設定します)
  4. 完全な再起動を指示する: 「IDE の再起動が必要です(完全に終了して再度開いてください。ウィンドウの再読み込みではありません)。拡張機能は有効化時にのみ設定を読み込みます」と表示します
  5. 概要に記録する: 変更前/変更後の値、バックアップパス、明示的なユーザー同意のタイムスタンプを含めます

スキップ条件:

条件アクション
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                               |


重要なルール

  1. 許可された方法でのみ書き込みます。 サーバーは claude mcp add で登録してください。~/.claude/settings.json に書き込めるのは、権限(permissions.allow[])を設定するとき、または自動同期が失敗した後に、明示的なフック/スタイルの検証で修正が必要なときに限ります
  2. 追加後に検証します。 登録後は必ず claude mcp list を実行して、接続を確認してください
  3. 任意のサーバーを追加する前に確認します。 Linear の追加には、ユーザーの明示的な同意が必要です
  4. すべての hex MCP で npx -y を使用します。 npm i -g は使用しないでください。npx を使うとプロセスが分離され、Windows での EBUSY を回避できます。Windows では、パッケージを cmd /c npx でラップしてください(Phase 2 の OS プレフィックス表を参照)
  5. サポート対象外のサーバーを削除します。 レジストリにないサーバーをクリーンアップしてください
  6. 権限を付与します。 登録後、ユーザー設定に mcp__{server} を追加してください
  7. claude mcp list の実行回数を最小限にします。 Phase 1 では検出のために一度だけ実行します。Phase 2 ではそのデータを再利用します。再実行するのは Phase 2 Step 4(変更後の検証)のみです。合計最大 2 回
  8. npm のバージョン差分を必ず確認します。 接続済みでも最新とは限りません。スキップする前に、npm の最新バージョンと、ローカルにキャッシュされた npx パッケージの最新バージョンを比較してください
  9. MSYS2 でのパス安全性を確保します。 Git Bash/MSYS2 を使用する Windows では、claude mcp add の前に必ず MSYS_NO_PATHCONV=1 を付けてください。登録後、.claude.json の args[0] が "C:/" ではなく "/c" であることを確認してください。破損している場合は、その場で修正してください
  10. インストール後にグラフ固有の依存関係を確認します。 Phase 2 での登録後、hex-line のシステムバイナリ、グラフ固有の任意プロバイダー、検出されたプロジェクト言語向けの任意 SCIP エクスポーターを確認してください。自動インストールはユーザーの同意がある場合に限ります。ここではプロジェクトのランタイムやフレームワークのパッケージをインストールしないでください
  11. EOL による変更リスクを報告し、隠さないでください。 .gitattributes、.editorconfig、または Git の設定から、作業ツリーの改行コードが書き換えられる可能性が示唆される場合、この場でリポジトリのポリシーを黙って変更するのではなく、明示的に警告してください
  12. 設定ファイルには非破壊的に書き込みます。 必ず読み取り → マージ → 編集の順で行ってください。設定ファイルを一から上書きしてはいけません。このスキルが管理しないすべてのキー/セクションを保持してください
  13. 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

コメント