Skip to main content

Расширение GitHub Copilot кодирующего агента с помощью протокола контекста модели (MCP)

Узнайте, как использовать протокол контекста модели (MCP) для расширения возможностей Агент кодирования Copilot.

Предварительные требования

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

Введение

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

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

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

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

Добавление конфигурации 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, поддерживаются следующие синтаксические шаблоны:

СинтаксисПример
$VAR$COPILOT_MCP_API_KEY
${VAR}${COPILOT_MCP_API_KEY}
${VAR:-default}${COPILOT_MCP_API_KEY:-fallback_value}

Примеры конфигураций

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

  •         [Часовой](#example-sentry)
    
  •         [Понятие](#example-notion)
    
  •         [Azure](#example-azure)
    
  •         [Cloudflare](#example-cloudflare)
    
  •         [Azure DevOps](#example-azure-devops)
    
  •         [Atlassian](#example-atlassian)
    

Пример: Sentry

Сервер Sentry MCP предоставляет Copilot прошедший проверку подлинности доступ к исключениям, записанным в Sentry.

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"],
      "tools": ["get_issue_details", "get_issue_summary"],
      "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 MCP предоставляет Copilot прошедший проверку подлинности доступ к заметкам и другому содержимому из представления.

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 coding-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

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

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

  1. Configure OIDC in a Microsoft Entra application, trusting 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. В среде данных репозитория variables.product.prodname_copilot_short %} добавьте секреты для вашего 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 создаст запрос на вытягивание, который будет отображаться на временной шкале проблемы.
  4. Нажмите на созданный pull request в таймлайне и дождитесь, пока появится событие «Copilot начал работу».
  5. Щелкните "Просмотреть сеанс", чтобы открыть журналы Агент кодирования Copilot.
  6. Нажмите кнопку с многоточием (...) в правом верхнем углу средства просмотра журналов, а затем выберите Copilot на боковой панели.
  7. Щелкните шаг "Пуск СЕРВЕРА MCP"**, **чтобы развернуть журналы.
  8. Если серверы MCP успешно запущены, вы увидите их инструменты, перечисленные в нижней части журналов.

Если серверы MCP требуют каких-либо зависимостей, которые не установлены в средстве выполнения GitHub Actions по умолчанию, например uv и ( или pipx) необходимы специальные действия по настройке, может потребоваться создать copilot-setup-steps.yml файл рабочего процесса Actions для их установки. Дополнительные сведения см. в разделе Настройка среды разработки для программистского агента GitHub Copilot.

Настройка встроенного сервера MCP GitHub

Сервер MCP GitHub включен по умолчанию и подключается к 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 в поле "Значение", а затем нажмите кнопку "Добавить секрет".

Сведения об использовании сервера MCP GitHub в других средах см. в разделе Использование сервера GitHub MCP.

Следующие шаги

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers)
    
  •         [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/create-custom-agents)
    
  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-the-development-environment-for-copilot-coding-agent)
    
  •         [AUTOTITLE](/copilot/customizing-copilot/extending-copilot-chat-with-mcp)