Skip to main content

Verwenden von MCP-Servern mit dem Copilot SDK

Integrieren Sie MCP-Server mit Copilot SDK, um die Fähigkeiten Ihrer Anwendung mit externen Tools zu erweitern.

Wer kann dieses Feature verwenden?

GitHub Copilot SDK ist mit allen Copilot Tarifen verfügbar.

Hinweis

          Copilot SDK ist zurzeit in Technische Preview. 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)](https://modelcontextprotocol.io/) 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:

TypBeschreibungAnwendungsfall
          **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.

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

EigentumTypErforderlichBeschreibung
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)

EigentumTypErforderlichBeschreibung
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

  1.        **Ü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.
    
  2.        **Überprüfen Sie die Toolkonfiguration**. Stellen Sie sicher, dass `tools` sie auf `["*"]` die benötigten Tools festgelegt ist oder auflistet. Ein leeres Array `[]` bedeutet, dass keine Tools aktiviert sind.
    
  3.        **Ü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

ThemaLö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-FehlerErhöhen Sie den timeout Wert oder überprüfen Sie die Serverleistung.
Tools funktionieren, werden aber nicht aufgerufenStellen Sie sicher, dass Ihre Eingabeaufforderung die Funktionalität des Tools eindeutig erfordert.

Weiterführende Lektüre

  •         [Modellkontextprotokollspezifikation](https://modelcontextprotocol.io/)
    
  •         [MCP-Serververzeichnis](https://github.com/modelcontextprotocol/servers) – Community-MCP-Server
    
  •         [GitHub MCP Server](https://github.com/github/github-mcp-server) – offizieller GitHub MCP-Server