Zum Hauptinhalt springen

VS Code mit dem Casdoor MCP-Server verbinden

Dieser Leitfaden erklärt, wie Sie GitHub Copilot in VS Code mit dem MCP-Server von Casdoor oder einem MCP-Server hinter dem Casdoor MCP-Gateway verbinden, damit Copilot im Agent-Modus dessen Tools aufrufen kann.


Lernziele​

  • Lassen Sie VS Code sich bei Casdoor identifizieren, ohne eine manuell erstellte Anwendung.
  • Fügen Sie den MCP-Server zu mcp.json hinzu.
  • Melden Sie sich an, prüfen Sie die Tools und melden Sie sich ab.

Voraussetzungen​

  • Eine laufende Casdoor-Instanz. Verwenden Sie HTTPS in der Produktion.
  • VS Code mit GitHub Copilot
  • Globaler Administratorzugriff auf die Casdoor-Admin-Konsole

Über die Verbindung​

VS Code stellt Verbindungen zu Remote-MCP-Servern über HTTP her und führt den OAuth 2.0 Authorization Code Flow mit PKCE selbst durch. Wenn ein MCP-Server mit HTTP 401 antwortet, liest VS Code die Metadaten der geschützten Ressource des Servers, findet Casdoor als seinen Autorisierungsserver und erhält eine Client-ID auf die erste funktionierende Weise:

  1. Eine Client-ID in mcp.json: eine Anwendung, die Sie in Casdoor erstellen. Siehe Verwendung einer selbst erstellten Anwendung.
  2. Ein Client-ID-Metadaten-Dokument (CIMD): VS Code verwendet die URL eines Dokuments, das es veröffentlicht (https://vscode.dev/oauth/client-metadata.json), als seine Client-ID. Casdoor liest das Dokument und benötigt keine Registrierung.
  3. Dynamische Client-Registrierung (DCR): VS Code registriert sich über den Registrierungs-Endpunkt von Casdoor.

Das Dokument von VS Code listet zwei Redirect-URIs auf: http://127.0.0.1:33418/ für die Desktop-App und https://vscode.dev/redirect für VS Code for the Web. Siehe MCP-Entwicklerleitfaden in der VS Code-Dokumentation.

VS Code in Casdoor akzeptieren​

CIMD und DCR werden beide durch Enable dynamic client registration einer Organisation gesteuert.

  1. Gehen Sie in der Casdoor Admin Console zu User Management > Organizations und öffnen Sie die Organisation, deren Benutzer sich bei VS Code anmelden: built-in für den Casdoor MCP-Server oder die Organisation des Servers für einen Server hinter dem MCP-Gateway.
  2. Aktivieren Sie Enable dynamic client registration.
  3. Speichern Sie die Organisation.

Bei der ersten Anmeldung erstellt Casdoor eine Anwendung mit der Client-ID https://vscode.dev/oauth/client-metadata.json, einem Namen, der mit cimd_ beginnt, und dem Tag cimd. Alle Organisationen teilen sich diese eine Anwendung. Siehe Clients akzeptieren, die durch eine Metadaten-Dokument-URL identifiziert werden.

Den MCP-Server zu VS Code hinzufügen​

  1. Öffnen Sie die Command Palette und führen Sie MCP: Open User Configuration für alle Workspaces aus, oder erstellen Sie .vscode/mcp.json in einem Workspace.

  2. Fügen Sie den Server hinzu. Ersetzen Sie your-casdoor.com durch die Domain Ihrer Casdoor-Instanz.

    Für den MCP-Server von Casdoor:

    {
    "servers": {
    "casdoor": {
    "type": "http",
    "url": "https://your-casdoor.com/api/mcp"
    }
    }
    }

    Für einen Server hinter dem MCP-Gateway verwenden Sie die Gateway-URL https://your-casdoor.com/api/server/<organization>/<server-name>:

    {
    "servers": {
    "acme-tools": {
    "type": "http",
    "url": "https://your-casdoor.com/api/server/acme/tools"
    }
    }
    }
  3. Speichern Sie die Datei. VS Code zeigt ein Start CodeLens über dem Server an. Wählen Sie es aus.

Anmelden​

  1. VS Code fragt, ob der Server sich bei Casdoor anmelden darf. Wählen Sie Allow.
  2. Ihr Browser öffnet die Casdoor-Anmeldeseite. Melden Sie sich an.
  3. Wenn Casdoor einen Zustimmungsbildschirm anzeigt, klicken Sie auf Allow.
  4. Der Browser leitet Sie zurück zu VS Code, und der Server startet.

Ergebnis überprüfen​

  1. Öffnen Sie die Chat-Ansicht und wechseln Sie zum Agent-Modus.
  2. Wählen Sie die Tools-Schaltfläche und prüfen Sie, dass die Tools des Servers aufgelistet sind.
  3. Bitten Sie Copilot, sie zu verwenden, zum Beispiel "List all applications in Casdoor".

Um den Client auf der Casdoor-Seite zu überprüfen, öffnen Sie Identity > Applications und finden Sie die cimd_ Anwendung, deren Client-ID https://vscode.dev/oauth/client-metadata.json ist, oder öffnen Sie Tokens und finden Sie das Token Ihres Benutzers.

Verwendung einer selbst erstellten Anwendung​

Wenn Sie die dynamische Client-Registrierung nicht aktivieren möchten, erstellen Sie den Client selbst:

  1. Gehen Sie in der Casdoor Admin Console zu Identity > Applications und fügen Sie eine Anwendung in der Organisation Ihrer Benutzer hinzu, zum Beispiel vscode-mcp.

  2. Fügen Sie http://127.0.0.1:33418/ und https://vscode.dev/redirect zu Redirect URLs hinzu.

  3. Speichern Sie die Anwendung und kopieren Sie ihre Client ID.

  4. Setzen Sie die Client-ID in mcp.json:

    {
    "servers": {
    "casdoor": {
    "type": "http",
    "url": "https://your-casdoor.com/api/mcp",
    "oauth": {
    "clientId": "<client-id>"
    }
    }
    }
    }
  5. Wenn die Anwendung ein Client-Secret benötigt, wählen Sie das Set Client Secret CodeLens über dem Server aus und fügen Sie das Client Secret ein. VS Code speichert es in seinem Secret Storage, nicht in mcp.json.

Abmelden​

  • Um sich abzumelden, öffnen Sie das Accounts-Menü unten in der Activity Bar, wählen Sie das Casdoor-Konto aus und wählen Sie Sign Out.
  • Um zu verhindern, dass VS Code einen Client vergisst, den es über DCR registriert hat, führen Sie Authentication: Remove Dynamic Authentication Providers aus.
  • Um den Client auf der Casdoor-Seite zu sperren, löschen Sie dessen Tokens auf der Seite Tokens.

Fehlerbehebung​

Casdoor meldet eine Abweichung bei der Weiterleitungs-URL​

VS Code lauscht auf Port 33418 für den Callback. Wenn ein anderer Prozess diesen Port verwendet, stimmt die Redirect URI nicht mehr überein. Geben Sie den Port frei und versuchen Sie es erneut.

Casdoor lehnt das Client-ID-Metadaten-Dokument ab​

Die Fehlermeldung "client ID metadata documents are not accepted" bedeutet, dass Enable dynamic client registration für die Organisation deaktiviert ist. Siehe Accept VS Code in Casdoor. Casdoor muss auch über das Internet https://vscode.dev erreichen können.

VS Code fragt nach einer Client ID​

VS Code stellt diese Frage, wenn es weder CIMD noch DCR verwenden kann. Aktivieren Sie Enable dynamic client registration oder geben Sie die Client ID einer Anwendung ein, die Sie erstellt haben.

Das Gateway antwortet mit 401 nach der Anmeldung​

Siehe Troubleshooting im MCP-Gateway-Handbuch.

Siehe auch​