Hinweis
Copilot-Programmier-Agent befindet sich in der public preview. Änderungen sind vorbehalten. Während der Vorschauphase unterliegt die Verwendung des Features den Lizenzbestimmungen für die Vorabversion von GitHub.
Voraussetzung
Lies vor dem Einrichten eines MCP-Servers für Copilot-Programmier-Agent Model Context Protocol (MCP) and Copilot-Programmier-Agent, um sicherzustellen, dass du mit den Konzepten für MCP-Server und Copilot-Programmier-Agent vertraut bist.
Einführung
Als Repositoryadministrator kannst du MCP-Server für die Verwendung in deinem Repository konfigurieren. Verwende hierfür eine JSON-formatierte Konfiguration, in der die Details der MCP-Server angegeben sind, die du verwenden möchtest. Die JSON-Konfiguration gibst du direkt in den Einstellungen für das Repository auf GitHub.com ein.
Warnung
Nachdem du einen MCP-Server konfiguriert hast, ist Copilot in der Lage, die vom Server zur Verfügung gestellten Tools selbstständig zu nutzen und fragt vor deren Verwendung nicht nach deiner Zustimmung.
Hinzufügen einer MCP-Konfiguration zu deinem Repository
Repositoryadministratoren können MCP-Server mithilfe der folgenden Schritte konfigurieren:
-
Klicke im Abschnitt „Code & automation“ der Randleiste auf Copilot und dann auf Programmier-Agent.
-
Füge deine Konfiguration im Abschnitt MCP configuration hinzu.
In den folgenden Abschnitten dieses Artikels wird erläutert, wie du die JSON-Konfiguration schreibst, die du hier eingeben musst.
-
Klicken Sie auf Speichern.
Deine Konfiguration wird überprüft, um eine ordnungsgemäße Syntax sicherzustellen.
-
Wenn für deinen MCP-Server ein Schlüssel oder Geheimnis erforderlich ist, füge deiner Copilot-Umgebung ein Geheimnis hinzu. In deiner MCP-Konfiguration stehen nur Geheimnisse zur Verfügung, deren Namen das Präfix
COPILOT_MCP_
vorangestellt ist. Siehe Einrichten einer Copilot-Umgebung für den Copilot-Programmier-Agent.
Schreiben einer JSON-Konfiguration für MCP-Server
MCP-Server werden mit einem speziellen JSON-Format konfiguriert. Die JSON-Datei muss ein mcpServers
-Objekt enthalten, wobei der Schlüssel der Name des MCP-Servers (z. B. sentry
) und der Wert ein Objekt mit der Konfiguration für diesen MCP-Server ist.
{ "mcpServers": { "MCP SERVER 1": { "command": "VALUE", "args": [ VALUES ], ... }, "MCP SERVER 2": { "command": "VALUE", "args": [ VALUES ], ... }, ... } }
{
"mcpServers": {
"MCP SERVER 1": {
"command": "VALUE",
"args": [ VALUES ],
...
},
"MCP SERVER 2": {
"command": "VALUE",
"args": [ VALUES ],
...
},
...
}
}
Das Konfigurationsobjekt kann die folgenden Schlüssel enthalten:
Erforderliche Schlüssel für lokale und MCP-Remoteserver
tools
(string[]
): Die Tools vom MCP-Server, die aktiviert werden. In der Dokumentation des Servers oder im entsprechenden Code findest du möglicherweise eine Liste mit Tools. Es wird dringend empfohlen, bestimmte schreibgeschützte Tools zuzulassen, da der Agent diese Tools autonom verwenden kann und du nicht zuerst zur Genehmigung aufgefordert wirst. Du kannst auch alle Tools aktivieren, indem du*
in das Array einschließt.type
(string
): Copilot-Programmier-Agent akzeptiert"local"
,"http"
oder"sse"
.
MCP-spezifische lokale Schlüssel
command
(string
): Erforderlich. Der Befehl, der ausgeführt wird, um den MCP-Server zu starten.args
(string[]
): Erforderlich. Die Argumente, die ancommand
übergeben werden sollen.env
(object
): Optional. Die Umgebungsvariablen, die an den Server übergeben werden. Dieses Objekt muss den Namen der Umgebungsvariablen, die dem MCP-Server zur Verfügung gestellt werden sollen, einem der folgenden Werte zuordnen:- Dem Namen eines GitHub Actions-Geheimnisses, das du konfiguriert hast und das mit
COPILOT_MCP_
beginnt. - Ein Zeichenfolgenwert.
- Dem Namen eines GitHub Actions-Geheimnisses, das du konfiguriert hast und das mit
MCP-spezifische Remoteschlüssel
url
(string
): Erforderlich. Die URL des MCP-Servers.headers
(object
): Optional. Die Header, die an Anforderungen an den Server angefügt werden sollen. Dieses Objekt sollte den Namen der Headerschlüssel einem der folgenden Elemente zuordnen:- Dem Namen eines GitHub Actions-Geheimnisses, das du konfiguriert hast und das mit
COPILOT_MCP_
beginnt und dem$
vorangestellt wird - Ein Zeichenfolgenwert
- Dem Namen eines GitHub Actions-Geheimnisses, das du konfiguriert hast und das mit
Beispielkonfigurationen
Beispiel: Sentry
Der Sentry-MCP-Server gewährt Copilot authentifizierten Zugriff auf Ausnahmen, die in Sentry aufgezeichnet wurden.
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON. { "mcpServers": { "sentry": { "type": "local", "command": "npx", // We can use the $SENTRY_HOST environment variable which is passed to // the server because of the `env` value below. "args": ["@sentry/mcp-server@latest", "--host=$SENTRY_HOST"], "tools": ["get_issue_details", "get_issue_summary"], "env": { // We can specify an environment variable value as a string... "SENTRY_HOST": "http://contoso.sentry.io", // or refer to a GitHub Actions secret with a name starting with // `COPILOT_MCP_` "SENTRY_ACCESS_TOKEN": "COPILOT_MCP_SENTRY_ACCESS_TOKEN" } } } }
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
"mcpServers": {
"sentry": {
"type": "local",
"command": "npx",
// We can use the $SENTRY_HOST environment variable which is passed to
// the server because of the `env` value below.
"args": ["@sentry/mcp-server@latest", "--host=$SENTRY_HOST"],
"tools": ["get_issue_details", "get_issue_summary"],
"env": {
// We can specify an environment variable value as a string...
"SENTRY_HOST": "http://contoso.sentry.io",
// or refer to a GitHub Actions secret with a name starting with
// `COPILOT_MCP_`
"SENTRY_ACCESS_TOKEN": "COPILOT_MCP_SENTRY_ACCESS_TOKEN"
}
}
}
}
Beispiel: Notion
Der Notion-MCP-Server gewährt Copilot authentifizierten Zugriff auf Hinweise und andere Inhalte von Notion.
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON. { "mcpServers": { "notionApi": { "type": "local", "command": "docker", "args": [ "run", "--rm", "-i", "-e", // We can use the $NOTION_API_KEY environment variable which is passed to // the server because of the `env` value below. "OPENAPI_MCP_HEADERS={\"Authorization\": \"Bearer $NOTION_API_KEY\", \"Notion-Version\": \"2022-06-28\"}", "mcp/notion" ], "env": { // The value of the `COPILOT_MCP_NOTION_API_KEY` secret will be passed to the // server command as an environment variable called `NOTION_API_KEY` "NOTION_API_KEY": "COPILOT_MCP_NOTION_API_KEY" }, "tools": ["*"] } } }
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
"mcpServers": {
"notionApi": {
"type": "local",
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
// We can use the $NOTION_API_KEY environment variable which is passed to
// the server because of the `env` value below.
"OPENAPI_MCP_HEADERS={\"Authorization\": \"Bearer $NOTION_API_KEY\", \"Notion-Version\": \"2022-06-28\"}",
"mcp/notion"
],
"env": {
// The value of the `COPILOT_MCP_NOTION_API_KEY` secret will be passed to the
// server command as an environment variable called `NOTION_API_KEY`
"NOTION_API_KEY": "COPILOT_MCP_NOTION_API_KEY"
},
"tools": ["*"]
}
}
}
Beispiel: Azure
Der Azure-MCP-Server stellt eine direkte Verbindung zwischen Copilot und wichtigen Azure-Diensten wie Azure Cosmos DB und der Azure Storage-Plattform her.
Zur Verwendung von Azure MCP mit dem Copilot-Programmier-Agent musst du die Datei copilot-setup-steps.yml
des Repositorys aktualisieren, um einen Workflowschritt für die Anmeldung bei Azure einzubinden.
-
Konfiguriere OIDC in einer Microsoft Entra-Anwendung und lege dabei GitHub als vertrauenswürdig fest. Informationen hierzu findest du unter Verwenden der Azure-Anmeldeaktion mit OpenID Connect.
-
Falls noch nicht geschehen, füge die Actions-Workflowdatei
.github/workflows/copilot-setup-steps.yml
in deinem Repository hinzu. -
Füge dem
copilot-setup-steps
-Workflowauftrag einen Schritt für die Anmeldung bei Azure hinzu.YAML on: workflow_dispatch: permissions: id-token: write contents: read jobs: copilot-setup-steps: runs-on: ubuntu-latest permissions: id-token: write contents: read environment: copilot steps: - name: Azure login uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
on: workflow_dispatch: permissions: id-token: write contents: read jobs: copilot-setup-steps: runs-on: ubuntu-latest permissions: id-token: write contents: read environment: copilot steps: - name: Azure login uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
Mit dieser Konfiguration wird sichergestellt, dass die Aktion
azure/login
bei der Ausführung von Copilot-Programmier-Agent ausgeführt wird. -
Füge in der Copilot-Umgebung deines Repositorys Geheimnisse für deine
AZURE_CLIENT_ID
,AZURE_TENANT_ID
undAZURE_SUBSCRIPTION_ID
hinzu. -
Konfiguriere den Azure-MCP-Server, indem du deiner MCP-Konfiguration ein
azure
-Objekt hinzufügst.
{ "mcpServers": { "Azure": { "type": "local", "command": "npx", "args": [ "-y", "@azure/mcp@latest", "server", "start" ], "tools": ["*"] } } }
{
"mcpServers": {
"Azure": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@azure/mcp@latest",
"server",
"start"
],
"tools": ["*"]
}
}
}
Beispiel: Cloudflare
Der Cloudflare-MCP-Server erstellt Verbindungen zwischen deinen Cloudflare-Diensten, einschließlich Verarbeitungsdokumentation und Datenanalyse.
{ "mcpServers": { "cloudflare": { "type": "sse", "url": "http://docs.mcp.cloudflare.com/sse", "tools": ["*"] } } }
{
"mcpServers": {
"cloudflare": {
"type": "sse",
"url": "http://docs.mcp.cloudflare.com/sse",
"tools": ["*"]
}
}
}
Wiederverwendung deiner MCP-Konfiguration in Visual Studio Code
Wenn du bereits MCP-Server in VS Code konfiguriert hast, kannst du eine ähnliche Konfiguration für den Copilot-Programmier-Agent verwenden.
Je nachdem, wie VS Code konfiguriert ist, findest du deine MCP-Einstellungen in der .vscode/mcp.json
-Datei deines Repositorys oder in der privaten settings.json
-Datei deines Computers.
Zur Anpassung der Konfiguration für Copilot-Programmier-Agent musst du folgende Schritte durchführen:
- Füge für jeden MCP-Server einen
tools
-Schlüssel hinzu, der angibt, welche Tools für Copilot zur Verfügung stehen sollen. - Wenn du
inputs
konfiguriert hast, wechsle zur direkten Verwendung vonenv
. - Wenn du
envFile
konfiguriert hast, wechsle zur direkten Verwendung vonenv
. - Aktualisiere alle Verweise auf
inputs
in deinerargs
-Konfiguration, sodass stattdessen auf Umgebungsvariablen vonenv
verwiesen wird.
Weitere Informationen zu MCP in VS Code findest du in der Dokumentation zu VS Code.
Einrichten einer Copilot-Umgebung für den Copilot-Programmier-Agent
Für einige MCP-Server sind Schlüssel oder Geheimnisse erforderlich. Damit du diese Server im Copilot-Programmier-Agent musst du einer Umgebung Geheimnisse für Copilot hinzufügen. Dadurch wird sichergestellt, dass die Geheimnisse richtig erkannt und an den entsprechenden MCP-Server weitergeleitet werden, den du konfiguriert hast.
Damit du eine Copilot-Umgebung für dein Repository konfigurieren kannst, musst du Repositoryadministrator sein.
-
Navigieren Sie auf GitHub zur Hauptseite des Repositorys.
-
Wähle unter dem Namen deines Repositorys die Option Einstellungen aus. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.
-
Klicke auf der linken Randleiste auf Umgebungen.
-
Klicke auf Neue Umgebung.
-
Gib der neuen Umgebung den Namen
copilot
, und klicke auf Configure environment. -
Klicke unter „Environment secrets“ auf Add environment secret.
-
Gib dem Geheimnis einen Namen, der mit
COPILOT_MCP_
beginnt. Füge den Geheimniswert hinzu, und klicke auf Add secret.
Überprüfen einer MCP-Konfiguration
Nachdem du deine MCP-Konfiguration eingerichtet hast, solltest du sie testen, um sicherzustellen, dass sie ordnungsgemäß eingerichtet ist.
- Erstelle im Repository ein Issue, und weise es Copilot zu.
- Warte einen Moment, bis Copilot eine 👀-Reaktion für das Issue hinterlässt.
- Warte einen Moment, bis Copilot einen Pull Request erstellt, der auf der Zeitachse des Issues angezeigt wird.
- Klicke auf den Pull Request auf der Zeitachse, und warte, bis das Zeitachsenereignis „Copilot started work“ angezeigt wird.
- Klicke auf View session, um die Copilot-Programmier-Agent-Protokolle zu öffnen.
- Klicke oben rechts in der Protokollanzeige auf die Schaltfläche mit den Auslassungspunkten (...) und dann in der Seitenleiste auf Copilot.
- Klicke auf den Schritt Start MCP Servers, um die Protokolle aufzuklappen.
- Wenn deine MCP-Server erfolgreich gestartet wurden, werden die entsprechenden Tools unten in den Protokollen aufgeführt.
Wenn für deine MCP-Server Abhängigkeiten erforderlich sind, die nicht standardmäßig auf dem GitHub Actions-Runner installiert sind, z. B. uv
und pipx
, oder für die spezielle Einrichtungsschritte erforderlich sind, musst du möglicherweise eine copilot-setup-steps.yml
-Actions-Workflowdatei erstellen, um sie zu installieren. Weitere Informationen finden Sie unter Anpassen der Entwicklungsumgebung für den Copilot-Programmier-Agent.
Anpassen des integrierten GitHub-MCP-Servers
Der MCP-Server GitHub ist standardmäßig aktiviert und stellt eine Verbindung zu GitHub mit einem speziell zugewiesenen Token her, das nur Lesezugriff auf das aktuelle Repository hat.
Wenn du Copilot den Zugriff auf Daten außerhalb des aktuellen Repositorys erlauben willst, kannst du ein personal access token mit erweitertem Zugriff vergeben.
-
Erstelle ein personal access token mit den entsprechenden Berechtigungen. Es wird empfohlen, ein fine-grained personal access token zu verwenden, wobei du den Zugriff des Tokens auf schreibgeschützte Berechtigungen für bestimmte Repositorys beschränken kannst. Weitere Informationen zu personal access tokens findest du unter Verwalten deiner persönlichen Zugriffstoken.
-
Klicke im Abschnitt „Code & automation“ der Randleiste auf Copilot und dann auf Programmier-Agent.
-
Füge deine Konfiguration im Abschnitt MCP configuration hinzu.
-
Klicken Sie auf Speichern.
-
Klicke auf der linken Randleiste auf Umgebungen.
-
Klicke auf die
copilot
-Umgebung. -
Klicke unter „Environment secrets“ auf Add environment secret.
-
Rufe das Geheimnis
COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKEN
ab. Gib dein personal access token in das Feld „Value“ ein, und klicke auf Add secret.
Informationen zur Verwendung des MCP-Servers von GitHub in anderen Umgebungen findest du unter Verwenden des GitHub-MCP-Servers.