Skip to main content

Ссылка на плагин GitHub Copilot CLI

Найдите команды и детали конфигурации для плагинов CLI.

Примечание.

Помощь по использованию плагинов можно найти copilot plugin [SUBCOMMAND] --help в терминале.

Для обзора того, что такое плагины и как они работают между Copilot клиентами, см. О GitHub Copilot плагинах.

Команды CLI

Вы можете использовать следующие команды в терминале для управления плагинами для Copilot CLI. copilot plugin и copilot plugins являются взаимозаменяемыми — используйте все, что лучше считывается для подкоманда.

CommandОписание
copilot plugin install SPECIFICATIONУстановите плагин. См. спецификацию плагина для install команды ниже.
copilot plugin uninstall NAMEУдалить плагин
copilot plugin listСписок установленных плагинов
copilot plugin update NAMEОбновите именованный плагин. Используйте --all обновление всех установленных плагинов сразу.
copilot plugin enable NAMEВключите ранее отключённый плагин
copilot plugin disable NAMEОтключите плагин, не удаляя его
copilot plugin marketplace add SPECIFICATIONРегистрация Marketplace. Собственное имя Marketplace из манифеста marketplace.json становится его ключом регистрации. Нет возможности задать пользовательское локальное имя.
copilot plugin marketplace listСписок зарегистрированных торговых площадок
copilot plugin marketplace browse NAMEПросмотр плагинов маркетплейса
copilot plugin marketplace update [NAME] (псевдоним refresh)Повторное получение каталога подключаемых модулей Marketplace. Не следует NAME обновлять каталоги каждой зарегистрированной платформы.
copilot plugin marketplace remove NAMEОтмена регистрации marketplace. Отклонено, если подключаемые модули из Marketplace по-прежнему установлены; передайте --force эти подключаемые модули, чтобы удалить эти подключаемые модули.

Неинтерактивно, copilot plugins enable NAME --plugin``copilot plugins disable NAME --pluginи copilot plugins remove NAME --plugin предоставляют те же операции включения, отключения и удаления. --plugin является типом по умолчанию и может быть опущен для этих трех команд. См. раздел AUTOTITLE для неинтерактивных --mcp и --skill типов, которые расширяют эти команды до серверов и навыков MCP.

Примечание.

Подключаемый модуль или Marketplace, закрепленный организацией или управляемой политикой MDM (enabledPlugins,), extraKnownMarketplacesне может быть повторно включен, отключен или переназначирован локально — управляемое значение выигрывает для этой записи. Панель /plugin мониторинга помечает эти строки значком Managed и отказывается от конфликтующего переключателя. См . раздел AUTOTITLE.

Спецификация плагина для install команды

ФорматПримерОписание
Маркетплейсplugin@marketplaceПлагин с зарегистрированного маркетплейса
GitHubOWNER/REPOКорень GitHub репозитория
GitHub вложенный каталогOWNER/REPO:PATH/TO/PLUGINПодкаталог в репозитории
URL-адрес Githttps://github.com/o/r.gitЛюбой URL в Git
Местный маршрут
./my-plugin или /abs/pathМестный справочник

copilot plugins install варианты

Помимо установки подключаемого модуля из спецификации, copilot plugins install можно установить отдельный навык из файла, URL-адреса или каталога --skill. Установка навыка не является установкой подключаемого модуля и не проходит через Marketplace— дополнительные сведения о навыках см. в статье Справочник команды GitHub Copilot CLI .

ОпцияОписание
--pluginУстановите подключаемый модуль (по умолчанию).
--skillУстановите навык из локального пути или URL-адреса.
--scope SCOPEДля установки файла или URL-адреса --skill : user (по умолчанию) или project.
project область установки в каталог текущего репозитория .github/skills вместо учетной записи пользователя и применяется только к установке навыков файлов или URL-адресов.
--config-dir=DIRECTORYПуть к каталогу конфигурации. Этот параметр является устаревшим. Вместо этого используйте COPILOT_HOME.

Установка каталога регистрирует его как пользовательский источник навыка, а не копирует его; Установка файла или URL-адреса копирует содержимое навыка в личный или проектный каталог навыков.

Серверы MCP устанавливаются из настроенного политикой реестра, для которого требуется проверка подлинности и интерактивная запись секрета. Используйте представление /mcp панели мониторинга в Интернете, чтобы добавить серверы MCP вместо copilot plugins install.

copilot plugins update варианты

ОпцияОписание
--allОбновление каждого установленного подключаемого модуля

Примечание.

Подключаемые модули с исходным путем в локальном (источнике каталога) marketplace загружаются в реальном каталоге. Изменение одного из них вступает в силу /restart или в новом сеансе без copilot plugin update необходимости.

Сторонние подключаемые модули , установленные из встроенных copilot-plugins и awesome-copilot marketplace, автоматически обновляются в начале каждого сеанса в доверенном рабочем каталоге. Отключите это поведение с параметром autoUpdate (задано falseзначением) или переменной COPILOT_AUTO_UPDATE=false среды. Автоматическое обновление также пропускается по умолчанию в CI. См . раздел AUTOTITLE.

Вы добавили marketplace самостоятельно, чтобы выбрать одно и то же автоматическое обновление сеанса, задав autoUpdate: true запись в параметрах extraKnownMarketplaces пользователя. Эта возможность применяется только к интерактивным сеансам, -p а сеансы SDK и сервера не обновляются автоматически. Он учитывается из собственных параметров пользователя или управляемых параметров (MDM/server), но параметр уровня autoUpdate репозитория принимается и игнорируется— он не может включить или перенаправить автоматическое обновление для Marketplace. При столкновении с тем же именем встроенная первая сторона Marketplace выигрывает, а затем управляемую запись (которая заменяет всю ту же именованную запись пользователя, поэтому управляемая запись без "autoUpdate": true удаления согласия пользователя), а затем собственная запись пользователя. См. параметры репозитория.

В интерактивном режиме /plugin помечает установленный подключаемый модуль или Marketplace, когда более новая версия доступна выше, и предлагает действие обновления с панели мониторинга, чтобы извлечь ее.

copilot plugins marketplace вложенные комманды

Встроенные marketplace по умолчанию поставляются со средой выполнения и не могут быть удалены.

SubcommandОписание
list [--json]Вывод списка всех зарегистрированных marketplace, включая встроенные значения по умолчанию
add SOURCEДобавление Marketplace (owner/repo, owner/repo#refURL-адреса или локального пути)
remove NAME [--force]Удаление Marketplace; --force также удаляет подключаемые модули, полученные из него
browse NAME [--json]Вывод списка подключаемых модулей, предлагаемых каталогом Marketplace
update [NAME] (псевдоним refresh)Обновите каталог подключаемых модулей для одного marketplace или все, если NAME опущен

В интерактивном режиме запустите /plugin marketplace update [NAME] (псевдоним/plugin marketplace refresh) или нажмите клавишу R в представлении /plugin Панели мониторинга Marketplace, чтобы обновить каждый зарегистрированный каталог Marketplace.

plugin.json

Все подключаемые модули состоят из каталога подключаемого модуля, содержащего файл манифеста с именем plugin.json. Для подключаемых модулей агента 1.0 требуется манифест в корневом каталоге подключаемого модуля. Устаревшие подключаемые модули поддерживают альтернативные расположения, перечисленные в расположениях файлов. См . раздел AUTOTITLE.

Copilot CLI поддерживает как устаревший манифест подключаемого модуля, так и манифест подключаемого модуля агента 1.0. Точное $schema значение https://agent-plugins.org/schemas/1.0.0/plugin.schema.json выбирает подключаемый модуль в семантику подключаемого модуля агента 1.0. Манифест без этого значения использует устаревший формат и загружается как раньше.

Поля манифеста подключаемого модуля агента 1.0

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

Допустимы следующие поля:

ПолеТипОбязательныйОписание
$schemaструнаДаЭтот параметр должен содержать значение https://agent-plugins.org/schemas/1.0.0/plugin.schema.json.
nameструнаДаИмя подключаемого модуля. См. ограничения имени.
versionструнаНетСтрока версии. Рекомендуется использовать семантическое управление версиями.
descriptionструнаНетКраткое описание.
authorобъектНетНеобязательные nameполя и email``url строковые поля.
homepageструнаНетДомашняя страница или документация подключаемого модуля.
repositoryструнаНетИсходный репозиторий.
licenseструнаНетИдентификатор лицензии. Рекомендуется использовать идентификатор SPDX.
keywordsстрока[]НетКлючевые слова поиска и обнаружения.
extensionsобъектНетДанные для конкретного клиента, ключом к которым относятся пространство имен обратного домена.

Неизвестные поля верхнего уровня сообщаются и игнорируются. Поля пути компонента, такие как agents, skills, mcpServers``hooksи lspServers не являются полями манифеста агента 1.0.

Ограничения имен

Имя подключаемого модуля агента 1.0 должно:

  • Содержит от 1 до 64 символов.
  • Содержит только строчные буквы ASCII, цифры, дефисы и периоды.
  • Начало и конец буквенно-цифровым символом.
  • Не содержит -- или ...

Components

Подключаемые модули агента 1.0 определяют два переносимых типа компонентов:

  • Навыки в непосредственных skills/ подкаталогах, содержащих SKILL.md файл.
  • Серверы MCP в mcp.json корневом каталоге подключаемого модуля.

Эти расположения исправлены и не могут быть настроены в plugin.json. Корневой каталог mcp.json должен объявляться https://agent-plugins.org/schemas/1.0.0/mcp.schema.json в своем $schema поле. Интерфейс командной строки принимает stdio``streamable-http``sse и имена транспорта MCP.

Для stdio серверов интерфейс командной строки предоставляет PLUGIN_ROOT и PLUGIN_DATA в подпроцессной среде. Он расширяется и ${PLUGIN_DATA} в ${PLUGIN_ROOT} значениях сервераargs, env значениях иcwd. PLUGIN_DATA указывает на постоянный, записываемый каталог для установленного подключаемого модуля.

Подключаемые модули агента 1.0 не определяют переносимых агентов, перехватчиков, команд, правил или серверов LSP. Они остаются клиентом. Данные манифеста, относящиеся к клиенту, относятся к extensionsключу с помощью пространства имен обратного домена. Файлы, относящиеся к клиенту, принадлежат в каталоге верхнего уровня с тем же пространством имен. Клиенты игнорируют пространства имен, которые они не поддерживают.

Copilot CLI считывает компоненты, относящиеся к клиенту, из com.github.copilot каталога:

КомпонентМестонахождение
Пользовательские агентыcom.github.copilot/agents/
Команды слэшcom.github.copilot/commands/
Правилаcom.github.copilot/rules/
Хукиcom.github.copilot/hooks/hooks.json
LSP-серверыcom.github.copilot/lsp.json

Эти расположения применяются только к подключаемым модулям агента 1.0. Устаревшие подключаемые модули продолжают использовать собственные расположения компонентов и поля пути манифеста.

Пример файла подключаемых модулей агента 1.0 plugin.json

JSON
{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "my-dev-tools",
  "description": "React development utilities",
  "version": "1.2.0",
  "author": {
    "name": "Jane Doe",
    "email": "jane@example.com"
  },
  "license": "MIT",
  "keywords": ["react", "frontend"]
}

Устаревшие поля манифеста

Обязательное поле

ПолеТипОписание
nameструнаИмя подключаемого модуля Kebab (только буквы, цифры и дефисы). Не более 64 символов.

Опциональные поля метаданных

ПолеТипОписание
descriptionструнаКраткое описание. Максимум 1024 персонажа.
versionструнаСемантическая версия (например, 1.0.0).
authorобъект
name (обязательно), email (по желанию), url (по необходимости).
homepageструнаURL главной страницы плагина.
repositoryструнаURL репозитория исходного кода.
licenseструнаИдентификатор лицензии (например, MIT).
keywordsстрока[]Ключевые слова поиска.
categoryструнаКатегория плагинов.
tagsстрока[]Дополнительные теги.

Поля пути компонентов

Они указывают CLI, где найти компоненты плагина. Все они необязательны. CLI использует стандартные конвенции, если они опущены.

ПолеТипПо умолчаниюОписание
agentsString | string[]agents/Пути к директориям агентов (.agent.md файлы).
skillsString | string[]skills/Пути к каталогам навыков (SKILL.md файлам).
commandsString | string[]Пути к директориям команд.
hooksСтроковый | объектПуть к файлу конфигурации перехватчиков или объект встроенного перехватчика.
extensions
| строка строки[] | объектПути к каталогам расширений. Используйте { paths: [...], exclusive: true } для подавления встроенных расширений. В манифестах подключаемых модулей агента 1.0 это поле имеет другое значение.
mcpServersСтроковый | объектПуть к файлу конфигурации MCP (например, .mcp.jsonили встроенным определениям сервера).
lspServersСтроковый | объектПуть к файлу конфигурации LSP или встроенным определениям сервера.

Конфигурация сервера LSP

Чтобы включить серверы LSP (Language Server Protocol) в плагин, создайте lsp-config/servers.json файл в каталоге плагинов или укажите путь или встроенный объект с помощью lspServers поля в plugin.json.

Пример lsp-config/servers.json (или встроенный через lspServers ):plugin.json

{
    "lspServers": {
        "my-lsp": {
            "command": "my-language-server",
            "fileExtensions": { ".myext": "mylang" }
        }
    }
}

Для кроссплатформенной поддержки используйте bash и powershell вместо command:

{
    "lspServers": {
        "my-lsp": {
            "bash": "${PLUGIN_ROOT}/scripts/start-lsp.sh",
            "powershell": "${PLUGIN_ROOT}/scripts/start-lsp.ps1",
            "fileExtensions": { ".myext": "mylang" }
        }
    }
}
ПолеТипОбязательныйОписание
commandструна*Исполняемый файл для запуска языкового сервера.
bashструна*Bash script для запуска сервера (Linux/macOS); Выполнено с bash -c SCRIPTпомощью .
powershellструна*скрипт PowerShell для запуска сервера (Windows); выполняется через pwsh -c SCRIPT.
cwdструнаНетРабочий справочник. Абсолютный или относительно конфигурационного файла. Поддерживает ${PLUGIN_ROOT}.
argsстрока[]НетАргументы для передачи command (игнорируются для bash и powershell).
envобъектНетПеременные среды для установки при спавне сервера.
fileExtensionsобъектДаОтображение расширений файлов на языковые идентификаторы (например, { ".ts": "typescript" }).
rootUriструнаНетProject корень относительно корня git (по умолчанию: .).
initializationOptionsanyНетОпции отправляются на сервер в запросе LSP initialize .

(*) По крайней мере один из command, bash, или powershell обязательно. Когда указаны оба bash и powershell, платформенно соответствующий выбор выбирается автоматически (PowerShell на Windows, Bash в других местах).

Используйте ${PLUGIN_ROOT} для ссылки на пути в каталоге плагинов.

marketplace.json

Вы можете создать маркетплейс плагинов — который пользователи смогут использовать для поиска и установки ваших плагинов — создав marketplace.json файл и сохранив его в .github/plugin/ каталоге репозитория. Вы также можете хранить файл marketplace.json в локальной файловой системе. Например, сохранение файла как /PATH/TO/my-marketplace/.github/plugin/marketplace.json позволяет добавить его в CLI с помощью следующей команды:

copilot plugin marketplace add /PATH/TO/my-marketplace

Примечание.

Copilot CLI также ищет marketplace.json файл в .claude-plugin/ каталоге.

Дополнительные сведения см. в разделе Создание маркетплейса плагинов для GitHub Copilot CLI.

Пример файла marketplace.json

JSON
{
  "name": "my-marketplace",
  "owner": {
    "name": "Your Organization",
    "email": "plugins@example.com"
  },
  "metadata": {
    "description": "Curated plugins for our team",
    "version": "1.0.0"
  },
  "plugins": [
    {
      "name": "frontend-design",
      "description": "Create a professional-looking GUI ...",
      "version": "2.1.0",
      "source": "./plugins/frontend-design"
    },
    {
      "name": "security-checks",
      "description": "Check for potential security vulnerabilities ...",
      "version": "1.3.0",
      "source": "./plugins/security-checks"
    }
  ]
}

Примечание.

Значение source поля для каждого плагина — это путь к каталогу плагина относительно корня репозитория. Не обязательно использовать ./ его в начале пути. Например "./plugins/plugin-name" , и "plugins/plugin-name" разрешить в одну и ту же папку.

marketplace.json Поля

Поля верхнего уровня

ПолеТипОбязательныйОписание
nameструнаДаНазвание рынка кебаб-кейс. Максимум 64 персонажа. Точки также принимаются (например, acme.toolsдля подключаемых модулей агента 1.0 ).
ownerобъектДа
{ name, email? } — информация о владельце маркетплейса.
pluginsмассивДаСписок записей плагинов (см. таблицу ниже).
metadataобъектНет{ description?, version?, pluginRoot? }

Поля ввода плагинов (объекты внутри plugins массива)

ПолеТипОбязательныйОписание
nameструнаДаИмя плагина для кебаб-кейса. Максимум 64 персонажа. Точки также принимаются для подключаемых модулей агента 1.0 .
sourceСтроковый | объектДаГде получить плагин (относительный путь GitHub, , или URL).
descriptionструнаНетОписание плагина. Максимум 1024 персонажа.
versionструнаНетВерсия плагина.
authorобъектНет{ name, email?, url? }
homepageструнаНетURL главной страницы плагина.
repositoryструнаНетURL репозитория исходного кода.
licenseструнаНетИдентификатор лицензии.
keywordsстрока[]НетКлючевые слова поиска.
categoryструнаНетКатегория плагинов.
tagsстрока[]НетДополнительные теги.
commandsString | string[]НетПути к директориям команд.
agentsString | string[]НетПути к каталогам агентов.
skillsString | string[]НетПути к каталогам навыков.
hooksСтроковый | объектНетПуть к конфигурации перехватчиков или объекту встроенных перехватчиков.
mcpServersСтроковый | объектНетMCP-серверы активируются при установке плагина. Принимает встроенную карту сервера или путь к файлу конфигурации JSON. Используется, когда источник плагина не поставляет собственную конфигурацию MCP.
lspServersСтроковый | объектНетПуть к конфигурации LSP или встроенным определениям сервера.
strictбулевыйНетКогда true (по умолчанию) плагины должны соответствовать полным правилам схемы и валидации. Когда falseиспользуется расслабленная валидация, что даёт больше гибкости — особенно для прямых установок или устаревших плагинов.

Типы источников подключаемого модуля

source Поле в записи подключаемого GitHub модуля принимает относительную строку пути или объект, описывающий репозиторий или источник URL-адреса Git:

{
    "source": {
        "source": "github",
        "repo": "owner/repo",
        "ref": "v1.0.0",
        "path": "plugins/my-plugin"
    }
}

github url Оба типа источников принимают необязательное sha поле для закрепления установок в точной фиксации в дополнение к (или вместоref) :

{
    "source": {
        "source": "github",
        "repo": "owner/repo",
        "sha": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3",
        "path": "plugins/my-plugin"
    }
}

sha должно быть полной 40-символьной фиксацией SHA. Закрепление к sha воспроизводимым установкам, которые являются иммунными для принудительной отправки или перемещения тегов или ветвей.

Расположения файлов

ЭлементПуть
Установленные плагины
~/.copilot/installed-plugins/MARKETPLACE/PLUGIN-NAME (установлен через маркетплейс) и ~/.copilot/installed-plugins/_direct/SOURCE-ID/ (установлен напрямую)
Кэш маркетплейсаКаталог кэша платформы: ~/.cache/copilot/marketplaces/ (Linux), ~/Library/Caches/copilot/marketplaces/ (macOS). Переобоймо с COPILOT_CACHE_HOMEпомощью .
Манифест плагиновПодключаемые модули агента 1.0: plugin.json в корневом каталоге подключаемого модуля. Устаревшие подключаемые модули: .plugin/plugin.json, plugin.json, .github/plugin/plugin.jsonили .claude-plugin/plugin.json (установлен в этом порядке).
Манифест рынка
marketplace.json, .plugin/marketplace.json, .github/plugin/marketplace.json, или .claude-plugin/marketplace.json (отмечено в таком порядке)
АгентыУстаревшие подключаемые модули: agents/ (по умолчанию, переопределяется в манифесте).
НавыкиПодключаемые модули агента 1.0: skills/ (исправлено). Устаревшие подключаемые модули: skills/ (по умолчанию, переопределяется в манифесте).
Конфигурация крючковУстаревшие подключаемые модули: hooks.json или hooks/hooks.json.
Конфигурация MCPПодключаемые модули агента 1.0: mcp.json. Устаревшие подключаемые модули: .mcp.json, .github/mcp.jsonили поле манифеста mcpServers .
Конфигурация LSPУстаревшие подключаемые модули: lsp.json или .github/lsp.json.
Данные плагиновДля подключаемых модулей агента 1.0 MCP-серверов ${PLUGIN_DATA} (также доступных как ${COPILOT_PLUGIN_DATA} и ${CLAUDE_PLUGIN_DATA}) указывает на постоянный, записываемый каталог, уникальный для каждого установленного подключаемого модуля. Используйте это для специфических для плагинов данных во время выполнения вместо путей внутри каталога кэша установленных плагинов.

Порядок загрузки и приоритет

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

  • Агенты и навыки используют приоритет «первый-найденный-выигрышный».

    Если у вас есть кастомный агент или навык проектного уровня с тем же именем или идентификатором, что и в плагине, который вы устанавливаете, агент или навык в плагине молча игнорируются. Плагин не может отменять конфигурации на уровне проекта или личные настройки. Пользовательские агенты дедуплифицируются с помощью их идентификатора, который выводится из имени файла (например, если файл имеет имя reviewer.agent.md, идентификатор агента — reviewer). Навыки дедуплифицируются по полю имени внутри SKILL.md файла.

  • Серверы MCP используют приоритет последних побед.

    Если вы установите плагин, который определяет MCP-сервер с тем же именем сервера, что и уже установленный вами MCP-сервер, определение плагина имеет приоритет. Вы можете использовать --additional-mcp-config опцию командной строки, чтобы переопределить конфигурацию MCP-сервера с таким же названием, установленную через плагин. Если два или более подключаемых модулей объявляют сервер MCP с одинаковым именем, интерфейс командной строки использует версию из подключаемого модуля, загруженного последней, и отображает предупреждение об именовании каждого предыдущего подключаемого модуля, определяемого им.

  • Встроенные инструменты и агенты всегда присутствуют и не могут быть переопределены пользовательскими компонентами.

Следующая схема иллюстрирует правила порядка загрузки и приоритета.

┌──────────────────────────────────────────────────────────────────┐
│  BUILT-IN - HARDCODED, ALWAYS PRESENT                            │
│  • tools: bash, view, apply_patch, glob, rg, task, ...           │
│  • agents: explore, task, code-review, general-purpose, research │
└────────────────────────┬─────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  CUSTOM AGENTS - FIRST LOADED IS USED (dedup by ID)                 │
  │  1. ~/.copilot/agents/           (user, .github convention)         │
  │  2. <project>/.github/agents/    (project)                          │
  │  3. <parents>/.github/agents/    (inherited, monorepo)              │
  │  4. <project>/.claude/agents/    (project)                          │
  │  5. <parents>/.claude/agents/    (inherited, monorepo)              │
  │  6. PLUGIN: agents/ dirs         (plugin, by install order)         │
  │  7. Remote org/enterprise agents (remote, via API)                  │
  └──────────────────────┬──────────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  AGENT SKILLS - FIRST LOADED IS USED (dedup by name)                │
  │  1. <project>/.github/skills/        (project)                      │
  │  2. <project>/.agents/skills/        (project)                      │
  │  3. <project>/.claude/skills/        (project)                      │
  │  4. <parents>/.github/skills/ etc.   (inherited)                    │
  │  5. ~/.copilot/skills/               (personal-copilot)             │
  │  6. ~/.agents/skills/                (personal-agents)              │
  │  7. PLUGIN: skills/ dirs             (plugin)                       │
  │  8. COPILOT_SKILLS_DIRS env + config (custom)                       │
  │  --- then commands (.claude/commands/), skills override commands ---│
  └──────────────────────┬──────────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  MCP SERVERS - LAST LOADED IS USED (dedup by server name)           │
  │  1. ~/.copilot/mcp-config.json       (lowest priority)              │
  │  2. PLUGIN: MCP configs              (plugins)                      │
  │  3. --additional-mcp-config flag     (highest priority)             │
  └─────────────────────────────────────────────────────────────────────┘

Дополнительные материалы