Claude Media
allowAllClaudeAiMcpsでclaude.aiコネクタを排他制御と共存させる

allowAllClaudeAiMcpsでclaude.aiコネクタを排他制御と共存させる

managed-mcp.jsonの排他制御はclaude.aiコネクタも抑制します。allowAllClaudeAiMcpsで両立させる設定手順とセッション種別ごとの違いをまとめました。

allowAllClaudeAiMcpsは何を解決するか

managed-mcp.jsonを配置すると、Claude Codeはそのファイルが定義したサーバーだけをロードする排他制御に入ります。このとき抑制されるのはユーザーが自分で追加したサーバーだけではありません。管理者がclaude.ai管理コンソールで組織向けに設定したコネクタも含め、Claude Code自身が取得するclaude.aiコネクタが丸ごと止まります。

allowAllClaudeAiMcpsは、この抑制だけを解除する設定キーです。Claude Codeはtrueのとき、managed-mcp.jsonが無いときと同じコネクタをロードします。

くらべる

allowAllClaudeAiMcpsの値で変わること

排他制御のまま

false(既定)

managed-mcp.jsonとmanagedMcpServersのサーバーだけが使えます。claude.aiコネクタは取得されません。

コネクタと共存

true

上のサーバーに加えて、組織が管理コンソールで設定したものを含むclaude.aiコネクタが読み込まれます。

なぜ排他制御はコネクタまで止めるのか

managed-mcp.jsonは「これだけを配る」という固定配布の仕組みで、対象は~/.claude.jsonや.mcp.json経由でユーザーが追加するサーバーに限られません。Claude Code自身が起動時に取得するclaude.aiコネクタも、ユーザーが追加したサーバーと同じ扱いで抑制対象に含まれます。コネクタだけが例外になる、という扱いではありません。

このため、claude.aiで接続済みのSlackやGoogle Workspaceのコネクタも、managed-mcp.jsonを配った端末のClaude Codeからは消えます。Google Workspaceコネクタの使い方で設定した接続も同じ扱いです。許可リスト・拒否リストを含むManaged MCP全体の設計は、Managed MCPで許可リスト・拒否リストを組織管理するにあります。ここではmanaged-mcp.jsonとclaude.aiコネクタを共存させるallowAllClaudeAiMcpsだけを扱います。

設定手順 — 管理ソースのどこかに1行書く

設定はブール値で、3つの管理ソースのどれかに書けば反映されます。サーバー管理設定(claude.ai管理コンソール経由)、MDM配布のプロファイルやレジストリ、システムパスのmanaged-settings.jsonファイルです。

{
  "allowAllClaudeAiMcps": true
}

書く場所によって届く相手が変わります。サーバー管理設定はTeamsとEnterpriseのプランで使えます。TeamまたはEnterpriseのOAuthログインか、直接設定したAPIキーで認証しているユーザーに届きます。CLAUDE_CODE_OAUTH_TOKENと、v2.1.257以降のuser_oauthプロファイルでも取得されます。Claude Desktopアプリ内のCowork(協働作業用の)セッションでは、サーバー管理設定を取得しません。

ファイルで配るなら、managed-settings.jsonを次のシステムディレクトリに置きます。MDMのplistやレジストリで配る場合、読まれるのはHKLMのキーだけで、ユーザーが書き込めるHKCUは対象外です。

  • macOS: /Library/Application Support/ClaudeCode/
  • LinuxとWSL: /etc/claude-code/
  • Windows: C:\Program Files\ClaudeCode

設定後もallowedMcpServersとdeniedMcpServersは効く

allowAllClaudeAiMcpsを有効にしても、コネクタが無条件で通るわけではありません。allowedMcpServersとdeniedMcpServersはこのキーが読み込んだコネクタにも引き続き適用されます。特定のコネクタだけを止めたいなら、deniedMcpServersに表示名かURLパターンで登録します。

{
  "deniedMcpServers": [
    { "serverName": "claude.ai Slack" }
  ]
}

効果が及ぶ範囲も限定的です。このキーが対象にするのは、Claude Code自身が取得するclaude.aiコネクタだけです。プラグインが提供するMCPサーバーはmanaged-mcp.jsonの排他制御下では引き続き抑制されたままで、allowAllClaudeAiMcpsでは復活しません。

コネクタを許可リストに登録するときは、書き方に制約があります。allowedMcpServersのserverNameは英数字・ハイフン・アンダースコアに限られますが、claude.aiコネクタの表示名はclaude.ai Slackのように空白や記号を含みます。この形式はserverNameのパターンに一致しません。コネクタを許可リストに載せるならserverUrlを使います。拒否リストのserverNameは任意の文字列を受け付けるので、ブロックだけなら表示名でも登録できます。

ただしコネクタのserverNameは、claude.aiが返す表示名です。表示名は変わりうるため、確実に止めたいコネクタはserverUrlのエントリで拒否します。

有効化後もツール単位の制御は独立して効く

allowAllClaudeAiMcpsはコネクタの接続そのものを解禁する設定で、コネクタが持つ個々のツールの可否とは別レイヤーです。組織はコネクタのツールごとにblocked(呼び出し前に除外)とask(呼び出しのたびに承認を求める)を設定できます。Claude Codeはこの設定を起動時に読み込んで自分で判定します。

askのツールは呼び出しのたびに承認を求め、理由としてYour organization requires approval for this toolを表示します。acceptEdits・auto・bypassPermissionsの各権限モードでもスキップされず、一致するallowルールがあっても同じです。承認を求めないdontAskモードでは、確認なしで拒否されます。

blockedのツールはClaudeに渡る前に除外されます。Claude Codeが自分でコネクタを取得するセッションでは、/mcpのツール一覧に残り、disabled by your organizationと表示されます。

デスクトップアプリのローカル・SSHセッションだけは扱いが違います。blockedはアプリ側がコネクタを渡す前に取り除きますが、askはClaude Codeに伝わらず、そのセッションの通常の権限ルールに従って処理されます。allowAllClaudeAiMcpsを設定してコネクタが使えるようになったあとも、どのツールが実際に呼び出せるかはこの組織設定次第です。

セッションの種類でコネクタの届き方が変わる

allowAllClaudeAiMcpsが効くかどうかは、セッションがどこで動いているかに左右されます。claude.aiコネクタが届く経路自体がセッションの種類ごとに違うためです。

経路

セッションの種類ごとのコネクタの届き方

  • ターミナル・VS Code・JetBrains・Agent SDK

    Claude Code自身がclaude.aiから取得します。allowAllClaudeAiMcpsの対象はここだけです。

  • クラウドセッション

    クラウドのホストが渡します。ホストにmanaged-mcp.jsonがあると、設定に関わらず抑制されます。

  • デスクトップアプリのローカル・SSHセッション

    アプリがin-processのサーバーとして直接組み込みます。managed-mcp.jsonもこのキーも届きません。

disableClaudeAiConnectorsと環境変数ENABLE_CLAUDEAI_MCP_SERVERSも、効くのは1行目の経路だけです。

クラウドセッションのコネクタを絞れるのは、セッションに届くallowedMcpServers/deniedMcpServers(サーバー管理設定経由など)です。デスクトップアプリ側で絞る方法は3つです。ユーザーがclaude.aiのcustomize/connectorsで接続を外す、組織がツールをblockedにする、アプリ内のClaude Codeを無効にする。

クラウドセッションでserverUrlパターンを使うときも注意点があります。セッションのプロキシがコネクタのURLを書き換えるため、コネクタ自身のURLに合わせて書いたserverUrlは一致しなくなります。セルフホスト環境で配布済みのコネクタをURL許可リストと共存させたいときは、プロキシ経由後のURLに合わせた専用のエントリを追加する必要があります。

Claude in Chromeは別のキーで解禁する

managed-mcp.jsonの排他制御が止めるのは、claude.aiコネクタだけではありません。組み込みのClaude in Chromeサーバーも、ターミナルのセッションで既定では止まります。拡張機能のインストール案内は出ず、Chromeを既定で有効にしているセッションも警告なしでChromeなしで起動します。

claude --chromeやCLAUDE_CODE_ENABLE_CFC=1で起動すると、Claude Codeは次のエラーで終了します。

Claude in Chrome is blocked by your organization's managed MCP configuration (managed-mcp.json). An administrator can allow it with allowClaudeInChromeWithManagedMcp in device policy.

解禁するキーはallowClaudeInChromeWithManagedMcpで、allowAllClaudeAiMcpsとは別です。v2.1.282以降で有効で、端末自身の管理設定(MDMのplist・HKLMレジストリ・システムのmanaged-settings.json)だけから読まれます。サーバー管理設定に書いても無視されるので、コネクタ用のキーと同じ配布経路には載せられません。deniedMcpServersにclaude-in-chromeを入れておけば、キーを有効にしてもブロックされたままです。

よくあるつまずき

  • allowedMcpServersでmanaged-mcp.jsonのサーバーを止めていた: v2.1.259より前は、許可リストを設定すると管理サーバーも通過が必要でした。v2.1.259以降は${VAR}展開を使うサーバーを除き、許可リストはmanaged-mcp.jsonのサーバーに適用されません。止めていたサーバーが、ユーザーの初回起動時に通知なしで読み込まれます。引き続き効くのはdeniedMcpServersだけなので、アップグレード前に拒否リストを足します
  • ANTHROPIC_API_KEYやapiKeyHelperが有効なセッション: claude.aiのサブスクリプションでログインした認証方式のときだけコネクタが取得されます。ANTHROPIC_AUTH_TOKEN・サードパーティプロバイダーの有効時も同様で、/login済みでも読み込まれません

設定を確認する手順

手順

反映の確認

  1. 1

    /mcpでコネクタを見る

    管理対象のマシンで/mcpを実行し、claude.aiのセクションにコネクタが並んでいれば設定が効いています。

  2. 2

    claude mcp listで排他制御の状態を見る

    この一覧に並ぶのは、managed-mcp.jsonのサーバーとmanagedMcpServersで配ったサーバーだけが正常な状態です。ユーザー自身が追加したサーバーが並ぶなら、managed-mcp.jsonが読み込まれていないサインです。コネクタの確認は/mcpで行います。

  3. 3

    出ないときは/statusで認証方式を見る

    上のつまずきにある認証方式なら、コネクタ自体が取得されていません。

/mcp

claude mcp listは、一覧を出すだけのコマンドではありません。v2.1.289の--helpは、承認済みのサーバーにヘルスチェックの接続をすると説明しています。

claude mcp list --help
Usage: claude mcp list [options]
 
List configured MCP servers. Unapproved .mcp.json servers are shown as ⏸ Pending
approval and not connected to; approved servers are health-checked unless
disabled for this project.
 
Options:
  -h, --help  Display help for command

/mcpの一覧で、組織が認証をclaude.aiで管理しているコネクタにはmanagedと表示されます。これは認証の管理主体を示すだけで、接続方法やツール単位のblocked/askの適用範囲は変わりません。

組織が多くのコネクタを配っていると、一度もサインインしていないコネクタはclaude.aiセクションの末尾に折りたたまれ、Show unused connectorsの行を選ぶまで表示されません。allowAllClaudeAiMcpsを有効にしても一覧が短く見えるときは、抑制ではなくこの折りたたみの可能性があります。

まとめ

allowAllClaudeAiMcpsが戻すのは、Claude Code自身が取得するclaude.aiコネクタだけです。クラウドセッション・デスクトップアプリ・プラグインのサーバー・Claude in Chromeは別の経路か別のキーで扱うため、配布前に自組織の利用形態を確かめます。

MCP以外の組織向け機能でも、既定で止まっている外部連携を管理ソース側の1つの設定で解禁する構造はよく出てきます。Claude Code Channels組織管理の有効化もその一例です。対象の設定が読み込まれる場所を先に確認してから配布する進め方は共通しています。

この記事を共有:XはてブLinkedIn