Skip to main content

Das Erweitern des GitHub Copilot Cloud-Agenten mit dem Model Context Protocol (MCP)

Erfahren Sie, wie Sie das Model Context Protocol (MCP) verwenden, um die Fähigkeiten von Copilot Cloudagent zu erweitern.

Voraussetzung

Bevor Sie einen MCP-Server für Copilot Cloudagent einrichten, lesen Sie Model Context Protocol (MCP) und GitHub Copilot Cloud-Agent, um sicherzustellen, dass Sie die Konzepte rund um MCP-Server und Copilot Cloudagent verstehen.

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. Sie geben die JSON-Konfiguration direkt bei den Einstellungen für das Repository GitHub.com ein.

Organisations- und Unternehmensadministratoren können auch MCP-Server als Teil von Benutzerdefinierte Agenten konfigurieren, indem sie YAML-Frontmatter verwenden. Weitere Informationen findest du unter Konfiguration von benutzerdefinierten Agents.

Warnung

Nachdem Sie einen MCP-Server konfiguriert haben, Copilot können Sie die vom Server bereitgestellten Tools autonom verwenden und werden vor der Verwendung nicht mehr um Ihre Genehmigung bitten.

Hinweis

* Copilot Cloudagent unterstützt nur Tools, die von MCP-Servern bereitgestellt werden. Ressourcen oder Prompts werden nicht unterstützt. * Copilot Cloudagent unterstützt derzeit keine Remote-MCP-Server, die OAuth für Authentifizierung und Autorisierung nutzen.

Hinzufügen einer MCP-Konfiguration zu deinem Repository

Repositoryadministratoren können MCP-Server mithilfe der folgenden Schritte konfigurieren:

  1. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

  2. Klicke unter dem Repositorynamen auf Settings. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  3. Klicken Sie im Abschnitt "Code & Automatisierung" der Randleiste auf Copilot dann Cloudagent.

  4. 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.

  5. Klicke auf Speichern.

    Deine Konfiguration wird überprüft, um eine ordnungsgemäße Syntax sicherzustellen.

  6. Wenn ihr MCP-Server eine Variable, einen Schlüssel oder einen geheimen Schlüssel benötigt, fügen Sie Ihrer Copilot Umgebung eine Variable oder einen geheimen Schlüssel hinzu. Nur Variablen und Geheimnisse mit Namen, die mit COPILOT_MCP_ beginnen, stehen für Ihre MCP-Konfiguration zur Verfügung. Siehe Einrichten einer Copilot Umgebung für Copilot Cloudagent.

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.

JSON
{
  "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 remote MCP-Server**

* tools (string[]): Die zu aktivierenden Tools des MCP-Servers. 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 Cloudagent akzeptiert "local", , "stdio", "http"oder "sse".

          **Lokale MCP-spezifische Schlüssel**

* command (string): Erforderlich. Der Befehl, der ausgeführt wird, um den MCP-Server zu starten. * args (string[]): Erforderlich. Die Argumente, die an command übergeben werden sollen. * env (object): Optional (freiwillig). Die Umgebungsvariablen, die an den Server übergeben werden. Dieses Objekt sollte den Namen der Umgebungsvariablen abbilden, die Ihrem MCP-Server zur Verfügung gestellt werden soll, auf eines der folgenden:

  • Ein Ersetzungsverweis auf ein Geheimnis oder eine Variable in Ihrer Copilot Umgebung, wie zum Beispiel $COPILOT_MCP_API_KEY oder ${COPILOT_MCP_API_KEY}. Referenzierte Namen müssen mit COPILOT_MCP_ beginnen.

  • Ein Literalwert einer Zeichenkette.

          **Remote MCP-spezifische Schlüssel**
    
  •         `url` (`string`): Erforderlich. Die URL des MCP-Servers.
    
  •         `headers` (`object`): Optional (freiwillig). Die Header, die an Anforderungen an den Server angefügt werden sollen. Dieses Objekt sollte den Namen der Kopfzeilenschlüssel einem der folgenden Zuordnen:
    
    • Ein Ersetzungsverweis auf ein Geheimnis oder eine Variable in Ihrer Copilot Umgebung, wie zum Beispiel $COPILOT_MCP_API_KEY oder ${COPILOT_MCP_API_KEY}. Referenzierte Namen müssen mit COPILOT_MCP_ beginnen.
    • Ein Literalwert einer Zeichenkette.

Beachten Sie, dass alle string und string[] Felder, mit Ausnahme von tools & type, die Ersetzung durch eine von Ihnen in Ihrer Copilot Umgebung konfigurierte Variable oder geheime Information unterstützen.

Variablenersetzung

Die folgenden Syntaxmuster werden für referenzierende Umgebungsvariablen unterstützt, die in Ihrer Copilot Umgebung konfiguriert sind:

SyntaxBeispiel
$VAR$COPILOT_MCP_API_KEY
${VAR}${COPILOT_MCP_API_KEY}
${VAR:-default}${COPILOT_MCP_API_KEY:-fallback_value}

Beispielkonfigurationen

Die folgenden Beispiele zeigen MCP-Serverkonfigurationen für verschiedene Anbieter.

  •         [Sentry](#example-sentry)
    
  •         [Notion](#example-notion)
    
  •         [Azure](#example-azure)
    
  •         [Cloudflare](#example-cloudflare)
    
  •         [Azure DevOps](#example-azure-devops)
    
  •         [Atlassian](#example-atlassian)
    

Beispiel: Sentry

Der Sentry MCP-Server gewährt Copilot authentifizierten Zugriff auf ausnahmen, die in Sentry aufgezeichnet wurden.

JavaScript
// 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": "https://contoso.sentry.io",
        // or refer to a variable or secret in your Copilot environment
        // 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 Notizen und andere Inhalte von Notion.

JavaScript
// 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

Das Microsoft MCP-Repository enthält den Azure MCP-Server, der es Copilot ermöglicht, Ihre Azure spezifischen Dateien und Azure Ressourcen in Ihrem Abonnement zu verstehen, wenn Codeänderungen vorgenommen werden.

Wenn Sie Ihr Repository automatisch mit einer copilot-setup-steps.yml-Datei konfigurieren möchten, um sich bei Azure zu authentifizieren, sowie geheime Schlüssel für die Authentifizierung, klonen Sie das Repository lokal, und führen Sie dann die Azure Developer CLI des Befehls azd cloud-agent config im Stammverzeichnis des Repositorys aus.

Nachdem Sie den Befehl ausgeführt und die erstellte Pullanforderung zusammengeführt haben, können Sie die MCP-Konfiguration zu Ihrem Repository hinzufügen.

JSON
 {
   "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.

JSON
{
  "mcpServers": {
    "cloudflare": {
      "type": "sse",
      "url": "https://docs.mcp.cloudflare.com/sse",
      "tools": ["*"]
    }
  }
}

Beispiel: Azure DevOps

Der Azure DevOps MCP-Server erstellt eine nahtlose Verbindung zwischen Copilot und Ihren Azure DevOps-Diensten, einschließlich Arbeitsaufgaben, Pipelines oder Dokumentationen.

Um den Azure DevOps MCP-Server mit Copilot Cloudagent zu verwenden, müssen Sie die copilot-setup-steps.yml Datei des Repositorys aktualisieren, um einen Azure Anmeldeworkflowschritt einzuschließen.

  1. Konfigurieren Sie OIDC in einer Microsoft Entra-Anwendung, indem Sie GitHub vertrauen. Weitere Informationen finden Sie unter Use the Azure Login action with OpenID Connect.

  2. Richten Sie den Zugriff auf die Azure DevOps-Organisation und -Projekte für die Anwendungsidentität ein. Weitere Informationen findest du unter Hinzufügen von Organisationsbenutzern und Verwalten des Zugriffs.

  3. Falls noch nicht geschehen, füge die Actions-Workflowdatei .github/workflows/copilot-setup-steps.yml in deinem Repository hinzu.

  4. Fügen Sie dem Workflowauftrag copilot-setup-steps einen Azure-Anmeldeschritt hinzu.

    YAML
    # Dieser Workflow verwendet Aktionen, die nicht von GitHub zertifiziert sind.
    # Sie werden von einem Drittanbieter bereitgestellt und unterliegen
    # separaten Nutzungsbedingungen, Datenschutzbestimmungen und Support
    # Onlinedokumentation.
    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 }}
              allow-no-subscriptions: true
    

    Diese Konfiguration stellt sicher, dass die azure/login-Aktion ausgeführt wird, wenn Copilot Cloudagent ausgeführt wird.

  5. Fügen Sie in der Copilot-Umgebung Ihres Repositorys Geheimnisse für Ihre AZURE_CLIENT_ID und AZURE_TENANT_ID hinzu.

  6. Konfigurieren Sie den Azure DevOps MCP-Server, indem Sie Ihrer MCP-Konfiguration ein ado-Objekt hinzufügen, indem Sie die definierten Tools spezifizieren, die Copilot Cloudagent verwenden soll.

JSON
{
  "mcpServers": {
    "ado": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "@azure-devops/mcp", "<your-azure-devops-organization>", "-a", "azcli"],
      "tools": ["wit_get_work_item", "wit_get_work_items_batch_by_ids", ...]
    }
  }
}

Beispiel: Atlassian

Der Atlassian MCP-Server gewährt Copilot authentifizierten Zugriff auf Ihre Atlassian-Apps, einschließlich Jira, Compass und Confluence.

Weitere Informationen zur Authentifizierung auf dem Atlassian MCP-Server mithilfe eines API-Schlüssels finden Sie unter Konfigurieren der Authentifizierung über API-Token in der Atlassian-Dokumentation.

JavaScript
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
  "mcpServers": {
    "atlassian-rovo-mcp": {
      "command": "npx",
      "type": "local",
      "tools": ["*"],
      "args": [
        "mcp-remote@latest",
        "https://mcp.atlassian.com/v1/mcp",
        // We can use the $ATLASSIAN_API_KEY environment variable which is passed
        // to the server because of the `env` value below.
        "--header",
        "Authorization: Basic $ATLASSIAN_API_KEY"
      ],
      "env": {
        // The value of the `COPILOT_MCP_ATLASSIAN_API_KEY` secret will be passed
        // to the server command as an environment variable
        // called `ATLASSIAN_API_KEY`.
        "ATLASSIAN_API_KEY": "$COPILOT_MCP_ATLASSIAN_API_KEY"
      }
    }
  }
}

Wiederverwenden Ihrer MCP-Konfiguration von Visual Studio Code

Wenn Sie MCP-Server bereits in VS Code konfiguriert haben, können Sie eine ähnliche Konfiguration für Copilot Cloudagent nutzen.

Je nachdem, wie VS Code sie konfiguriert ist, können Sie möglicherweise Ihre MCP-Einstellungen in der Datei Ihres Repositorys .vscode/mcp.json oder in der privaten settings.json Datei Ihres Computers finden.

Um die Konfiguration für Copilot Cloudagent anzupassen, müssen Sie:

  1. Fügen Sie einen tools Schlüssel für jeden MCP-Server hinzu, um anzugeben, welche Tools für Copilot verfügbar sein werden.
  2. Wenn du inputs konfiguriert hast, wechsle zur direkten Verwendung von env.
  3. Wenn du envFile konfiguriert hast, wechsle zur direkten Verwendung von env.
  4. Aktualisiere alle Verweise auf inputs in deiner args-Konfiguration, sodass stattdessen auf Umgebungsvariablen von env verwiesen wird.

Weitere Informationen zu MCP finden Sie in VS Codeden VS Code Dokumentationen.

Einrichten einer Copilot Umgebung für Copilot Cloudagent

Für einige MCP-Server sind Schlüssel oder Geheimnisse erforderlich. Um diese Server in Copilot Cloudagent zu nutzen zu können, können Sie einer Umgebung für Copilot geheime Schlüssel hinzufügen. Dadurch wird sichergestellt, dass die Geheimnisse richtig erkannt und an den entsprechenden MCP-Server weitergeleitet werden, den du konfiguriert hast.

Sie müssen ein Repositoryadministrator sein, um eine Copilot Umgebung für Ihr Repository zu konfigurieren.

  1. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

  2. Klicke unter dem Repositorynamen auf Settings. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  3. Klicke auf der linken Randleiste auf Umgebungen.

  4. Klicke auf Neue Umgebung.

  5. Gib der neuen Umgebung den Namen copilot, und klicke auf Configure environment.

  6. Klicke unter „Environment secrets“ auf Add environment secret.

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

  1. Erstellen Sie ein Problem im Repository, und weisen Sie es dann zu Copilot.
  2. Warten Sie einige Sekunden, und Copilot wird eine 👀-Reaktion auf den Issue hinterlassen.
  3. Warten Sie einige weitere Sekunden, und Copilot wird einen Pull Request erstellen, der in der Timeline des Issues angezeigt wird.
  4. Klicke auf den Pull Request auf der Zeitachse, und warte, bis das Zeitachsenereignis „Copilot started work“ angezeigt wird.
  5. Klicken Sie auf "Sitzung anzeigen" , um die Copilot Cloudagent Protokolle zu öffnen.
  6. Klicken Sie im Protokollanzeiger oben rechts auf die Schaltfläche mit den Auslassungspunkten (...) und dann auf Copilot in der Randleiste.
  7. Klicke auf den Schritt Start MCP Servers, um die Protokolle aufzuklappen.
  8. Wenn deine MCP-Server erfolgreich gestartet wurden, werden die entsprechenden Tools unten in den Protokollen aufgeführt.

Wenn für Ihre MCP-Server Abhängigkeiten erforderlich sind, die standardmäßig nicht auf dem GitHub Actions Runner installiert sind, z. B. uv und pipx, oder für die spezielle Setupschritte erforderlich sind, müssen Sie möglicherweise eine copilot-setup-steps.yml Actions-Workflowdatei erstellen, um sie zu installieren. Weitere Informationen findest du unter Anpassen der Entwicklungsumgebung für GitHub Copilot Cloud-Agent.

Anpassen des integrierten MCP-Servers GitHub

Der GitHub MCP-Server ist standardmäßig aktiviert und verbindet sich mit GitHub durch einen speziell bereichsbezogenen Token, der lediglich einen schreibgeschützten Zugriff auf das aktuelle Repository bereitstellt.

Wenn Sie Copilot den Zugriff auf Daten außerhalb des aktuellen Repositories erlauben möchten, können Sie ihm einen personal access token mit breiterem Zugang gewähren.

  1. Erstellen Sie eine personal access token mit den entsprechenden Berechtigungen. Wir empfehlen die Verwendung eines fine-grained personal access token, mit dem Sie den Zugriff des Tokens auf schreibgeschützte Berechtigungen für bestimmte Repositories beschränken können. Weitere Informationen personal access tokensfinden Sie unter Verwalten deiner persönlichen Zugriffstoken.

  2. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

  3. Klicke unter dem Repositorynamen auf Settings. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  4. Klicken Sie im Abschnitt "Code & Automatisierung" der Randleiste auf Copilot dann Cloudagent.

  5. Füge deine Konfiguration im Abschnitt MCP configuration hinzu. Sie können beispielsweise Folgendes hinzufügen:

    JavaScript
     // If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
     {
       "mcpServers": {
         "github-mcp-server": {
           "type": "http",
           // Remove "/readonly" to enable wider access to all tools.
           // Then, use the "X-MCP-Toolsets" header to specify which toolsets you'd like to include.
           // Use the "tools" field to select individual tools from the toolsets.
           "url": "https://api.githubcopilot.com/mcp/readonly",
           "tools": ["*"],
           "headers": {
             "X-MCP-Toolsets": "repos,issues,users,pull_requests,code_security,secret_protection,actions,web_search"
           }
         }
       }
     }
    

    Weitere Informationen zu Toolsets finden Sie in der README in der Dokumentation zum GitHub Remote MCP Server.

  6. Klicke auf Speichern.

  7. Klicke auf der linken Randleiste auf Umgebungen.

  8. Klicke auf die copilot-Umgebung.

  9. Klicke unter „Environment secrets“ auf Add environment secret.

  10. Rufen Sie den geheimen COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKENSchlüssel auf, geben Sie Ihr personal access token in das Feld "Wert" ein, und klicken Sie dann auf "Geheimer Schlüssel hinzufügen".

Informationen zur Verwendung des GitHub MCP-Servers in anderen Umgebungen finden Sie unter Verwenden des GitHub MCP-Servers in Ihrer IDE.

Nächste Schritte

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers)
    
  •         [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-custom-agents)
    
  •         [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-environment)
    
  •         [AUTOTITLE](/copilot/customizing-copilot/extending-copilot-chat-with-mcp)