Skip to main content

エージェントを外部ツールに接続する

モデル コンテキスト プロトコル (MCP) を使用して、 Copilot クラウドエージェント を外部ツールとデータ ソースに接続します。

前提条件

          Copilot クラウドエージェント用に MCP サーバーを設定する前に、[AUTOTITLE](/copilot/concepts/agents/cloud-agent/mcp-and-cloud-agent) を読んで、MCP サーバーとCopilot クラウドエージェントに関する概念を理解していることを確認してください。

Introduction

リポジトリ管理者は、使用する MCP サーバーをリポジトリ内で構成できます。 これは、使用する MCP サーバーの詳細を指定する JSON 形式の構成を使用することで行います。 JSON 構成は、 GitHub.comのリポジトリの設定に直接入力します。

組織およびエンタープライズ管理者は、YAML frontmatter を使用して、 カスタム エージェント の一部として MCP サーバーを構成することもできます。 詳細については、「カスタム エージェントの構成」を参照してください。

警告

MCP サーバーを構成すると、 Copilot はサーバーによって提供されるツールを自律的に使用でき、使用する前に承認を求めなくなります。

メモ

* Copilot クラウドエージェント は、MCP サーバーによって提供されるツールのみをサポートします。 リソースまたはプロンプトはサポートしません。 * Copilot クラウドエージェント は現在、認証と承認に OAuth を利用するリモート MCP サーバーをサポートしていません。

リポジトリへの MCP 構成の追加

リポジトリ管理者は、次の手順に従って MCP サーバーを構成できます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの「コード&オートメーション」セクションで、 Copilot クリックして クラウド エージェント します。

  4.        **[MCP configuration]** セクションで構成を追加します。
    

    この記事の以降のセクションでは、ここで入力する必要がある JSON 構成を記述する方法について説明します。

  5.        **保存** をクリックします。
    

    構文が適切であることを確認するために構成が検証されます。

  6. MCP サーバーに変数、キー、またはシークレットが必要な場合は、 Copilot 環境に変数またはシークレットを追加します。 MCP 構成では、 COPILOT_MCP_ でプレフィックスが付いた名前の変数とシークレットのみを使用できます。 Copilot のCopilot クラウドエージェント環境の設定を参照してください。

MCP サーバーの JSON 構成の記述

特別な JSON 形式を使用して MCP サーバーを構成します。 JSON に mcpServers オブジェクトを含める必要があります。キーは MCP サーバーの名前 (sentry など)、値はその MCP サーバーの構成を含むオブジェクトです。

JSON
{
  "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_で始まる必要があります。

    • リテラル文字列値。

            **リモート MCP 固有のキー**
      
  • url (string): 必須。 MCP サーバーの URL。

  • headers (object): 省略可能。 サーバーへの要求にアタッチするヘッダー。 このオブジェクトは、ヘッダー キーの名前を次のいずれかにマップする必要があります。

    • Copilotや$COPILOT_MCP_API_KEYなど、${COPILOT_MCP_API_KEY}環境内のシークレットまたは変数への置換参照。 参照される名前は、 COPILOT_MCP_で始まる必要があります。

    • リテラル文字列値。

            `string`および`string[]`以外のすべての`tools`フィールドと`type`フィールドでは、Copilot環境で構成した変数またはシークレットを使用した置換がサポートされることに注意してください。
      

変数の置換

          Copilot環境で構成された環境変数を参照するには、次の構文パターンがサポートされています。
構文
$VAR$COPILOT_MCP_API_KEY
${VAR}${COPILOT_MCP_API_KEY}
${VAR:-default}${COPILOT_MCP_API_KEY:-fallback_value}

構成例

次の例は、さまざまなプロバイダーの MCP サーバー構成を示しています。

例: Sentry

          [Sentry MCP サーバー](https://github.com/getsentry/sentry-mcp)は、Copilot に記録[](https://sentry.io)例外への認証済みアクセスを提供します。
JavaScript
// 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 サーバー](https://github.com/makenotion/notion-mcp-server)は、ノートやその他のコンテンツCopilot認証されたアクセスを [Notion](https://notion.so) から提供します。
JavaScript
// 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 リポジトリ](https://github.com/microsoft/mcp)には、Azure MCP サーバーが含まれています。これにより、Copilot は、コードの変更時にサブスクリプション内のAzure固有のファイルとAzureリソースを理解できます。

Azure で認証する copilot-setup-steps.yml ファイルと認証用のシークレットを使用してリポジトリを自動的に構成するには、リポジトリをローカルに複製してから、リポジトリのルートで Azure Developer CLIazd cloud-agent config コマンドを実行します。

コマンドを実行し、作成した pull request をマージしたら、MCP 構成をリポジトリに追加できます。

JSON
 {
   "mcpServers": {
     "Azure": {
      "type": "local",
      "command": "npx",
      "args": [
        "-y",
        "@azure/mcp@latest",
        "server",
        "start"
       ],
      "tools": ["*"]
     }
   }
 }

例: Cloudflare

          [Cloudflare MCP サーバー](https://github.com/cloudflare/mcp-server-cloudflare)は、ドキュメントの処理やデータ分析など、Cloudflare サービス間の接続を作成します。
JSON
{
  "mcpServers": {
    "cloudflare": {
      "type": "sse",
      "url": "https://docs.mcp.cloudflare.com/sse",
      "tools": ["*"]
    }
  }
}

例: Azure DevOps

          [Azure DevOps MCP サーバー](https://github.com/microsoft/azure-devops-mcp)は、Copilot と作業項目、パイプライン、ドキュメントなどのAzure DevOps サービスとの間にシームレスな接続を作成します。

          Copilot クラウドエージェントで Azure DevOps MCP サーバーを使用するには、リポジトリの copilot-setup-steps.yml ファイルを更新して、Azure ログイン ワークフロー ステップを含める必要があります。

1. GitHub を信頼して、Microsoft Entra アプリケーションで OIDC を構成します。 「OpenID Connect で Azure ログイン アクションを使用」を参照してください。

  1. アプリケーション ID に対して Azure DevOps の組織とプロジェクトへのアクセスを設定します。 「組織ユーザーを追加してアクセスを管理する」をご覧ください。

  2.        `.github/workflows/copilot-setup-steps.yml` Actions ワークフロー ファイルがまだない場合は、リポジトリに追加します。
    
  3.        `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
    

    この構成により、azure/loginの実行時にCopilot クラウドエージェントアクションが確実に実行されます。

  4. リポジトリの Copilot 環境で、 AZURE_CLIENT_IDAZURE_TENANT_IDのシークレットを追加します。

  5.        `ado` オブジェクトを MCP 構成に追加し、Copilot クラウドエージェント が使用するツールを定義して、Azure DevOps MCP サーバーを設定します。
    
JSON
{
  "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 サーバー](https://github.com/atlassian/atlassian-mcp-server)は、Jira、Compass、Confluence など、Atlassian アプリへの認証されたアクセスをCopilotに提供します。

API キーを使用した Atlassian MCP サーバーへの認証の詳細については、Atlassian ドキュメントの API トークンを使用した認証の構成 を参照してください。

JavaScript
// 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 サーバーを既に構成している場合は、Copilot クラウドエージェントに同様の構成を利用できます。

          VS Codeの構成方法によっては、リポジトリの`.vscode/mcp.json` ファイルまたはマシンのプライベート `settings.json` ファイルで MCP 設定を見つけることができます。

          Copilot クラウドエージェントの構成を調整するには、次の手順を実行する必要があります。
  1. MCP サーバーごとに tools キーを追加し、 Copilotで使用できるツールを指定します。
  2.        `inputs` を構成した場合は、`env` の直接使用に切り替えます。
    
  3.        `envFile` を構成した場合は、`env` の直接使用に切り替えます。
    
  4.        `inputs` 構成内の `args` に対する参照を更新し、代わりに `env` の環境変数を参照するようにします。
    
           VS Codeの MCP の詳細については、[VS Codeドキュメント](https://code.visualstudio.com/docs/copilot/chat/mcp-servers)を参照してください。
    

          Copilot の環境を Copilot クラウドエージェント のために設定する

一部の MCP サーバーには、キーまたはシークレットが必要です。 Copilot クラウドエージェントでこれらのサーバーを活用するには、Copilotの環境にシークレットを追加します。 これにより、シークレットが適切に認識され、構成した該当の MCP サーバーに渡されます。

リポジトリの Copilot 環境を構成するには、リポジトリ管理者である必要があります。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. 左側のサイドバーで、 [環境] をクリックします。

  4. [新しい環境] をクリックします。

  5. 新しい環境 copilot を呼び出し、[Configure environment] をクリックします。

  6. [Environment secrets] で、[Add environment secret] をクリックします。

  7.        `COPILOT_MCP_` で始まる名前をシークレットに付けてから、**[Add secret]** をクリックします。
    

MCP 構成の検証

MCP 構成を設定したら、MCP 構成をテストして、正しく設定されていることを確認する必要があります。

  1. リポジトリに問題を作成し、 Copilotに割り当てます。
  2. 数秒待つと、 Copilot は問題に対する 👀 の反応を残します。
  3. 数秒待つと、 Copilot によって pull request が作成され、問題のタイムラインに表示されます。
  4. タイムラインで作成されたプルリクエストをクリックし、「Copilot が作業を開始しました」というタイムラインイベントが表示されるまで待ちます。
  5. [ セッションの表示 ] をクリックして、 Copilot クラウドエージェント ログを開きます。
  6. ログ ビューアーの右上にある省略記号ボタン (...) をクリックし、サイドバーの [ Copilot ] をクリックします。
  7.        **[Start MCP Servers]** ステップをクリックして、ログを展開します。
    
  8. MCP サーバーが正常に起動していた場合、ログの一番下にそれらのツールが一覧表示されます。

MCP サーバーで、GitHub Actionsやuvなど、既定でpipx ランナーにインストールされていない依存関係が必要な場合や、特別なセットアップ手順が必要な場合は、copilot-setup-steps.yml Actions ワークフロー ファイルを作成してインストールする必要があります。 詳細については、「開発環境を構成する」を参照してください。

組み込みの GitHub MCP サーバーのカスタマイズ

          GitHub MCP サーバーは既定で有効になっており、現在のリポジトリへの読み取り専用アクセス権のみを持つ特別なスコープトークンを使用してGitHubに接続します。

          Copilotが現在のリポジトリの外部のデータにアクセスできるようにする場合は、より広範なアクセス権を持つpersonal access tokenを付与できます。
  1. 適切なアクセス許可を持つ personal access token を作成します。 トークンのアクセスを特定のリポジトリの読み取り専用アクセス許可に制限できる fine-grained personal access tokenを使用することをお勧めします。 personal access tokensの詳細については、「個人用アクセス トークンを管理する」を参照してください。

  2. GitHub で、リポジトリのメイン ページに移動します。

  3. リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  4. サイドバーの「コード&オートメーション」セクションで、 Copilot クリックして クラウド エージェント します。

  5.        **[MCP configuration]** セクションで構成を追加します。 たとえば、次のように追加できます。
    
    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"
           }
         }
       }
     }
    

    ツールセットの詳細については、 リモート MCP サーバーのドキュメントの GitHub を参照してください。

  6.        **保存** をクリックします。
    
  7. 左側のサイドバーで、 [環境] をクリックします。

  8.        `copilot` 環境をクリックします。
    
  9. [Environment secrets] で、[Add environment secret] をクリックします。

  10. シークレット COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKENを呼び出し、[値] フィールドに personal access token を入力し、[ シークレットの追加] をクリックします。

他の環境での GitHub MCP サーバーの使用については、 IDE での GitHub MCP サーバーの使用 を参照してください。

次のステップ