Skip to main content

Соединяйте агенты с внешними инструментами

Подключайтесь Copilot облачный агент к внешним инструментам и источникам данных через протокол контекста модели (MCP).

Предпосылка

Прежде чем настраивать MCP-сервер для Copilot облачный агент, прочитайте Протокол контекста модели (MCP) и облачный агент GitHub Copilot , чтобы убедиться, что вы понимаете концепции вокруг MCP-серверов и Copilot облачный агент.

Introduction

Администратор репозитория позволяет настроить серверы MCP для использования в репозитории. Для этого используется конфигурация в формате JSON, указывающая сведения о серверах MCP, которые вы хотите использовать. Вы вводите конфигурацию JSON напрямую в настройки репозитория на GitHub.com.

Администраторы организаций и предприятий также могут настраивать MCP-серверы в рамках Пользовательские агенты использования YAML frontmatter. Дополнительные сведения см. в разделе Настройка пользовательских агентов.

Предупреждение

После настройки MCP-сервера Copilot вы сможете самостоятельно пользоваться инструментами, предоставленными сервером, и не будут спрашивать вашего одобрения перед их использованием.

Примечание.

* Copilot облачный агент поддерживает только инструменты, предоставляемые серверами MCP. Он не поддерживает ресурсы или запросы. * Copilot облачный агент в настоящее время не поддерживает удалённые MCP-серверы, использующие OAuth для аутентификации и авторизации.

Добавление конфигурации MCP в репозиторий

Администраторы репозитория могут настроить серверы MCP, выполнив следующие действия.

  1. На GitHubперейдите на главную страницу репозитория.

  2. Под именем репозитория щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром.

  3. В разделе «Код и автоматизация» боковой панели нажмите Copilot тогда Облачный агент.

  4. Добавьте конфигурацию в раздел конфигурации MCP.

    В следующих разделах этой статьи объясняется, как записать конфигурацию JSON, которую необходимо ввести здесь.

  5. Нажмите кнопку Сохранить.

    Ваша конфигурация будет проверена, чтобы обеспечить правильный синтаксис.

  6. Если ваш MCP-сервер требует переменную, ключ или секрет, добавьте переменную или секрет в вашу Copilot среду. В вашей конфигурации MCP будут доступны только переменные и секреты с префиксом COPILOT_MCP_ имен. См. Создание Copilot среды для Copilot облачный агент.

Написание конфигурации JSON для серверов MCP

Серверы MCP настраивают с помощью специального формата JSON. 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): Обязательный. URL-адрес сервера MCP.

  • headers (object): Необязательно. Заголовки для присоединения к запросам к серверу. Этот объект должен сопоставить имена заголовочных ключей с одним из следующих элементов:

    • Подстановка — ссылка на секрет или переменную в вашей Copilot среде, например $COPILOT_MCP_API_KEY или ${COPILOT_MCP_API_KEY}. Ссылки на названия должны начинаться с COPILOT_MCP_.
    • Буквальное значение строки.

Обратите внимание, что все 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](https://github.com/getsentry/sentry-mcp) предоставляет Copilot аутентифицированный доступ к исключениям, записанным в [Sentry](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"
      }
    }
  }
}

Пример: понятие

          [Сервер MCP Notion](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 включает Azure MCP-сервер, который позволяет Copilot понимать ваши Azure-специфические файлы и Azure ресурсы в вашей подписке при внесении изменений в код.

Чтобы автоматически настроить репозиторий с помощью copilot-setup-steps.yml файла для аутентификации с помощью Azure, а также секретов для аутентификации, клонируйте репозиторий локально, а затем запустите команду Azure Developer CLIazd cloud-agent config в корне репозитория.

После выполнения команды и объединения созданного запроса на вытягивание вы можете добавить конфигурацию MCP в свой репозиторий.

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

Пример: Cloudflare

Сервер Cloudflare MCP создает подключения между службами Cloudflare, включая обработку документации и анализа данных.

JSON
{
  "mcpServers": {
    "cloudflare": {
      "type": "sse",
      "url": "https://docs.mcp.cloudflare.com/sse",
      "tools": ["*"]
    }
  }
}

Пример: Azure DevOps

MCP-сервер Azure DevOps создает бесшовное соединение между Copilot и вашими Azure DevOps-сервисами, включая рабочие элементы, конвейеры или документацию.

Чтобы использовать Azure DevOps MCP-сервер с Copilot облачный агент, необходимо обновить copilot-setup-steps.yml файл репозитория, включив Azure этап входа.

  1. Настройте OIDC в Microsoft Entra приложении, доверяя GitHub. См. Используйте действие Azure Login с OpenID Connect.

  2. Настройте доступ к организации и проектам Azure DevOps для идентификации приложения. См. статью "Добавление пользователей организации" и управление доступом.

  3. Добавьте файл рабочего процесса Actions в репозиторий .github/workflows/copilot-setup-steps.yml , если его еще нет.

  4. Добавьте Azure шаг входа в рабочий процесс copilot-setup-steps.

    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 облачный агент выполнении.

  5. В окружении Copilot вашего репозитория добавьте секреты для вашего AZURE_CLIENT_ID и AZURE_TENANT_ID.

  6. Настройте Azure DevOps MCP-сервер, добавив объект ado в конфигурацию MCP с помощью определённых инструментов, которые вы хотите использовать Copilot облачный агент.

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) предоставляет Copilot аутентифицированный доступ к вашим приложениям Atlassian, включая Jira, Compass и Confluence.

Для получения дополнительной информации об аутентификации на сервере Atlassian MCP с использованием ключа API см. раздел «Конфигурирование аутентификации через API token» в документации Atlassian.

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"
      }
    }
  }
}

Повторное использование конфигурации MCP из Visual Studio Code

Если вы уже настроили MCP-серверы в VS Code, вы можете использовать похожую конфигурацию для Copilot облачный агент.

В зависимости от VS Code настройки, вы можете найти настройки MCP в файле .vscode/mcp.json репозитория или в приватном settings.json файле компьютера.

Чтобы адаптировать конфигурацию для Copilot облачный агент, вам понадобится:

  1. Добавьте ключ tools для каждого MCP-сервера, указывая, какие инструменты будут доступны для Copilot.
  2. Если вы настроили, inputsпереключитесь на использование env напрямую.
  3. Если вы настроили параметр envFile, переключитесь на использование env напрямую.
  4. Обновите все ссылки inputs на конфигурацию args , чтобы вместо этого ссылаться на переменные env среды.

Для получения дополнительной информации о MCP в VS Code, см. VS Code документацию.

Создание Copilot среды для Copilot облачный агент

Для некоторых серверов MCP требуются ключи или секреты. Чтобы использовать эти серверы в Copilot облачный агент, вы можете добавить секреты в окружение для Copilot. Это гарантирует, что секреты правильно распознаются и передаются на соответствующий сервер MCP, настроенный вами.

Вы должны быть администратором репозитория, чтобы настроить Copilot среду для вашего репозитория.

  1. На GitHubперейдите на главную страницу репозитория.

  2. Под именем репозитория щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром.

  3. На левой боковой панели щелкните Среды.

  4. Выберите Новая среда.

  5. Вызовите новую среду copilot и нажмите кнопку "Настроить среду".

  6. В разделе "Секреты среды" нажмите кнопку "Добавить секрет среды".

  7. Присвойте секрету имя, COPILOT_MCP_добавьте значение секрета, а затем нажмите кнопку "Добавить секрет".

Проверка конфигурации MCP

После настройки конфигурации MCP необходимо протестировать его, чтобы убедиться, что он настроен правильно.

  1. Создайте проблему в репозитории, затем назначите её на Copilot.
  2. Подождите несколько секунд и Copilot оставьте 👀 реакцию по этому вопросу.
  3. Подождите ещё несколько секунд и Copilot создам pull request, который появится в таймлайне задачи.
  4. Нажмите на созданный pull request в таймлайне и дождитесь, пока появится событие «Copilot начал работу».
  5. Нажмите «Просмотр сессии », чтобы открыть Copilot облачный агент логи.
  6. Нажмите кнопку многоточия (...) в правом верхнем углу просмотра журналов, затем нажмите Copilot в боковой панели.
  7. Щелкните шаг "Пуск СЕРВЕРА MCP"**, **чтобы развернуть журналы.
  8. Если серверы MCP успешно запущены, вы увидите их инструменты, перечисленные в нижней части журналов.

Если вашим MCP-серверам нужны зависимости, которые по умолчанию не установлены на GitHub Actions Runner, 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. Например, вы можете добавить следующее:

    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"
           }
         }
       }
     }
    

    Для получения дополнительной информации о наборах инструментов обратитесь к README в документации GitHub по Remote MCP Server.

  6. Нажмите кнопку Сохранить.

  7. На левой боковой панели щелкните Среды.

  8.        `copilot` Щелкните среду.
    
  9. В разделе "Секреты среды" нажмите кнопку "Добавить секрет среды".

  10. Позовите секрет COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKEN, введите personal access token в поле «Значение», затем нажмите «Добавить секрет».

Для информации об использовании GitHub MCP-сервера в других условиях см. Использование GitHub MCP сервера в вашем IDE.

Дальнейшие действия