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