Skip to main content
Glama
ddukbg

GitHub Enterprise MCP Server

GitHub Enterprise MCP Server

Bild

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.

Related MCP server: GitHub MCP Server Plus

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

  1. Erstellen Sie das Docker-Image:

    docker build -t github-enterprise-mcp .
  2. Führen Sie den Docker-Container mit Umgebungsvariablen aus:

    docker run -p 3000:3000 \ -e GITHUB_TOKEN="your_github_token" \ -e GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" \ -e DEBUG=true \ github-enterprise-mcp

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:

docker run -p 3000:3000 \ -e GITHUB_TOKEN="your_github_token" \ -e GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" \ -e DEBUG=true \ github-enterprise-mcp node dist/index.js --transport http --debug

Option 2: Verwenden von Docker Compose

  1. Erstellen Sie im Projektstammverzeichnis eine .env Datei mit den erforderlichen Umgebungsvariablen:

    GITHUB_ENTERPRISE_URL=https://github.your-company.com/api/v3 GITHUB_TOKEN=your_github_token DEBUG=true
  2. Starten Sie den Container mit Docker Compose:

    docker-compose up -d
  3. Überprüfen Sie die Protokolle:

    docker-compose logs -f
  4. Stoppen Sie den Container:

    docker-compose down

Installation und Einrichtung

Lokale Entwicklung (unter Verwendung des Parallelmodus)

Diese Methode wird für die aktive Entwicklung mit automatischer Neukompilierung und Serverneustarts empfohlen:

  1. Klonen Sie das Repository und installieren Sie die erforderlichen Pakete:

    git clone https://github.com/ddukbg/github-enterprise-mcp.git cd github-enterprise-mcp npm install
  2. Führen Sie den Entwicklungsserver aus:

    export GITHUB_TOKEN="your_github_token" export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" npm run dev

    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

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

  1. Klonen Sie das Repository und installieren Sie die erforderlichen Pakete:

    git clone https://github.com/ddukbg/github-enterprise-mcp.git cd github-enterprise-mcp npm install
  2. Erstellen Sie das Projekt:

    npm run build chmod +x dist/index.js
  3. Führen Sie den Server aus:

    export GITHUB_TOKEN="your_github_token" export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" node dist/index.js --transport http --debug
  4. Stellen Sie im URL-Modus eine Verbindung zum Cursor her:

    • Fügen Sie der Datei .cursor/mcp.json Ihres Cursors Folgendes hinzu:

    { "mcpServers": { "github-enterprise": { "url": "http://localhost:3000/sse" } } }

Diese Methode ist für die lokale Entwicklung nützlich:

# After cloning the repository git clone https://github.com/ddukbg/github-enterprise-mcp.git cd github-enterprise-mcp # Install required packages npm install # Build npm run build chmod +x dist/index.js # Link globally npm link # Run as a global command export GITHUB_TOKEN="your_github_token" export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" github-enterprise-mcp --transport=http --debug

Option 3: Verwenden von npx (wenn das Paket veröffentlicht ist)

Wenn das Paket im öffentlichen npm-Register veröffentlicht wird:

npx @ddukbg/github-enterprise-mcp --token=your_github_token --github-enterprise-url=https://github.your-company.com/api/v3

Integration mit KI-Tools

Claude Desktop

Fügen Sie Ihrer claude_desktop_config.json Folgendes hinzu:

{ "mcpServers": { "github-enterprise": { "command": "npx", "args": ["-y", "@ddukbg/github-enterprise-mcp", "--token=YOUR_GITHUB_TOKEN", "--github-enterprise-url=YOUR_GITHUB_ENTERPRISE_URL"] } } }

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:

  1. Starten Sie den Server in einem separaten Terminalfenster:

    cd /path/to/github-enterprise-mcp GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" GITHUB_TOKEN="your_github_token" node dist/index.js --transport http
  2. 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:

    { "mcpServers": { "github-enterprise": { "url": "http://localhost:3000/sse" } } }
  3. 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:

  1. Öffnen Sie Cursor und gehen Sie zu Einstellungen

  2. Navigieren Sie zu AI > MCP-Server

  3. Klicken Sie auf MCP-Server hinzufügen

  4. Geben Sie die folgenden Details ein:

    • Name : GitHub Enterprise

    • Befehl : npx

    • Argumente : @ddukbg/github-enterprise-mcp

    • Umgebungsvariablen :

      • GITHUB_ENTERPRISE_URL : Ihre GitHub Enterprise API-URL

      • GITHUB_TOKEN : Ihr persönlicher GitHub-Zugriffstoken

Alternativ können Sie Ihre .cursor/mcp.json Datei manuell bearbeiten, um Folgendes einzuschließen:

{ "mcpServers": { "github-enterprise": { "command": "npx", "args": [ "@ddukbg/github-enterprise-mcp" ], "env": { "GITHUB_ENTERPRISE_URL": "https://github.your-company.com/api/v3", "GITHUB_TOKEN": "your_github_token" } } } }

Sprachkonfiguration

Dieser MCP-Server unterstützt sowohl Englisch als auch Koreanisch. Sie können die Sprache wie folgt konfigurieren:

Umgebungsvariablen

# Set language to Korean export LANGUAGE=ko # Or in .env file LANGUAGE=ko

Befehlszeilenargumente

# Set language to Korean node dist/index.js --language ko

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 und get-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

mcp_github_enterprise_list_repositories(owner="octocat")

Abrufen von Repository-Informationen

mcp_github_enterprise_get_repository(owner="octocat", repo="hello-world")

Auflisten von Pull Requests

mcp_github_enterprise_list_pull_requests(owner="octocat", repo="hello-world", state="open")

Probleme verwalten

# List issues mcp_github_enterprise_list_issues(owner="octocat", repo="hello-world", state="all") # Get issue details mcp_github_enterprise_get_issue(owner="octocat", repo="hello-world", issue_number=1) # Get issue/PR comments mcp_github_enterprise_list_issue_comments(owner="octocat", repo="hello-world", issue_number=1) # Create a new issue mcp_github_enterprise_create_issue( owner="octocat", repo="hello-world", title="Found a bug", body="Here is a description of the bug", labels=["bug", "important"] )

Arbeiten mit Repository-Inhalten

mcp_github_enterprise_get_content(owner="octocat", repo="hello-world", path="README.md")

Repository-Verwaltung

# Create a new repository mcp_github_enterprise_create_repository( name="new-project", description="This is a new project", private=true, auto_init=true ) # Update repository settings mcp_github_enterprise_update_repository( owner="octocat", repo="hello-world", description="Updated description", has_issues=true )

Benutzerverwaltung (nur Enterprise)

Diese Funktionen sind speziell für GitHub Enterprise Server-Umgebungen konzipiert und erfordern Administratorberechtigungen:

# List all users in the GitHub Enterprise instance mcp_github_enterprise_list_users(filter="active", per_page=100) # Get a specific user's details mcp_github_enterprise_get_user(username="octocat") # Create a new user (Enterprise only) mcp_github_enterprise_create_user( login="newuser", email="newuser@example.com", name="New User", company="ACME Inc." ) # Update a user's information (Enterprise only) mcp_github_enterprise_update_user( username="octocat", email="updated-email@example.com", location="San Francisco" ) # Suspend a user (Enterprise only) mcp_github_enterprise_suspend_user( username="octocat", reason="Violation of terms of service" ) # Unsuspend a user (Enterprise only) mcp_github_enterprise_unsuspend_user(username="octocat") # List organizations a user belongs to mcp_github_enterprise_list_user_orgs(username="octocat")

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ddukbg/github-enterprise-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server