前提条件
リポジトリ用のMCP サーバーを設定する前に、モデル コンテキスト プロトコル (MCP) について と モデル コンテキスト プロトコル (MCP) と GitHub Copilot クラウド エージェント を読んでください。
イントロダクション
リポジトリ管理者は、使用する MCP サーバーをリポジトリ内で構成できます。 これは、使用する MCP サーバーの詳細を指定する JSON 形式の構成を使用することで行います。 JSON 構成は、 GitHub.comのリポジトリの設定に直接入力します。
このリポジトリ レベルの MCP 構成は、 Copilot クラウドエージェント および Copilotコード レビューによって共有されます。 Copilotコード レビューによる MCP サーバーの使用の無効化については、Copilotコード レビューの MCP ツールの無効化を参照してください。
メモ
* Copilotコード レビューを使用したエージェント スキルと MCP サーバーのサポートはパブリック プレビューであり、変更される可能性があります。
- 以前に Copilot クラウドエージェント 設定で管理されていた既存のリポジトリ MCP 構成は、新しい共有 MCP 設定ページに自動的に移動されました。 移行アクションは必要ありません。
GitHub MCP サーバーと Playwright MCP サーバーは、既定で有効になっています。 これらの既定値と共に、独自の MCP サーバーを追加できます。
組織およびエンタープライズ管理者は、YAML frontmatter を使用して、 カスタム エージェント の一部として MCP サーバーを構成することもできます。 詳細については、「カスタム エージェントの構成」を参照してください。
警告
MCP サーバーを構成すると、 Copilot はサーバーによって提供されるツールを自律的に使用でき、使用する前に承認を求めなくなります。
Copilot クラウドエージェントおよびCopilotコード レビューで使用するように MCP サーバーを構成する場合は、次の点に注意してください。
- Copilot クラウドエージェント と Copilotコード レビュー は MCP ツールのみをサポートします。 現在、MCP サーバーによって提供されるリソースやプロンプトはサポートされていません。
- Copilot クラウドエージェント Copilotコード レビューは現在、認証と承認に OAuth を利用するリモート MCP サーバーをサポートしていません。
リポジトリへの MCP 構成の追加
リポジトリ管理者は、次の手順に従って MCP サーバーを構成できます。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。](/https/docs.github.com/assets/cb-28260/images/help/repository/repo-actions-settings.png)
-
サイドバーの「コード&オートメーション」セクションで、Copilot******** クリックします。
-
[モデル コンテキスト プロトコル (MCP)] ページで、[MCP 構成] セクションに構成を追加します。
この記事の以降のセクションでは、ここで入力する必要がある JSON 構成を記述する方法について説明します。
-
[ MCP 構成の保存] をクリックします。
構文が適切であることを確認するために構成が検証されます。
-
MCP サーバーで変数、キー、またはシークレットが必要な場合は、名前の前に
COPILOT_MCP_が付いた Agents シークレットまたは変数を追加します。 MCP 構成では、COPILOT_MCP_でプレフィックスが付いた名前のエージェント シークレットと変数のみが使用できます。 「Copilotクラウドエージェントのシークレットと変数を設定する」を参照してください。
MCP サーバーの JSON 構成の記述
特別な JSON 形式を使用して MCP サーバーを構成します。 JSON に mcpServers オブジェクトを含める必要があります。キーは MCP サーバーの名前 (sentry など)、値はその MCP サーバーの構成を含むオブジェクトです。
{
"mcpServers": {
"MCP SERVER 1": {
"command": "VALUE",
"args": [ VALUES ],
...
},
"MCP SERVER 2": {
"command": "VALUE",
"args": [ VALUES ],
...
},
...
}
}
{
"mcpServers": {
"MCP SERVER 1": {
"command": "VALUE",
"args": [ VALUES ],
...
},
"MCP SERVER 2": {
"command": "VALUE",
"args": [ VALUES ],
...
},
...
}
}
構成オブジェクトには次のキーが含まれる可能性があります。
ローカルおよびリモートの MCP サーバーに必要なキー
tools(string[]): 有効にする MCP サーバーのツール。 ツールの一覧は、サーバーのドキュメントまたはそのコード内で確認できます。 エージェントはこれらのツールを自律的に使用可能であり、事前に承認を求めことがないため、特定の読み取り専用ツールを許可リストに登録することを強くお勧めします。 配列に*を含めることですべてのツールを有効にすることもできます。type(string): Copilot クラウドエージェント は、"local"、"stdio"、"http"、または"sse"を受け入れます。
ローカル MCP 固有のキー
command(string): 必須。 MCP サーバーを起動するために実行するコマンド。args(string[]): 必須。commandに渡す引数。env(object): 省略可能。 サーバーに渡す環境変数。 このオブジェクトは、MCP サーバーに公開する必要がある環境変数の名前を次のいずれかにマップする必要があります。- Copilotや
$COPILOT_MCP_API_KEYなど、${COPILOT_MCP_API_KEY}環境内のシークレットまたは変数への置換参照。 参照される名前は、COPILOT_MCP_で始まる必要があります。 - リテラル文字列値。
- Copilotや
リモート MCP 固有のキー
url(string): 必須。 MCP サーバーの URL。headers(object): 省略可能。 サーバーへの要求にアタッチするヘッダー。 このオブジェクトは、ヘッダー キーの名前を次のいずれかにマップする必要があります。- Copilotや
$COPILOT_MCP_API_KEYなど、${COPILOT_MCP_API_KEY}環境内のシークレットまたは変数への置換参照。 参照される名前は、COPILOT_MCP_で始まる必要があります。 - リテラル文字列値。
- Copilotや
stringおよびstring[]以外のすべてのtoolsフィールドとtypeフィールドでは、Copilot環境で構成した変数またはシークレットを使用した置換がサポートされることに注意してください。
変数の置換
Copilot環境で構成された環境変数を参照するには、次の構文パターンがサポートされています。
| Syntax | 例 |
|---|---|
$VAR | $COPILOT_MCP_API_KEY |
${VAR} | ${COPILOT_MCP_API_KEY} |
${VAR:-default} | ${COPILOT_MCP_API_KEY:-fallback_value} |
構成例
次の例は、さまざまなプロバイダーの MCP サーバー構成を示しています。
例: Sentry
Sentry MCP サーバーは、Copilot に記録例外への認証済みアクセスを提供します。
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
"mcpServers": {
"sentry": {
"type": "local",
"command": "npx",
// We can use the $SENTRY_HOST environment variable which is passed to
// the server because of the `env` value below.
"args": ["@sentry/mcp-server@latest", "--host=$SENTRY_HOST"],
"env": {
// We can specify an environment variable value as a string...
"SENTRY_HOST": "https://contoso.sentry.io",
// or refer to a variable or secret in your Copilot environment
// with a name starting with `COPILOT_MCP_`
"SENTRY_ACCESS_TOKEN": "$COPILOT_MCP_SENTRY_ACCESS_TOKEN"
}
}
}
}
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
"mcpServers": {
"sentry": {
"type": "local",
"command": "npx",
// We can use the $SENTRY_HOST environment variable which is passed to
// the server because of the `env` value below.
"args": ["@sentry/mcp-server@latest", "--host=$SENTRY_HOST"],
"env": {
// We can specify an environment variable value as a string...
"SENTRY_HOST": "https://contoso.sentry.io",
// or refer to a variable or secret in your Copilot environment
// with a name starting with `COPILOT_MCP_`
"SENTRY_ACCESS_TOKEN": "$COPILOT_MCP_SENTRY_ACCESS_TOKEN"
}
}
}
}
例: Notion
Notion MCP サーバーは、ノートやその他のコンテンツCopilot認証されたアクセスを Notion から提供します。
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
"mcpServers": {
"notionApi": {
"type": "local",
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
// We can use the $NOTION_API_KEY environment variable which is passed to
// the server because of the `env` value below.
"OPENAPI_MCP_HEADERS={\"Authorization\": \"Bearer $NOTION_API_KEY\", \"Notion-Version\": \"2022-06-28\"}",
"mcp/notion"
],
"env": {
// The value of the `COPILOT_MCP_NOTION_API_KEY` secret will be passed to the
// server command as an environment variable called `NOTION_API_KEY`
"NOTION_API_KEY": "$COPILOT_MCP_NOTION_API_KEY"
},
"tools": ["*"]
}
}
}
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
"mcpServers": {
"notionApi": {
"type": "local",
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
// We can use the $NOTION_API_KEY environment variable which is passed to
// the server because of the `env` value below.
"OPENAPI_MCP_HEADERS={\"Authorization\": \"Bearer $NOTION_API_KEY\", \"Notion-Version\": \"2022-06-28\"}",
"mcp/notion"
],
"env": {
// The value of the `COPILOT_MCP_NOTION_API_KEY` secret will be passed to the
// server command as an environment variable called `NOTION_API_KEY`
"NOTION_API_KEY": "$COPILOT_MCP_NOTION_API_KEY"
},
"tools": ["*"]
}
}
}
例: Azure
Microsoft MCP リポジトリには、Azure MCP サーバーが含まれています。これにより、Copilot は、コードの変更時にサブスクリプション内のAzure固有のファイルとAzureリソースを理解できます。
Azure で認証する copilot-setup-steps.yml ファイルと認証用のシークレットを使用してリポジトリを自動的に構成するには、リポジトリをローカルに複製してから、リポジトリのルートで Azure Developer CLI の azd cloud-agent config コマンドを実行します。
コマンドを実行し、作成した pull request をマージしたら、MCP 構成をリポジトリに追加できます。
{
"mcpServers": {
"Azure": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@azure/mcp@latest",
"server",
"start"
],
"tools": ["*"]
}
}
}
{
"mcpServers": {
"Azure": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@azure/mcp@latest",
"server",
"start"
],
"tools": ["*"]
}
}
}
例: Cloudflare
Cloudflare MCP サーバーは、ドキュメントの処理やデータ分析など、Cloudflare サービス間の接続を作成します。
{
"mcpServers": {
"cloudflare": {
"type": "sse",
"url": "https://docs.mcp.cloudflare.com/sse",
"tools": ["*"]
}
}
}
{
"mcpServers": {
"cloudflare": {
"type": "sse",
"url": "https://docs.mcp.cloudflare.com/sse",
"tools": ["*"]
}
}
}
例: Azure DevOps
Azure DevOps MCP サーバーは、Copilot と作業項目、パイプライン、ドキュメントなどのAzure DevOps サービスとの間にシームレスな接続を作成します。
Copilot クラウドエージェントで Azure DevOps MCP サーバーを使用するには、リポジトリの copilot-setup-steps.yml ファイルを更新して、Azure ログイン ワークフロー ステップを含める必要があります。
-
GitHub を信頼して、Microsoft Entra アプリケーションで OIDC を構成します。 「OpenID Connect で Azure ログイン アクションを使用」を参照してください。
-
アプリケーション ID に対して Azure DevOps の組織とプロジェクトへのアクセスを設定します。 「組織ユーザーを追加してアクセスを管理する」をご覧ください。
-
.github/workflows/copilot-setup-steps.ymlActions ワークフロー ファイルがまだない場合は、リポジトリに追加します。 -
copilot-setup-stepsワークフロー ジョブに Azure ログイン ステップを追加します。YAML # このワークフローはGitHubによって認定されていないアクションを使用します。 # それらはサードパーティによって提供され、 # 別個の利用規約、プライバシーポリシー、 # ドキュメントを参照してください。 on: workflow_dispatch: permissions: id-token: write contents: read jobs: copilot-setup-steps: runs-on: ubuntu-latest permissions: id-token: write contents: read environment: copilot steps: - name: Azure login uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} allow-no-subscriptions: true# このワークフローはGitHubによって認定されていないアクションを使用します。 # それらはサードパーティによって提供され、 # 別個の利用規約、プライバシーポリシー、 # ドキュメントを参照してください。 on: workflow_dispatch: permissions: id-token: write contents: read jobs: copilot-setup-steps: runs-on: ubuntu-latest permissions: id-token: write contents: read environment: copilot steps: - name: Azure login uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} allow-no-subscriptions: trueこの構成により、
azure/loginの実行時にCopilot クラウドエージェントアクションが確実に実行されます。 -
AZURE_CLIENT_IDおよびAZURE_TENANT_IDのシークレットを、組織レベルまたはリポジトリレベルでエージェントシークレットとして構成します。 詳細については、「Copilotクラウドエージェントのシークレットと変数を設定する」を参照してください。 -
Azure DevOps MCP サーバーを構成するには、使用したいツールCopilotを含む
adoオブジェクトを MCP 構成に追加します。
{
"mcpServers": {
"ado": {
"type": "local",
"command": "npx",
"args": ["-y", "@azure-devops/mcp", "<your-azure-devops-organization>", "-a", "azcli"],
"tools": ["wit_get_work_item", "wit_get_work_items_batch_by_ids", ...]
}
}
}
{
"mcpServers": {
"ado": {
"type": "local",
"command": "npx",
"args": ["-y", "@azure-devops/mcp", "<your-azure-devops-organization>", "-a", "azcli"],
"tools": ["wit_get_work_item", "wit_get_work_items_batch_by_ids", ...]
}
}
}
例: Atlassian
Atlassian MCP サーバーは、Jira、Compass、Confluence など、Atlassian アプリへの認証されたアクセスをCopilotに提供します。
API キーを使用した Atlassian MCP サーバーへの認証の詳細については、Atlassian ドキュメントの API トークンを使用した認証の構成 を参照してください。
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
"mcpServers": {
"atlassian-rovo-mcp": {
"command": "npx",
"type": "local",
"tools": ["*"],
"args": [
"mcp-remote@latest",
"https://mcp.atlassian.com/v1/mcp",
// We can use the $ATLASSIAN_API_KEY environment variable which is passed
// to the server because of the `env` value below.
"--header",
"Authorization: Basic $ATLASSIAN_API_KEY"
],
"env": {
// The value of the `COPILOT_MCP_ATLASSIAN_API_KEY` secret will be passed
// to the server command as an environment variable
// called `ATLASSIAN_API_KEY`.
"ATLASSIAN_API_KEY": "$COPILOT_MCP_ATLASSIAN_API_KEY"
}
}
}
}
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
"mcpServers": {
"atlassian-rovo-mcp": {
"command": "npx",
"type": "local",
"tools": ["*"],
"args": [
"mcp-remote@latest",
"https://mcp.atlassian.com/v1/mcp",
// We can use the $ATLASSIAN_API_KEY environment variable which is passed
// to the server because of the `env` value below.
"--header",
"Authorization: Basic $ATLASSIAN_API_KEY"
],
"env": {
// The value of the `COPILOT_MCP_ATLASSIAN_API_KEY` secret will be passed
// to the server command as an environment variable
// called `ATLASSIAN_API_KEY`.
"ATLASSIAN_API_KEY": "$COPILOT_MCP_ATLASSIAN_API_KEY"
}
}
}
}
Visual Studio Code からあなたの MCP 構成を再利用する
VS Codeで MCP サーバーを既に構成している場合は、GitHubのリポジトリ MCP 設定に同様の構成を利用できます。
VS Codeの構成方法によっては、リポジトリの.vscode/mcp.json ファイルまたはマシンのプライベート settings.json ファイルで MCP 設定を見つけることができます。
GitHubのリポジトリ MCP 設定の構成を調整するには、次の手順を実行する必要があります。
- MCP サーバーごとに
toolsキーを追加し、 Copilotで使用できるツールを指定します。 inputsを構成した場合は、envの直接使用に切り替えます。envFileを構成した場合は、envの直接使用に切り替えます。inputs構成内のargsに対する参照を更新し、代わりにenvの環境変数を参照するようにします。
VS Codeの MCP の詳細については、VS Codeドキュメントを参照してください。
MCP 構成の検証
MCP 構成を設定したら、MCP 構成をテストして、正しく設定されていることを確認する必要があります。
で検証する Copilot クラウドエージェント
- リポジトリに問題を作成し、 Copilotに割り当てます。
- 数秒待つと、 Copilot は問題に対する 👀 の反応を残します。
- 数秒待つと、 Copilot によって pull request が作成され、問題のタイムラインに表示されます。
- タイムラインで作成されたプルリクエストをクリックし、「Copilot が作業を開始しました」というタイムラインイベントが表示されるまで待ちます。
- [ セッションの表示 ] をクリックして、 Copilot クラウドエージェント ログを開きます。
- ログ ビューアーの右上にある省略記号ボタン (...) をクリックし、サイドバーの [ Copilot ] をクリックします。
- [Start MCP Servers] ステップをクリックして、ログを展開します。
- MCP サーバーが正常に起動していた場合、ログの一番下にそれらのツールが一覧表示されます。
MCP サーバーで、GitHub Actionsやuvなど、既定でpipx ランナーにインストールされていない依存関係が必要な場合や、特別なセットアップ手順が必要な場合は、copilot-setup-steps.yml Actions ワークフロー ファイルを作成してインストールする必要があります。 詳細については、「開発環境を構成する」を参照してください。
で検証する Copilotコード レビュー
- リポジトリで pull request を開きます。
- Copilotにレビューを要求します。
- [セッションの表示] をクリックして、pull request タイムラインからリンクされたレビュー セッションを開きます。 セッション ログで、[環境のセットアップ] セクションを確認して、起動および呼び出された MCP サーバーとツールを確認します。
組み込みの GitHub MCP サーバーのカスタマイズ
GitHub MCP サーバーは既定で有効になっており、現在のリポジトリへの読み取り専用アクセス権のみを持つ特別なスコープトークンを使用してGitHubに接続します。
Copilotが現在のリポジトリの外部のデータにアクセスできるようにする場合は、より広範なアクセス権を持つpersonal access tokenを付与できます。
-
適切なアクセス許可を持つ personal access token を作成します。 トークンのアクセスを特定のリポジトリの読み取り専用アクセス許可に制限できる fine-grained personal access tokenを使用することをお勧めします。 personal access tokensの詳細については、「個人用アクセス トークンを管理する」を参照してください。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。](/https/docs.github.com/assets/cb-28260/images/help/repository/repo-actions-settings.png)
-
サイドバーの「コード&オートメーション」セクションで、Copilot******** クリックします。
-
[MCP 構成] セクションに構成を追加します。 たとえば、次のように追加できます。
JavaScript // If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON. { "mcpServers": { "github-mcp-server": { "type": "http", // Remove "/readonly" to enable wider access to all tools. // Then, use the "X-MCP-Toolsets" header to specify which toolsets you'd like to include. // Use the "tools" field to select individual tools from the toolsets. "url": "https://api.githubcopilot.com/mcp/readonly", "tools": ["*"], "headers": { "X-MCP-Toolsets": "repos,issues,users,pull_requests,code_security,secret_protection,actions,web_search" } } } }// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON. { "mcpServers": { "github-mcp-server": { "type": "http", // Remove "/readonly" to enable wider access to all tools. // Then, use the "X-MCP-Toolsets" header to specify which toolsets you'd like to include. // Use the "tools" field to select individual tools from the toolsets. "url": "https://api.githubcopilot.com/mcp/readonly", "tools": ["*"], "headers": { "X-MCP-Toolsets": "repos,issues,users,pull_requests,code_security,secret_protection,actions,web_search" } } } } -
[ MCP 構成の保存] をクリックします。
-
COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKENを値として使用して、personal access tokenというエージェント シークレットを追加します。 これは、組織レベルまたはリポジトリ レベルで構成できます。 詳細については、「Copilotクラウドエージェントのシークレットと変数を設定する」を参照してください。
他の環境での GitHub MCP サーバーの使用については、 IDE での GitHub MCP サーバーの使用 を参照してください。
コード レビュー用の MCP ツールの無効化
メモ
Copilotコード レビューを使用したエージェント スキルと MCP サーバーのサポートはパブリック プレビューであり、変更される可能性があります。
リポジトリ設定では、 Copilotコード レビュー による MCP ツールの使用が既定で有効になっています。
構成された MCP サーバーをCopilot クラウドエージェントではなく、Copilotコード レビューでのみ使用できるようにする場合は、この設定を無効にします。
この設定を無効にした場合、 Copilotコード レビュー は、既定の GitHub および Playwright MCP サーバーからのツールを含め、そのリポジトリ内のプル要求レビュー用の MCP ツールを呼び出しません。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。](/https/docs.github.com/assets/cb-28260/images/help/repository/repo-actions-settings.png)
-
サイドバーの「コード&オートメーション」セクションで、 Copilot クリックしてから コードレビューをクリックします。
-
設定を無効にするには、プル リクエストのレビュー時に Copilot に MCP ツールの使用を許可する切り替えをクリックします。