--strict-mcp-config(ストリクト・エムシーピー・コンフィグ)

起動オプション
--strict-mcp-config
ストリクト・エムシーピー・コンフィグ
Claude Codeを起動するときコマンドの後ろに足すスイッチ。これを付けると、普段登録してあるMCPサーバー(~/.claude.json、.mcp.json、プラグイン経由など全部)を一時的に無視して、--mcp-config で渡したファイルに書いてあるMCPサーバーだけが使える状態でセッションを開始する。

Claude CodeでMCPサーバーを使うが、普段の個人MCP設定を一切混ぜずに、セッション専用のMCPだけで起動したい人

社内専用MCPだけで動作検証したい、クライアント案件で指定された設定だけ使いたい、自作MCPの開発中に普段のMCPがノイズになる、といった「普段のMCP全部を切ってセッション専用の構成で起動したい」場面で、--mcp-config ./mcp.json とセットで叩いて使う。

Claude Codeには、外部ツールや社内データベースに接続するためのMCPサーバー設定があります。ところが普段使いの個人MCPと社内専用MCPを混ぜたくない場面が必ず出てきます。

このときに使うのが --strict-mcp-config。普段登録してあるMCPサーバーを**全部いったん切って**、その場で指定した設定だけで起動する強制スイッチです。

噛み砕くと

新しい職場の初日、いつも持ち歩いてる私物のノートや道具を全部ロッカーに置いて、職場が用意した道具だけで仕事をする状態を作る。これに近いです。

普段は ~/.claude.json.mcp.json、プラグインに登録されたMCPが全部読み込まれます。--strict-mcp-config を付けて起動すると、それらを全部「無視」にして、その場で --mcp-config ./mcp.json で渡したファイルに書いてあるMCPだけが使える状態になります。

大事な前提:このスイッチは単独では何もしない

--strict-mcp-config は「ほかのMCP設定を全部無視する」だけのスイッチ。**何を読み込むか**は別途 --mcp-config <ファイルの場所> で渡す必要があります。

つまり常に2つセットで叩く。claude --strict-mcp-config --mcp-config ./mcp.json の形が基本形です。

「社内ツールMCPだけで起動して、個人MCPを一切混ぜずに検証する」を例に、実際の手順を見る

普段の私の環境には、個人開発で使ってる天気MCP・GitHub連携MCP・Slack連携MCPが ~/.claude.json に登録されている、という想定。今日は社内専用の文書検索MCPだけを起動して、ほかが一切混ざらないことを確認したい。社内MCPの名前は company-docs とします。

ステップ1: まず普段の状態を確認する

何のMCPが今登録されているかを claude mcp list で見ます。

$ claude mcp list
weather      ✓ Connected
github       ✓ Connected
slack        ✓ Connected

3つ繋がってます。これが「普段の状態」。

ステップ2: セッション専用のmcp.jsonを書く

作業フォルダの中に mcp.json という名前のファイルを作って、社内文書検索MCPだけを書きます。

{
  "mcpServers": {
    "company-docs": {
      "command": "node",
      "args": ["/opt/company-tools/docs-mcp/index.js"]
    }
  }
}

JSONなので、波カッコの対応・カンマの位置・ダブルクォートを忘れずに。

ステップ3: 普通に --mcp-config だけで起動するとどうなるか試す

まず --strict-mcp-config を付けずに、--mcp-config だけ付けて起動。

$ claude --mcp-config ./mcp.json

セッションが立ち上がったら /mcp を叩いて中身を見ます。

company-docs ✓ Connected
weather      ✓ Connected
github       ✓ Connected
slack        ✓ Connected

4つ繋がってます。--mcp-config だけだと「足し算」になる。普段の3つは生きたまま、社内MCPが**追加で**読み込まれた状態です。

ステップ4: --strict-mcp-config を付けて起動し直す

いったん抜けて、今度はスイッチを付け直す。

$ claude --strict-mcp-config --mcp-config ./mcp.json

/mcp でもう一度確認。

company-docs ✓ Connected

1つだけ。狙い通りの状態ができました。普段の天気・GitHub・SlackのMCPは一切繋がっていません。

ステップ5: 確認のため、いつもの個人MCPを呼ぼうとしてみる

セッション内で「今日の東京の天気を教えて」と聞いてみる。普段なら天気MCPが返してくるはず。

結果、Claudeは「使えるMCPツールに天気を取得できるものがありません」と返してきます。本当に切れている、ということ。ここで初心者がやりがちな勘違いがあって、「設定ファイルに書いてないだけで、裏で動いてるんじゃ」と思う人がいますが、プロセス自体が起動されていない状態です。

ステップ6: 抜けると元通り

セッションを exit で抜けて、普通に claude だけで起動し直すと、元通り3つの個人MCPが復活します。--strict-mcp-config は**そのセッション限定**で、設定ファイル自体を書き換えるわけではない。これが大事。

つまり --strict-mcp-config は何をしてくれるのか

  • やってくれる: そのセッションだけ、普段登録してあるMCPサーバーを全部無視して、--mcp-config で渡したファイルのMCPだけが使える状態を作る
  • やってくれない: 設定ファイル自体の書き換え、特定のMCPだけピンポイントで無効化、プラグイン経由のMCPだけ残す、といった選択的な操作
  • 意味が薄い場面: 普段から1つもMCPを登録していない、または普段のMCPと検証したいMCPが完全に同じ、というケース

使いどころ3シナリオ

シナリオ1: 社内専用MCPの動作検証で、個人MCPを一切混ぜたくないとき

会社で内製した文書検索MCPの挙動を確認する。個人MCPが繋がっていると、Claudeが「文書検索じゃなくてGitHub MCPで類似コードを探そう」みたいに勝手に別経路で答えてしまって、検証にならないことがあります。--strict-mcp-config で社内MCPだけにすれば、回答が社内MCP経由になるしかなくなるので、純粋な動作チェックができます。

シナリオ2: クライアント案件で「指定されたMCPだけ」で作業する必要があるとき

受託先から「弊社が用意したMCP設定だけで作業してください、他のMCPは使わないでください」と指定が来るケース。普段の個人MCPを claude mcp remove で1個ずつ消して、案件が終わったらまた登録し直す、というのは手間と事故のもとです。クライアントから渡された client-mcp.json--strict-mcp-config --mcp-config ./client-mcp.json で読み込めば、その場限りの隔離環境ができます。

シナリオ3: MCPサーバー自作の開発中、他のMCPがノイズになるとき

自分で新しいMCPサーバーを書いてる最中、ツール一覧に普段の10個も20個も並んでいると、Claudeが新しいMCPを呼んでくれずに既存のツールで処理してしまう。これだと自作MCPが本当に動いているのか分からない。--strict-mcp-config で自作MCPだけに絞れば、Claudeは選択肢がそれしかない状態になるので、確実に呼ばれます。

初心者が踏みやすい落とし穴

  • 単独で叩いてもMCPが空になるだけclaude --strict-mcp-config だけで起動すると、普段のMCPは消えて、新しいMCPも読み込まれず、何もない状態になります。必ず --mcp-config <ファイルの場所> とセットで叩く。
  • 「追加」と「置き換え」を混同する--mcp-config だけだと「普段のMCP+ファイルのMCP」の足し算。--strict-mcp-config を足して初めて「ファイルのMCPだけ」の置き換えになります。/mcp コマンドで実際の状態を見て確認するクセをつけるといい。
  • プラグイン経由のMCPも切れる。Claude Codeのプラグインを入れていて、そのプラグインがMCPサーバーをバンドルしているケースがあります。--strict-mcp-config はこれも無視対象に入れます。プラグイン頼みのワークフローを動かそうとして「あれ、動かない」となる事故が起きやすいので注意。
  • 設定ファイル自体は無傷。「全部消える」と聞くと ~/.claude.json が書き換わると勘違いする人がいますが、設定ファイルは触りません。セッションを抜ければ普段通りに戻ります。
  • セッション内で claude mcp add を叩いても効かない場面がある。strict モードで起動した状態で新しいMCPを追加しようとすると、設定ファイルには書き込まれるけどそのセッションでは使えない、というズレが出ます。新しいMCPを試したいなら一度抜けて再起動する。
  • JSONの書式ミスで即落ちるmcp.json のカンマ抜け・ダブルクォート不足があると、起動時に「設定が読めない」エラーで落ちます。jq . ./mcp.json や VS Code のJSON Lintで事前に確認すると安全。

書き方

claude --strict-mcp-config --mcp-config <mcp.jsonのファイルの場所>

やってみるとこうなる

入力

claude --strict-mcp-config --mcp-config ./mcp.json

出力例

普段登録されている個人MCP(天気・GitHub連携・Slack連携など)が全部無視され、./mcp.json に書かれたMCPサーバー(例: company-docs)だけが繋がった状態でClaude Codeが起動する。セッション内で /mcp を叩くと、./mcp.json に書いたMCPだけが表示される。セッションを抜けて普通に claude で起動し直すと、元通り全部の個人MCPが復活する。

このページに出てきた言葉

MCP
Model Context Protocolの略。Claude Codeが外部ツールと話すための共通の決まりごと
MCPサーバー
MCPの規格に沿って動く、外部ツールとの窓口になるプログラム。Claude Codeに登録するとその外部ツールを操作できるようになる
mcp.json
MCPサーバーをどう起動するかを書いた設定ファイル。中身は <code>{"mcpServers": {...}}</code> 形式
~/.claude.json
ホームフォルダにあるClaude Codeの全体設定ファイル。普段のMCPサーバー登録情報がここに書かれている
.mcp.json
プロジェクトの一番上に置く、チーム全員で共有するMCP設定ファイル
セッション
Claude Codeを起動してから抜けるまでの1回の利用単位
プロセス
裏で動いてるプログラムの実体。MCPサーバーごとに1個ずつ動いている

関連項目

公式ドキュメント

https://code.claude.com/docs/en/cli-reference

-

← 戻る