allowlists について
許可リストと拒否リストを定義して、企業内のユーザーが Copilot クライアントで実行できる MCP サーバーを制御できます。 これらのリストは、エンタープライズのmanaged-settings.jsonで定義されており、それをGitHubに保存できます。
詳細については、「社内での MCP サーバーの使用状況」を参照してください。
前提条件
- MCP サーバーを実行するには、ご利用のエンタープライズ、または MCP サーバーを許可する必要がある組織で、Copilot 内の MCP サーバー ポリシーを有効にする必要があります。
- 現在、MCP サーバーをカスタム レジストリに制限している場合は、新しい許可リストとの競合を回避し、単一の信頼できるソースを維持するために、この制限をオフにすることをお勧めします。 レジストリ サーバーへの MCP アクセスの制限 ポリシーを [すべて許可] に設定し、必要に応じて MCP レジストリ URL の値をクリアします。
これらの設定は、CopilotポリシーのMCPセクションにあります。 「企業での GitHub Copilot のポリシーと機能の管理」を参照してください。
許可リストまたは拒否リストの定義
-
エンタープライズ用の
managed-settings.jsonファイルを作成します。 ほとんどの企業は、このファイルを.github-privateリポジトリに格納します。 モバイル デバイス管理を使用して、ユーザーのマシンに直接インストールすることもできます。 「エンタープライズ管理設定の構成」を参照してください。 -
ファイルを編集して、MCP サーバーの許可リストと拒否リストを定義します。 名前、サーバー URL、または特定のコマンドで一致させることができます。 構文の詳細については、「エンタープライズ管理設定」の allowedMcpServers と deniedMcpServers を参照してください。
次の例では、3 つの許可リスト エントリのいずれかに一致するサーバーを許可します。 ルート ファイルシステムにアクセスするように構成されたファイルシステム サーバーは、許可リスト エントリにも一致する場合でも、常にブロックされます。
JSON { "allowedMcpServers": [ { "serverUrl": "https://api.githubcopilot.com/*" }, { "serverCommand": ["npx", "@playwright/mcp@latest"] }, { "serverCommand": ["cmd", "/c", "uvx", "markitdown-mcp"] } ], "deniedMcpServers": [ { "serverCommand": [ "npx", "-y", "@modelcontextprotocol/server-filesystem", "/" ] } ] }{ "allowedMcpServers": [ { "serverUrl": "https://api.githubcopilot.com/*" }, { "serverCommand": ["npx", "@playwright/mcp@latest"] }, { "serverCommand": ["cmd", "/c", "uvx", "markitdown-mcp"] } ], "deniedMcpServers": [ { "serverCommand": [ "npx", "-y", "@modelcontextprotocol/server-filesystem", "/" ] } ] }
評価ルール
Copilot クライアントは MCP サーバーを次の順序で評価します。
- 組み込みの GitHub MCP サーバーなど、組み込みの既定のサーバーを常に許可します。
deniedMcpServers内のエントリと一致する場合は、サーバーをブロックします。allowedMcpServersが存在し、いずれのエントリにも一致しない場合は、サーバーをブロックします。- クライアントがサーバーを検証できないため、URL またはコマンドに
${VARIABLE}や$VARIABLEなどの未解決の変数が含まれている場合は、サーバーをブロックします。
クライアントが複数の managed-settings.json 展開方法から設定を受け取った場合、すべての設定が適用されます。 任意のソースからの拒否規則はサーバーをブロックし、サーバーは、1 つを定義するすべてのレイヤーで許可リスト エントリと一致する必要があります。
許可リストまたは拒否リストの形式が正しくない場合 (無効な JSON など)、クライアントはポリシーを空の allowedMcpServers リストとして扱います。 これにより、組み込みの既定のサーバーを除くすべてのサーバーがブロックされます。
取得エラーまたはデバイス検出エラーが原因でクライアントがポリシー レイヤーを特定できない場合は、以前に適用されたポリシーが保持されます。 有効なポリシーは、より制限が厳しくなる可能性がありますが、制限が緩くなるわけではありません。