Remarque
Kit de développement logiciel (SDK) Copilot est actuellement en préversion technique. Les fonctionnalités et la disponibilité sont susceptibles de changer.
L’assistant Kit de développement logiciel (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 :
| Type | Description | Cas d’utilisation |
|---|
**Local/Stdio** | S’exécute en tant que sous-processus, communique via stdin/stdout | Outils locaux, accès aux fichiers, scripts personnalisés |
| HTTP/SSE | Serveur distant accessible via HTTP | Services 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.
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é | Type | Obligatoire | Description |
|---|---|---|---|
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é | Type | Obligatoire | Description |
|---|---|---|---|
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
-
**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 la sortie d’erreur dans stderr. -
**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é. -
**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ème | Solution |
|---|---|
| « 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és | Assurez-vous que votre invite nécessite clairement la fonctionnalité de l’outil |
Lectures complémentaires
-
[Spécification du protocole de contexte de modèle](https://modelcontextprotocol.io/) -
[Répertoire des serveurs MCP](https://github.com/modelcontextprotocol/servers) : serveurs MCP de la communauté -
[Serveur MCP GitHub](https://github.com/github/github-mcp-server) : serveur MCP officiel GitHub