Skip to main content

Использование MCP-серверов с Copilot SDK

Интегрируйте MCP-серверы, чтобы Второй пилот SDK расширить возможности вашего приложения с помощью внешних инструментов.

Кто может использовать эту функцию?

GitHub Copilot SDK Доступна со всеми Copilot тарифными планами.

Примечание.

          Второй пилот 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

Инструменты не отображаются или не вызываются

  1.        **Проверьте, что MCP-сервер запускается правильно** — проверьте, что команда и аргументы правильны, и убедитесь, что серверный процесс не вылетает при запуске. Ищите ошибку в stderr.
    
  2.        **Проверьте конфигурацию инструментов** — убедитесь, `tools` что установлен или `["*"]` указано конкретные инструменты, которые вам нужны. Пустой массив `[]` означает, что инструменты не включены.
    
  3.        **Проверьте подключение удалённых серверов** — убедитесь, что 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