GitHub Enterprise MCP Server
Ein MCP-Server (Model Context Protocol) zur Integration mit der GitHub Enterprise API. Dieser Server bietet eine MCP-Schnittstelle für den einfachen Zugriff auf Repository-Informationen, Probleme, PRs und mehr von GitHub Enterprise in Cursor.
Kompatibilität
Dieses Projekt ist in erster Linie für GitHub Enterprise Server-Umgebungen konzipiert, funktioniert aber auch mit:
- GitHub.com
- GitHub Enterprise Cloud
Hinweis : Einige unternehmensspezifische Funktionen (wie Lizenzinformationen und Unternehmensstatistiken) funktionieren nicht mit GitHub.com oder GitHub Enterprise Cloud.
Hauptmerkmale
- Abrufen der Repository-Liste von GitHub Enterprise-Instanzen
- Erhalten Sie detaillierte Repository-Informationen
- Repository-Zweige auflisten
- Datei- und Verzeichnisinhalte anzeigen
- Probleme und Pull Requests verwalten
- Repository-Verwaltung (Erstellen, Aktualisieren, Löschen)
- Verwaltung von GitHub Actions-Workflows
- Benutzerverwaltung (Benutzer auflisten, erstellen, aktualisieren, löschen, sperren/entsperren)
- Zugriff auf Unternehmensstatistiken
- Verbesserte Fehlerbehandlung und benutzerfreundliche Antwortformatierung
Erste Schritte
Voraussetzungen
- Node.js 18 oder höher
- Zugriff auf eine GitHub Enterprise-Instanz
- Persönlicher Zugriffstoken (PAT)
Docker-Installation und -Einrichtung
Option 1: Ausführen mit Docker
- Erstellen Sie das Docker-Image:
- Führen Sie den Docker-Container mit Umgebungsvariablen aus:
Hinweis : Das Dockerfile ist standardmäßig für die Ausführung mit
--transport http
konfiguriert. Falls Sie dies ändern möchten, können Sie den folgenden Befehl überschreiben:
Option 2: Verwenden von Docker Compose
- Erstellen Sie im Projektstammverzeichnis eine
.env
Datei mit den erforderlichen Umgebungsvariablen: - Starten Sie den Container mit Docker Compose:
- Überprüfen Sie die Protokolle:
- Stoppen Sie den Container:
Installation und Einrichtung
Lokale Entwicklung (unter Verwendung des Parallelmodus)
Diese Methode wird für die aktive Entwicklung mit automatischer Neukompilierung und Serverneustarts empfohlen:
- Klonen Sie das Repository und installieren Sie die erforderlichen Pakete:
- Führen Sie den Entwicklungsserver aus:Dies wird:
- TypeScript-Code automatisch kompilieren, wenn sich Dateien ändern
- Starten Sie den Server neu, wenn kompilierte Dateien aktualisiert werden
- Führen Sie den Server im HTTP-Modus für URL-basierte Verbindungen aus
- Stellen Sie im URL-Modus eine Verbindung zum Cursor her, wie unten beschrieben
Installation und Einrichtung für die Produktion
Option 1: Verwenden des URL-Modus (empfohlen für die lokale Entwicklung)
Diese Methode ist die stabilste und wird für die lokale Entwicklung oder Tests empfohlen:
- Klonen Sie das Repository und installieren Sie die erforderlichen Pakete:
- Erstellen Sie das Projekt:
- Führen Sie den Server aus:
- Stellen Sie im URL-Modus eine Verbindung zum Cursor her:
- Fügen Sie der Datei
.cursor/mcp.json
Ihres Cursors Folgendes hinzu:
- Fügen Sie der Datei
Option 2: Als globalen Befehl installieren (npm-Link)
Diese Methode ist für die lokale Entwicklung nützlich:
Option 3: Verwenden von npx (wenn das Paket veröffentlicht ist)
Wenn das Paket im öffentlichen npm-Register veröffentlicht wird:
Integration mit KI-Tools
Claude Desktop
Fügen Sie Ihrer claude_desktop_config.json
Folgendes hinzu:
Ersetzen Sie YOUR_GITHUB_TOKEN
und YOUR_GITHUB_ENTERPRISE_URL
durch Ihre tatsächlichen Werte.
Cursor
Empfohlen: URL-Modus (am stabilsten)
Für den zuverlässigsten Betrieb im Cursor wird die Verwendung des URL-Modus empfohlen:
- Starten Sie den Server in einem separaten Terminalfenster:
- Konfigurieren Sie die MCP-Einstellungen des Cursors:
- Öffnen Sie Cursor und gehen Sie zu Einstellungen
- Navigieren Sie zu AI > MCP-Server
- Bearbeiten Sie Ihre
.cursor/mcp.json
-Datei:
- Starten Sie den Cursor neu, um die Änderungen zu übernehmen
Alternative: Befehlsmodus
Alternativ können Sie Cursor für die Verwendung des Befehlsmodus konfigurieren, obwohl der URL-Modus zuverlässiger ist:
- Öffnen Sie Cursor und gehen Sie zu Einstellungen
- Navigieren Sie zu AI > MCP-Server
- Klicken Sie auf MCP-Server hinzufügen
- Geben Sie die folgenden Details ein:
- Name : GitHub Enterprise
- Befehl :
npx
- Argumente :
@ddukbg/github-enterprise-mcp
- Umgebungsvariablen :
GITHUB_ENTERPRISE_URL
: Ihre GitHub Enterprise API-URLGITHUB_TOKEN
: Ihr persönlicher GitHub-Zugriffstoken
Alternativ können Sie Ihre .cursor/mcp.json
Datei manuell bearbeiten, um Folgendes einzuschließen:
Sprachkonfiguration
Dieser MCP-Server unterstützt sowohl Englisch als auch Koreanisch. Sie können die Sprache wie folgt konfigurieren:
Umgebungsvariablen
Befehlszeilenargumente
Die Standardsprache ist Englisch, wenn nicht anders angegeben.
Zusätzliche Optionen im HTTP-Modus
--debug
: Debug-Protokollierung aktivieren--github-enterprise-url <URL>
: URL der GitHub Enterprise API festlegen--token <TOKEN>
: Persönliches GitHub-Zugriffstoken festlegen--language <LANG>
: Sprache festlegen (en oder ko, Standard: en)
Verfügbare MCP-Tools
Dieser MCP-Server bietet die folgenden Tools:
Werkzeugname | Beschreibung | Parameter | Erforderliche PAT-Berechtigungen |
---|---|---|---|
list-repositories | Abrufen der Repository-Liste für einen Benutzer oder eine Organisation | owner : Benutzername/Organisationsname. isOrg : Ob es sich um eine Organisation handelt. type : Repository-Typ. sort : Sortierkriterien. page : Seitenzahl. perPage : Elemente pro Seite. | repo |
get-repository | Erhalten Sie detaillierte Repository-Informationen | owner : Repository-Besitzer repo : Repository-Name | repo |
list-branches | Auflisten von Zweigen eines Repositorys | owner : Repository-Eigentümer repo : Repository-Name protected_only : Ob nur geschützte Zweige angezeigt werden sollen page : Seitenzahl perPage : Elemente pro Seite | repo |
get-content | Abrufen von Datei- oder Verzeichnisinhalten | owner : Repository-Besitzer repo : Repository-Name path : Datei-/Verzeichnispfad ref : Branch/Commit (optional) | repo |
list-pull-requests | Auflisten von Pull Requests in einem Repository | owner : Repository-Besitzer repo : Repository-Name state : PR-Status Filter sort : Sortierkriterien direction : Sortierrichtung page : per_page pro Seite: Elemente pro Seite | repo |
get-pull-request | Abrufen von Pull-Request-Details | owner : Repository-Besitzer repo : Repository-Name pull_number : Pull-Request-Nummer | repo |
create-pull-request | Erstellen einer neuen Pull-Anfrage | owner : Repository-Besitzer repo : Repository-Name title : PR-Titel head : Kopfzweig base : Basiszweig body : PR-Beschreibung draft : Als PR-Entwurf erstellen | repo |
merge-pull-request | Zusammenführen einer Pull-Anfrage | owner : Repository-Eigentümer repo : Repository-Name pull_number : Pull-Request-Nummer merge_method : Merge-Methode commit_title : Commit-Titel commit_message : Commit-Nachricht | repo |
list-issues | Auflisten von Problemen in einem Repository | owner : Repository-Besitzer repo : Repository-Name state : Problemstatus Filter sort : Sortierkriterien direction : Sortierrichtung page : per_page pro Seite: Elemente pro Seite | repo |
get-issue | Abrufen von Problemdetails | owner : Repository-Besitzer repo : Repository-Name issue_number : Problemnummer | repo |
list-issue-comments | Auflisten von Kommentaren zu einem Problem oder Pull Request | owner : Repository-Eigentümer repo : Repository-Name issue_number : Ausgabe-/PR-Nummer page : Seitenzahl per_page : Elemente pro Seite | repo |
create-issue | Neues Problem erstellen | owner : Repository-Besitzer repo : Repository-Name title : Problemtitel body : Inhalt des Problemtexts labels : Array von Beschriftungsnamen assignees : Array von Benutzeranmeldungen milestone : Meilenstein-ID | repo |
create-repository | Erstellen eines neuen Repositorys | name : Repository-Name description : Repository-Beschreibung private : Ob privat auto_init : Mit README initialisieren gitignore_template : .gitignore hinzufügen license_template : Lizenz hinzufügen org : Name der Organisation | repo |
update-repository | Aktualisieren der Repository-Einstellungen | owner : Repository-Eigentümer repo : Repository-Name description : Neue Beschreibung private : Datenschutz ändern default_branch : Standardzweig ändern has_issues : Probleme aktivieren/deaktivieren has_projects : Projekte aktivieren/deaktivieren has_wiki : Wiki aktivieren/deaktivieren archived : Archivieren/Dearchivieren | repo |
delete-repository | Löschen eines Repositorys | owner : Repository-Besitzer repo : Repository-Name confirm : Bestätigung (muss wahr sein) | delete_repo |
list-workflows | GitHub Actions-Workflows auflisten | owner : Repository-Besitzer repo : Repository-Name page : Seitenzahl perPage : Elemente pro Seite | actions:read |
list-workflow-runs | Auflisten von Workflow-Ausführungen | owner : Repository-Besitzer repo : Repository-Name workflow_id -ID: Workflow-ID/Dateiname branch : Nach Zweig filtern status : Nach Status filtern page : Seitenzahl pro perPage : Elemente pro Seite | actions:read |
trigger-workflow | Auslösen eines Workflows | owner : Repository-Eigentümer repo : Repository-Name workflow_id : Workflow-ID/Dateiname ref : Git-Referenz inputs : Workflow-Eingaben | actions:write |
get-license-info | Informationen zur GitHub Enterprise-Lizenz erhalten | - | Erfordert ein Site_Admin-Konto (Administrator) |
get-enterprise-stats | Holen Sie sich GitHub Enterprise-Systemstatistiken | - | Erfordert ein Site_Admin-Konto (Administrator) |
Hinweis : Für unternehmensspezifische Tools (
get-license-info
undget-enterprise-stats
) ist ein Benutzer mit Site-Administratorrechten erforderlich. Ein klassischer persönlicher Zugriffstoken wird empfohlen, da feinkörnige Token diese Berechtigungen auf Unternehmensebene möglicherweise nicht unterstützen.
Verwenden der Werkzeuge im Cursor
Sobald Sie den MCP-Server eingerichtet und Cursor für die Verbindung konfiguriert haben, können Sie die GitHub Enterprise-Tools direkt im KI-Chat von Cursor verwenden. Hier sind einige Beispiele:
Auflisten von Repositories
Abrufen von Repository-Informationen
Auflisten von Pull Requests
Probleme verwalten
Arbeiten mit Repository-Inhalten
Repository-Verwaltung
Benutzerverwaltung (nur Enterprise)
Diese Funktionen sind speziell für GitHub Enterprise Server-Umgebungen konzipiert und erfordern Administratorberechtigungen:
API-Verbesserungen
- Flexible API-URL-Konfiguration (unterstützt verschiedene Umgebungsvariablen und Befehlszeilenargumente)
- Verbesserte Fehlerbehandlung und Timeout-Verwaltung
- Benutzerfreundliche Antwortformatierung und Nachrichten
Beitragen
Beiträge sind willkommen! Senden Sie gerne einen Pull Request.
Lizenz
ISC
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Ein MCP-Server, der die Integration mit der GitHub Enterprise API ermöglicht und Benutzern den Zugriff auf Repository-Informationen sowie die Verwaltung von Problemen, Pull-Anfragen, Workflows und anderen GitHub-Funktionen über Cursor ermöglicht.
Related MCP Servers
- AsecurityFlicenseAqualityMCP Server for the GitHub API, providing features for file operations, repository management, and advanced search, with automatic branch creation and comprehensive error handling.Last updated -1814TypeScript
- AsecurityFlicenseAqualityAn MCP server that allows Claude and other MCP-compatible LLMs to interact with the GitHub API, supporting features like creating issues, getting repository information, listing issues, and searching repositories.Last updated -4TypeScript
- AsecurityAlicenseAqualityA MCP server that provides access to GitHub trending repositories and developers data through a simple API interface.Last updated -213PythonMIT License
- -securityAlicense-qualityAn MCP server that wraps around the GitHub CLI tool, allowing AI assistants to interact with GitHub repositories through commands for pull requests, issues, and repository operations.Last updated -5TypeScriptMIT License