Skip to main content

Usando servidores MCP com o SDK do Copilot

Integre servidores MCP com o SDK do Copilot para estender os recursos de seu aplicativo com ferramentas externas.

Quem pode usar esse recurso?

SDK do GitHub Copilot está disponível com todos os Copilot planos.

Observação

          SDK do Copilot está atualmente em versão prévia técnica. A funcionalidade e a disponibilidade estão sujeitas a alterações.

O SDK do Copilot pode integrar-se com servidores MCP (Protocolo de Contexto de Modelo) para estender os recursos do assistente com ferramentas externas. Os servidores MCP são executados como processos separados e expõem ferramentas (funções) que Copilot podem invocar durante conversas.

O que é MCP?

          [O PROTOCOLO MCP (Model Context Protocol)](https://modelcontextprotocol.io/) é um padrão aberto para conectar assistentes de IA a ferramentas externas e fontes de dados. Os servidores MCP podem executar scripts ou códigos, consultar bancos de dados, acessar sistemas de arquivos, chamar APIs externas e muito mais.

Tipos de servidores

O SDK dá suporte a dois tipos de servidores MCP:

TipoDescriçãoCaso de uso
          **Local/Stdio** | É executado como um subprocesso, comunica-se por meio de stdin/stdout | Ferramentas locais, acesso a arquivos, scripts personalizados |

| HTTP/SSE | Servidor remoto acessado via HTTP | Serviços compartilhados, ferramentas hospedadas na nuvem |

Configuração

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: ["*"],
        },
    },
});

Para obter exemplos em Python, Go e .NET, consulte o github/copilot-sdk repositório.

Início rápido: servidor MCP do sistema de arquivos

Aqui está um exemplo de trabalho completo usando o servidor MCP oficial @modelcontextprotocol/server-filesystem :

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();

Dica

Você pode usar qualquer servidor MCP do Diretório de Servidores MCP. As opções populares incluem @modelcontextprotocol/server-github, @modelcontextprotocol/server-sqlitee @modelcontextprotocol/server-puppeteer.

Opções de configuração

Servidor Local/Stdio

PropriedadeTipoObrigatórioDescrição
type
          `"local"` ou `"stdio"` | No | Tipo de servidor (padrão é local) |

| command | string | Sim | Comando a ser executado | | args | string[] | Sim | Argumentos de comando | | env | object | No | Variáveis de ambiente | | cwd | string | No | Diretório de trabalho | | tools | string[] | No | Ferramentas para habilitar (["*"] para todos, [] para nenhum) | | timeout | number | No | Tempo limite em milissegundos |

Servidor remoto (HTTP/SSE)

PropriedadeTipoObrigatórioDescrição
type
          `"http"` ou `"sse"` | Sim | Tipo de servidor |

| url | string | Sim | URL do servidor | | headers | object | No | Cabeçalhos HTTP (por exemplo, para autenticação) | | tools | string[] | No | Ferramentas para habilitar | | timeout | number | No | Tempo limite em milissegundos |

Solução de problemas

Ferramentas que não aparecem ou não estão sendo invocadas

  1.        **Verifique se o servidor MCP é iniciado corretamente**— Verifique se o comando e os argumentos estão corretos e verifique se o processo do servidor não falha na inicialização. Procure a saída de erro no stderr.
    
  2.        **Verifique a configuração da ferramenta** — Certifique-se de que `["*"]` está definido para `tools` ou lista as ferramentas específicas de que você precisa. Uma matriz `[]` vazia significa que nenhuma ferramenta está habilitada.
    
  3.        **Verificar a conectividade para servidores remotos** — verifique se a URL está acessível e verifique se os cabeçalhos de autenticação estão corretos.
    

Problemas comuns

QuestãoSolução
"Servidor MCP não encontrado"Verifique se o caminho do comando está correto e executável
"Conexão recusada" (HTTP)Verifique a URL e verifique se o servidor está em execução
Erros de "tempo limite"Aumente o valor do timeout ou verifique o desempenho do servidor
As ferramentas funcionam, mas não são chamadasVerifique se o prompt exige claramente a funcionalidade da ferramenta

Leitura adicional

  •         [Especificação do Protocolo de Contexto do Modelo](https://modelcontextprotocol.io/)
    
  •         [Diretório de servidores MCP](https://github.com/modelcontextprotocol/servers) — servidores MCP da comunidade
    
  •         [Servidor MCP do GitHub](https://github.com/github/github-mcp-server) – servidor MCP oficial GitHub