Hinweis
Copilot SDK ist zurzeit in Öffentliche Vorschau. Funktionalität und Verfügbarkeit können geändert werden.
Die Copilot SDK Integration in MCP-Server (Model Context Protocol) ermöglicht die Erweiterung der Funktionen des Assistenten mit externen Tools. MCP-Server werden als separate Prozesse ausgeführt und stellen Tools (Funktionen) zur Verfügung, die Copilot während Unterhaltungen aufgerufen werden können.
Was ist MCP?
Model Context Protocol (MCP) ist ein offener Standard zum Verbinden von KI-Assistenten mit externen Tools und Datenquellen. MCP-Server können Code oder Skripte ausführen, Datenbanken abfragen, auf Dateisysteme zugreifen, externe APIs aufrufen und mehr.
Servertypen
Das SDK unterstützt zwei Arten von MCP-Servern:
| Typ | Beschreibung | Anwendungsfall |
|---|---|---|
| Local/Stdio | Wird als Teilprozess ausgeführt, kommuniziert über stdin/stdout | Lokale Tools, Dateizugriff, benutzerdefinierte Skripts |
| HTTP/SSE | Remoteserver, auf den über HTTP zugegriffen wird | Gemeinsame Dienste, in der Cloud gehostete Tools |
Konfiguration
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: ["*"],
},
},
});
Beispiele in Python, Go und .NET finden Sie im github/copilot-sdk Repository. Java finden Sie im github/copilot-sdk-java Repository.
Schnellstart: Dateisystem-MCP-Server
Hier ist ein vollständiges Arbeitsbeispiel mit dem offiziellen @modelcontextprotocol/server-filesystem MCP-Server:
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();
Tipp
Sie können jeden MCP-Server aus dem MCP-Serververzeichnis verwenden. Zu den beliebten Optionen gehören @modelcontextprotocol/server-github, @modelcontextprotocol/server-sqliteund @modelcontextprotocol/server-puppeteer.
Konfigurationsoptionen
Lokaler/Stdio-Server
| Eigentum | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type | |||
"local" oder "stdio" | No | Servertyp (Standardmäßig lokal) | |
command | string | Ja | Auszuführende Befehl |
args | string[] | Ja | Befehlsargumente |
env | object | No | Umgebungsvariablen |
cwd | string | No | Arbeitsverzeichnis |
tools | string[] | No | Zu aktivierende Tools (["*"] für alle, [] für keine) |
timeout | number | No | Timeout in Millisekunden |
Remoteserver (HTTP/SSE)
| Eigentum | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type | |||
"http" oder "sse" | Ja | Servertyp | |
url | string | Ja | Server-URL |
headers | object | No | HTTP-Header (z. B. für Authentifizierung) |
tools | string[] | No | Zu aktivierende Tools |
timeout | number | No | Timeout in Millisekunden |
Problembehandlung
Tools werden nicht angezeigt oder nicht aufgerufen
- Überprüfen Sie, ob der MCP-Server ordnungsgemäß gestartet wird. Überprüfen Sie, ob der Befehl und die Argumente korrekt sind, und stellen Sie sicher, dass der Serverprozess beim Start nicht abstürzt. Suchen Sie in „stderr” nach der Fehlerausgabe.
- Überprüfen Sie die Toolkonfiguration. Stellen Sie sicher, dass
toolssie auf["*"]die benötigten Tools festgelegt ist oder auflistet. Ein leeres Array[]bedeutet, dass keine Tools aktiviert sind. - Überprüfen Sie die Konnektivität für Remoteserver– Stellen Sie sicher, dass auf die URL zugegriffen werden kann, und überprüfen Sie, ob Authentifizierungsheader korrekt sind.
Häufig auftretende Probleme
| Thema | Lösung |
|---|---|
| "MCP-Server nicht gefunden" | Überprüfen, ob der Befehlspfad korrekt und ausführbar ist |
| "Verbindung verweigert" (HTTP) | Überprüfen Sie die URL, und stellen Sie sicher, dass der Server ausgeführt wird. |
| Timeout-Fehler | Erhöhen Sie den timeout Wert oder überprüfen Sie die Serverleistung. |
| Tools funktionieren, werden aber nicht aufgerufen | Stellen Sie sicher, dass Ihre Eingabeaufforderung die Funktionalität des Tools eindeutig erfordert. |
Weiterführende Lektüre
- Modellkontextprotokollspezifikation
- MCP-Serververzeichnis – Community-MCP-Server
- GitHub MCP Server – offizieller GitHub MCP-Server