Skip to main content

Utilisation de serveurs MCP avec le Kit de développement logiciel (SDK) Copilot

Intégrez des serveurs MCP avec le SDK Copilot pour améliorer les capacités de votre application grâce à des outils externes.

Qui peut utiliser cette fonctionnalité ?

Kit de développement logiciel (SDK) GitHub Copilot est disponible dans tous les forfaits Copilot.

Remarque

SDK Copilot est actuellement en préversion publique. Les fonctionnalités et la disponibilité sont susceptibles de changer.

L’assistant SDK Copilot peut s’intégrer aux serveurs MCP (Model Context Protocol) pour étendre les fonctionnalités de l’assistant à des outils externes. Les serveurs MCP s’exécutent en tant que processus distincts et exposent des outils (fonctions) qui Copilot peuvent appeler pendant les conversations.

Qu’est-ce que MCP ?

          [Le protocole MCP (Model Context Protocol)](https://modelcontextprotocol.io/) est un standard ouvert pour connecter des assistants IA à des outils et sources de données externes. Les serveurs MCP peuvent exécuter du code ou des scripts, interroger des bases de données, accéder aux systèmes de fichiers, appeler des API externes, etc.

Types de serveurs

Le Kit de développement logiciel (SDK) prend en charge deux types de serveurs MCP :

TypeDescriptionCas d’utilisation
Local/StdioS’exécute en tant que sous-processus, communique via stdin/stdoutOutils locaux, accès aux fichiers, scripts personnalisés
HTTP/SSEServeur distant accessible via HTTPServices partagés, outils hébergés dans le cloud

Paramétrage

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

Pour obtenir des exemples dans Python, Go et .NET, consultez le github/copilot-sdk référentiel. Pour Java, consultez le github/copilot-sdk-java référentiel.

Démarrage rapide : serveur MCP du système de fichiers

Voici un exemple de travail complet utilisant le serveur MCP officiel @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();

Conseil

Vous pouvez utiliser n’importe quel serveur MCP à partir du répertoire des serveurs MCP. Les options populaires incluent @modelcontextprotocol/server-github, @modelcontextprotocol/server-sqliteet @modelcontextprotocol/server-puppeteer.

Options de configuration

Serveur Local/Stdio

PropriétéTypeObligatoireDescription
type
          `"local"` ou `"stdio"` | Non | Type de serveur (par défaut en local) |

| command | string | Oui | Commande à exécuter | | args | string[] | Oui | Les arguments de la commande | | env | object | Non | Variables d'environnement | | cwd | string | Non | Répertoire de travail | | tools | string[] | Non | Outils à activer (["*"] pour tous, [] pour aucun) | | timeout | number | Non | Délai d’expiration en millisecondes |

Serveur distant (HTTP/SSE)

PropriétéTypeObligatoireDescription
type
          `"http"` ou `"sse"` | Oui | Type de serveur |

| url | string | Oui | URL du serveur | | headers | object | Non | En-têtes HTTP (par exemple, pour l’authentification) | | tools | string[] | Non | Outils à activer | | timeout | number | Non | Délai d’expiration en millisecondes |

Résolution des problèmes

Les outils ne s’affichent pas ou ne sont pas appelés

  1.        **Vérifiez que le serveur MCP démarre correctement** : vérifiez que la commande et les arguments sont corrects et assurez-vous que le processus du serveur ne se bloque pas au démarrage. Recherchez les messages d’erreur dans stderr.
    
  2.        **Vérifiez la configuration de l'outil** — Assurez-vous que `tools` est défini sur `["*"]` ou qu'il répertorie les outils spécifiques dont vous avez besoin. Un tableau `[]` vide signifie qu’aucun outil n’est activé.
    
  3.        **Vérifiez la connectivité pour les serveurs distants** : vérifiez que l’URL est accessible et vérifiez que les en-têtes d’authentification sont corrects.
    

Problèmes courants

ProblèmeSolution
« Serveur MCP introuvable »Vérifier que le chemin de commande est correct et exécutable
« Connexion refusée » (HTTP)Vérifiez l’URL et vérifiez que le serveur est en cours d’exécution
Erreurs « Délai d’expiration »Augmenter la valeur ou vérifier les performances du timeout serveur
Les outils fonctionnent, mais ne sont pas appelésAssurez-vous que votre invite nécessite clairement la fonctionnalité de l’outil

Lectures complémentaires