disableClaudeAiConnectorsでClaude Codeのコネクタを一括無効化
claude.aiコネクタを丸ごと止める設定キーの書き方と、環境変数ENABLE_CLAUDEAI_MCP_SERVERSとの優先関係、個別に止めたいときのdeniedMcpServersとの使い分けをまとめました。
disableClaudeAiConnectorsはClaude Codeの設定キーで、claude.aiアカウントに登録したMCPコネクタをClaude Code自身が自動取得しないようにします。trueにすると、Claude Codeが自分で取得するコネクタは、以降どれも取得も接続もされません。個別に1本ずつ止めるのではなく、丸ごと止めたいときに使う設定です。
環境変数ENABLE_CLAUDEAI_MCP_SERVERS=falseでも同じ取得を止められますが、効くのはそのシェルセッションだけです。特定の1本だけを止めるならdeniedMcpServersか/mcpのトグルを使います。
disableClaudeAiConnectorsでできること
disableClaudeAiConnectorsは真偽値の設定キーです。書き込めるのは次のファイルです。~/.claude/settings.json(ユーザー)・.claude/settings.json(プロジェクト)・.claude/settings.local.json(ローカル)・組織のmanaged設定です。どのファイルに書いても有効になるAny fileスコープに属します。trueにすると、Claude Codeが自分で取得しているclaude.aiコネクタを一切フェッチ・接続しなくなります。既定値はfalseで、これは未設定と同じ意味しか持ちません。
止まるのはあくまで「Claude Codeがログイン中のclaude.aiアカウントから自動的に取得しているコネクタ」だけです。--mcp-configフラグで明示的に渡したMCPサーバーはこの設定の対象外で、そのまま読み込まれます。
settings.jsonへの書き方とスコープの優先関係
書き方はシンプルです。
{
"disableClaudeAiConnectors": true
}このキーには、複数の設定ファイルにまたがるときの優先順位が1つだけあります。trueはどのファイルに書かれていても勝ちます。逆にfalseは「このファイルでは何も指定していない」という意味しか持たず、他のファイルに書かれたtrueを打ち消せません。
組織がmanaged設定でdisableClaudeAiConnectors: trueを配布すると、リポジトリ側の.claude/settings.jsonにfalseを書いてもコネクタは有効に戻りません。逆に、組織もユーザーも何も設定していなければ、あるプロジェクトの.claude/settings.jsonにだけtrueを書いて、そのリポジトリだけをコネクタの自動取得から外せます。公式ドキュメントはこの挙動を「any-source-true semantics(どこか1箇所でもtrueなら勝つ)」と呼んでいます。
managed設定で配るなら、Claude Code側の修正履歴も頭に入れておくと安全です。v2.1.273では、server-managed設定が併存すると、MDMやmanaged-settings.jsonのdisableClaudeAiConnectorsなどが無視される不具合が直りました。v2.1.282では、真偽値のロック系キーに型の違う値を書くと無視されていた問題が直り、ロックが効いたうえで起動時にキー名が表示されるようになりました。どちらもこれより古いバージョンでは起きうるので、古いクライアントでは、配布しても止まらないことがあります。
--mcp-configで渡すサーバーの読み込み挙動そのものは、この設定と別の話です。詳しい優先順位はClaude Codeの--mcp-configと--strict-mcp-configの使い分けにまとめています。
ENABLE_CLAUDEAI_MCP_SERVERSとの優先関係 — オフはオフに勝つ
ENABLE_CLAUDEAI_MCP_SERVERSは同じclaude.aiコネクタの取得を止める環境変数です。ログイン済みユーザーでは既定で有効で、falseにするとそのシェルセッション限りコネクタの取得を止められます。この環境変数はv2.1.63(2026年2月)で入りました。プロジェクトや組織単位で恒常的に止めたい場合、公式ドキュメントはdisableClaudeAiConnectorsの使用を勧めています。
ENABLE_CLAUDEAI_MCP_SERVERS=false claude2つを併用したときに覚えることは1つだけです。どちらか一方がコネクタを止めていれば、もう一方がどう設定されていてもコネクタは止まったままになります。
disableClaudeAiConnectors(設定ファイル) | ENABLE_CLAUDEAI_MCP_SERVERS(環境変数) | 結果 |
|---|---|---|
true | ENABLE_CLAUDEAI_MCP_SERVERS(環境変数)未設定またはtrue | 結果オフ(環境変数では戻せない) |
true | ENABLE_CLAUDEAI_MCP_SERVERS(環境変数)false | 結果オフ(両方が一致) |
falseまたは未設定 | ENABLE_CLAUDEAI_MCP_SERVERS(環境変数)false | 結果そのセッションだけオフ |
falseまたは未設定 | ENABLE_CLAUDEAI_MCP_SERVERS(環境変数)未設定またはtrue | 結果通常どおりコネクタを取得 |
一方、設定ファイルには一切手を入れず、必要なセッションだけENABLE_CLAUDEAI_MCP_SERVERS=falseで一時的に止めることは可能です。CI実行やデバッグ用の1回限りの起動に向いています。
この設定が効くのはどのセッションか — 面ごとの適用範囲
コネクタがセッションに届く経路は3つあります。そのうち制御できるのは1つだけです。disableClaudeAiConnectors・ENABLE_CLAUDEAI_MCP_SERVERS・managed MCP側のallowAllClaudeAiMcpsが効くのは、Claude Codeが自分で取得する経路に限られます。
コネクタがセッションに届く3つの経路
ターミナル・VS Code・JetBrains・Agent SDK
Claude Codeが自分でclaude.aiから取得します。
クラウドセッション
リモートホスト側が渡してきます。claude.ai組織設定と、セッションに届く
allowedMcpServers/deniedMcpServersが制御します。serverUrlのパターンはコネクタ本来のURLに一致しません。セッションのプロキシがURLを書き換えるためです。デスクトップアプリのローカル/SSHセッション
アプリがプロセス内で組み込みます。MCP設定も
managed-mcp.jsonも届かず、ユーザーはclaude.aiのコネクタ画面で切断し、組織はツールをblockedにするか、デスクトップアプリ内のClaude Codeを無効にします。
クラウドセッションでは、実行ホストにmanaged-mcp.jsonが置かれていると、allowAllClaudeAiMcpsの設定に関係なく、渡されたコネクタがそこで落とされます。セルフホストのランナーで「コネクタが入ってこない」ときは、ここが原因になりえます。
コネクタを丸ごと止めるのとは別に、Claude Codeが自分でコネクタを取得するセッションでは、組織が個々のツールをaskかblockedにできます。askのツールは、acceptEdits・auto・bypassPermissionsのどのパーミッションモードでも呼び出しのたびに承認を求め、許可ルールでも飛ばせません。dontAskモードでは、プロンプトの代わりに呼び出しが拒否されます。blockedのツールはClaudeに見える前に除外され、/mcpのツール一覧にはdisabled by your organizationと表示されたまま残ります。
コネクタが出てこないとき — 設定の前に認証方法を疑う
disableClaudeAiConnectorsを設定していないのにコネクタが1つも出てこない場合、原因は認証方法のことがあります。claude.aiコネクタが取得されるのは、有効な認証方法がclaude.aiのサブスクリプションログインのときだけで、/login済みでも次のいずれかが有効なら読み込まれません。
ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKEN・apiKeyHelper- Amazon BedrockなどサードパーティのProvider
ANTHROPIC_PROFILEや連携用の環境変数によるAnthropicプロファイルclaude setup-tokenで発行したCLAUDE_CODE_OAUTH_TOKEN
コネクタが表示されないときの切り分け
- 1
/statusで認証方法を見る
上の4つのどれかが有効なら、それが原因です。該当する環境変数やプロファイルを外し、
/loginでclaude.aiアカウントを選び直します。 - 2
認証方法が合っているなら取得失敗を疑う
セッション開始時の一時的なネットワーク不調で取得に失敗すると、Claude Codeはバックグラウンドで最大3回まで再試行します。しばらく待てば表示されることがあります。
- 3
それでも出なければ再起動する
Claude Codeを再起動すると、コネクタ一覧の取得からやり直されます。
/mcpでsession token rejectedと出るコネクタは、claude.aiがClaude Codeのログインのトークンを拒否した状態です。コネクタを認可し直しても直らず、/loginで入り直してから/mcpでコネクタを再接続します。v2.1.222より前は、同じ状態が「認証が必要」と表示されていました。
一度もサインインしていないコネクタは、/mcpのclaude.aiの欄の末尾でShow unused connectorsの行にまとめて畳まれます。組織が配ったコネクタが多くても、パネルが埋まらないための挙動です。コネクタが「消えた」ように見えたら、この行を開いてみてください。
組織がclaude.ai側でコネクタの認証を管理している場合、/mcpではそのコネクタにmanagedの印が付きます。
個別のコネクタだけ止めたいとき
disableClaudeAiConnectorsは、すべてのclaude.aiコネクタを一括で止めます。1つか2つだけ止めて残りは使い続けたい場合、選択肢はdeniedMcpServersと/mcpのトグルの2つで、効き方の単位が違います。
deniedMcpServersと/mcpトグル
deniedMcpServers
serverName・serverCommand・serverUrlのいずれか1つを持つオブジェクトの配列で、名前・コマンド・URLのどれかが一致したサーバーを止めます。コネクタに限らず、プラグインや--mcp-config、managed-mcp.json由来のサーバーも対象です。チェックインしてチームで共有できます。
/mcpトグル
セッション内で/mcpを開き、対象のコネクタをオフにします。選択は~/.claude.jsonのdisabledMcpServersにプロジェクト単位で記録され、チームメイトには共有されません。そのプロジェクトを開いたときだけ効きます。
deniedMcpServersでコネクタを止める書き方は次のとおりです。claude.aiコネクタは表示名で指定します。
{
"deniedMcpServers": [
{ "serverName": "claude.ai Slack" }
]
}注意点は名前の扱いです。claude.aiコネクタのserverNameは、claude.aiが返す表示名で、後から変わることがあります。serverNameは名前の照合にすぎず、セキュリティ上の統制としては扱えないというのが公式の整理です。リネームされても止まり続けるようにしたいときや、同名のコネクタに(N)の接尾辞が付くときは、serverUrlのパターン一致を使います。
個別停止の実例として、Claude Docsが使えるアカウントでは、/mcpにclaude.ai Claude Docsが設定なしで並びます。止めるにはdeniedMcpServersに{ "serverName": "claude.ai Claude Docs" }を足すか、/mcpのトグルを使います。
拒否リストはどの設定スコープのものも1つに合流し、一致すれば他の何にも上書きされません。許可リストで通していても、allowManagedMcpServersOnlyで許可リストをmanaged側に絞っていても、拒否リストは各スコープから合流します。ユーザーが自分の設定ファイルに書いて、自分用にサーバーを止めることもできるということです。
名前が紛らわしいキーが3つあります。
| キー | 置き場所 | 役割 |
|---|---|---|
deniedMcpServers | 置き場所settings.json | 役割拒否リスト(この記事の主役) |
disabledMcpServers | 置き場所~/.claude.json(プロジェクト単位) | 役割/mcpトグルの記録先 |
disabledMcpjsonServers | 置き場所settings.json | 役割.mcp.jsonのサーバーの承認を拒否 |
綴りが1文字違うだけの別物です。disabledMcpjsonServersとdisabledMcpServersは、どちらもclaude mcpコマンドの画面に別の状態として出てきます。v2.1.287で、一時ディレクトリの.mcp.jsonにstdioサーバーdemoを1つ定義してclaude mcp get demoを実行した結果は次のとおりです。
# .mcp.json に demo を定義しただけの状態
claude mcp get demodemo:
Scope: Project config (shared via .mcp.json)
Status: ⏸ Pending approval (run `claude` to approve)
Type: stdio
Command: echo
Args: hiここで.claude/settings.local.jsonに{"disabledMcpjsonServers":["demo"]}を書きました。同じコマンドを実行すると、Statusの行が✘ Rejected (see disabledMcpjsonServers in settings)に変わりました。承認待ちか、拒否済みかが、どのキーの影響かまで読み取れます。/mcpトグルで止めたサーバーは別の表示で、claude mcp listとclaude mcp getに⊘ Disabled for this project (re-enable via /mcp)と出ます。
別の止め方として、同じURLを指すサーバーを自分でclaude mcp addしておく手もあります。手動で足したサーバーはclaude.aiコネクタより優先され、コネクタは/mcpで「hidden」と表示されて重複の消し方が案内されます。コネクタの代わりに自前の接続設定を使いたいときに、この挙動が働いています。
組織全体でMCPサーバーの利用範囲を設計したいなら、managed-mcp.jsonが向いています。詳しくはManaged MCPで許可リスト・拒否リストを組織管理するにあります。managed-mcp.jsonを配ると、claude.aiコネクタはその時点で既定では読み込まれなくなり、allowAllClaudeAiMcps: trueをmanaged設定に書いたときだけ並行して読み込まれます。このときも許可リスト・拒否リストは引き続き効くので、特定のコネクタだけをdeniedMcpServersで止められます。
手段ごとに、どの経路で効くか
止める手段と経路を掛け合わせると、効く範囲は次のとおりです。
| 手段 | ターミナル系 | クラウドセッション | デスクトップのローカル/SSH |
|---|---|---|---|
disableClaudeAiConnectors | ターミナル系効く | クラウドセッション効かない | デスクトップのローカル/SSH効かない |
ENABLE_CLAUDEAI_MCP_SERVERS | ターミナル系効く | クラウドセッション効かない | デスクトップのローカル/SSH効かない |
deniedMcpServers | ターミナル系効く | クラウドセッションセッションに届けば効く | デスクトップのローカル/SSH効かない |
managed-mcp.json | ターミナル系効く | クラウドセッション実行ホストにあれば渡されたコネクタを落とす | デスクトップのローカル/SSH効かない |
まとめ
設定キーで止めたはずのコネクタが見えるときは、キーの書き間違いより先に、そのセッションがどの経路でコネクタを受け取っているかが原因になりやすい構造です。
参照した一次ソース
この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。