Примечание.
Второй пилот SDK в настоящее время находится в Technical Preview. Функциональность и доступность могут меняться.
Они Второй пилот SDK могут интегрироваться с MCP-серверами (Model Context Protocol) для расширения возможностей ассистента с помощью внешних инструментов. MCP-серверы работают как отдельные процессы и предоставляют инструменты (функции), которые Copilot могут вызываться во время разговоров.
Что такое MCP?
[Протокол контекста модели (MCP)](https://modelcontextprotocol.io/) — это открытый стандарт для подключения ассистентов ИИ к внешним инструментам и источникам данных. MCP-серверы могут выполнять код или скрипты, запрашиваться в базы данных, получать доступ к файловым системам, вызывать внешние API и многое другое.
Типы серверов
SDK поддерживает два типа MCP-серверов:
| Тип | Описание | Сценарий использования |
|---|
**Local/Stdio** | Работает как подпроцесс, общается через stdin/stdout | Локальные инструменты, доступ к файлам, пользовательские скрипты |
| HTTP/SSE | Удалённый сервер с доступом через HTTP | Общие сервисы, облачные инструменты |
Конфигурация
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient();
const session = await client.createSession({
model: "gpt-5",
mcpServers: {
// Local MCP server (stdio)
"my-local-server": {
type: "local",
command: "node",
args: ["./mcp-server.js"],
env: { DEBUG: "true" },
cwd: "./servers",
tools: ["*"], // "*" = all tools, [] = none, or list specific tools
timeout: 30000,
},
// Remote MCP server (HTTP)
"github": {
type: "http",
url: "https://api.githubcopilot.com/mcp/",
headers: { "Authorization": "Bearer ${TOKEN}" },
tools: ["*"],
},
},
});
Примеры в Python, Go и .NET см. репозиторийgithub/copilot-sdk.
Быстрый старт: сервер файловой системы MCP
Вот полный рабочий пример с использованием официального @modelcontextprotocol/server-filesystem сервера MCP:
import { CopilotClient } from "@github/copilot-sdk";
async function main() {
const client = new CopilotClient();
// Create session with filesystem MCP server
const session = await client.createSession({
mcpServers: {
filesystem: {
type: "local",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
tools: ["*"],
},
},
});
console.log("Session created:", session.sessionId);
// The model can now use filesystem tools
const result = await session.sendAndWait({
prompt: "List the files in the allowed directory",
});
console.log("Response:", result?.data?.content);
await session.disconnect();
await client.stop();
}
main();
Совет
Вы можете использовать любой MCP-сервер из каталога MCP Servers. Популярные варианты включают @modelcontextprotocol/server-github, @modelcontextprotocol/server-sqliteи @modelcontextprotocol/server-puppeteer.
Параметры конфигурации
Локальный/Stdio сервер
| Недвижимость | Тип | Обязательный | Описание |
|---|---|---|---|
type |
`"local"` или `"stdio"` | Нет | Тип сервера (по умолчанию локальный) |
| command | string | Да | Команда для выполнения |
| args | string[] | Да | Аргументы команд |
| env | object | Нет | Переменные среды |
| cwd | string | Нет | Рабочий каталог |
| tools | string[] | Нет | Инструменты для включения (["*"] для всех, [] для никого) |
| timeout | number | Нет | Тайм-аут в миллисекундах |
Удалённый сервер (HTTP/SSE)
| Недвижимость | Тип | Обязательный | Описание |
|---|---|---|---|
type |
`"http"` или `"sse"` | Да | Тип сервера |
| url | string | Да | URL-адрес сервера |
| headers | object | Нет | HTTP-заголовки (например, для аутентификации) |
| tools | string[] | Нет | Инструменты для включения |
| timeout | number | Нет | Тайм-аут в миллисекундах |
Troubleshooting
Инструменты не отображаются или не вызываются
-
**Проверьте, что MCP-сервер запускается правильно** — проверьте, что команда и аргументы правильны, и убедитесь, что серверный процесс не вылетает при запуске. Ищите ошибку в stderr. -
**Проверьте конфигурацию инструментов** — убедитесь, `tools` что установлен или `["*"]` указано конкретные инструменты, которые вам нужны. Пустой массив `[]` означает, что инструменты не включены. -
**Проверьте подключение удалённых серверов** — убедитесь, что URL доступен и проверьте правильность заголовков аутентификации.
Распространенные проблемы
| Проблема | Решение |
|---|---|
| "MCP-сервер не найден" | Убедитесь, что путь команды правильный и выполнимый |
| "Соединение отказано" (HTTP) | Проверьте URL и убедитесь, что сервер работает |
| Ошибки «Тайм-аут» | Увеличьте timeout значение или проверьте производительность сервера |
| Инструменты работают, но не называются | Убедитесь, что ваш запрос явно требует функциональности инструмента |
Дополнительные материалы
-
[Спецификация протокола контекста модели](https://modelcontextprotocol.io/) -
[Каталог серверов MCP](https://github.com/modelcontextprotocol/servers) — серверы сообщества MCP -
[GitHub MCP Server](https://github.com/github/github-mcp-server) — официальный GitHub сервер MCP