/ Verzeichnis / Playground / GitHub
● Offiziell github 🔑 Eigener Schlüssel nötig

GitHub

von github · github/github-mcp-server

Geben Sie Claude vollständigen Zugriff auf GitHub — Issues, PRs, Code-Suche, Dateibearbeitungen — ohne den Chat-Fenster zu verlassen.

Githubs eigener MCP-Server. Alles, was Sie über die GitHub REST- oder GraphQL-API tun können, kann Ihr AI-Agent auch tun: Issues triagieren, PRs überprüfen, Code in der Organisation durchsuchen, Commits entwerfen. Read-only-Modus wird unterstützt und für erste Durchläufe empfohlen.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

github.replay ▶ bereit
0/0

Installieren

Wählen Sie Ihren Client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Cursor nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "github",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  ]
}

Continue nutzt ein Array von Serverobjekten statt einer Map.

~/.config/zed/settings.json
{
  "context_servers": {
    "github": {
      "command": {
        "path": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ]
      }
    }
  }
}

In context_servers hinzufügen. Zed lädt beim Speichern neu.

claude mcp add github -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: GitHub

So finden Sie ein gutes First Issue und versenden eine Lösung in einer Stunde

👤 Open-Source-Mitwirkende, die nach einem reibungslosen ersten PR suchen ⏱ ~60 min beginner

Wann einsetzen: Sie möchten zu einem Projekt beitragen, wissen aber nicht, wo Sie anfangen sollen. Die CONTRIBUTING.md des Maintainers ist zu allgemein, um nützlich zu sein.

Voraussetzungen
  • GitHub PAT mit repo:read und issues:read — github.com/settings/tokens — feinkörnig, auf das Repo beschränkt, zu dem Sie beitragen möchten
  • Dateisystem-MCP auch installiert — ermöglicht Claude, das Repo lokal zu klonen und zu lesen, um die Behebung tatsächlich zu schreiben
Ablauf
  1. Bitten Sie Claude, Issues mit der Kennzeichnung good first issue ohne Kommentare zu finden, sortiert nach Einfachheit
    Find open issues in modelcontextprotocol/servers labeled 'good first issue' with no assignee and zero comments. Pick the one that looks easiest to fix and explain why.✓ Kopiert
    → Claude gibt 3-5 Kandidaten mit einer einzeiligen Schwierigkeitsbewertung für jeden zurück
  2. Lassen Sie Claude den Issue-Text und den verlinkten Code abrufen
    Pull the full issue body for #<num> and read the file it mentions. Tell me the actual change that needs to happen.✓ Kopiert
    → Konkrete Diff-Absicht, nicht nur eine Wiederholung des Issue
  3. Verwenden Sie Dateisystem-MCP, um die Änderung zu vornehmen, dann GitHub-MCP, um den PR zu entwerfen
    Apply the change, write a PR description that thanks the maintainer and explains the fix in 3 sentences.✓ Kopiert
    → PR wird mit zurückgegebenem Link geöffnet

Ergebnis: Ein offener PR, der den Stil des Projekts respektiert, auf das Issue verweist und klein genug ist, um am selben Tag zusammengeführt zu werden.

Fallstricke
  • Claude wählt ein 'good first issue', das tatsächlich seit 2 Jahren schwelt, weil sich niemand auf die Behebung einigen konnte — Fügen Sie not in last 90 days have new comments from maintainers als Filter hinzu
  • PR-Text ist generisches KI-Sprechen — Sagen Sie Claude, dass er zuerst den Ton der letzten 3 zusammengeführten PRs des Projekts nachahmen soll
Kombinieren mit: filesystem · git

Erstellen Sie einen wöchentlichen PR-Digest für Ihr Team

👤 Engineering-Manager, technische Leiter ⏱ ~10 min intermediate

Wann einsetzen: Jeden Montagmorgen, wenn Sie nicht durch 40 PR-Benachrichtigungen klicken möchten.

Voraussetzungen
  • PAT, das auf die Repos Ihres Teams mit pull_requests:read beschränkt ist — Verwenden Sie ein feinkörniges Token, niemals ein klassisches 'all repos'-Token
Ablauf
  1. Fragen Sie nach den zusammengeführten PRs der letzten Woche mit ihren Diff-Größen
    List all PRs merged into our org/repo between last Monday and today. Include author, +/- lines, and one-line summary.✓ Kopiert
    → 10-30 Zeilen Tabelle mit konkreten Deltas
  2. Gruppieren Sie nach Autor und Thema
    Group these by area (auth, payments, frontend, infra...) and flag any that look like reverts or hotfixes.✓ Kopiert
    → Abschnitte mit thematischer Clusterung
  3. Entwerfen Sie einen Slack-bereiten Digest
    Now write a Slack post summarizing the week — celebrate the big wins, call out the risky changes, name the people who shipped them.✓ Kopiert
    → Markdown mit @mentions, Emoji, bereit zum Einfügen

Ergebnis: Eine 5-Punkte-Zusammenfassung, die Sie tatsächlich Montagmorgen lesen möchten.

Fallstricke
  • Trifft das Ratenlimit, wenn Ihre Organisation viele Repos hat — Filtern Sie ein Repo auf einmal, oder upgraden Sie auf ein GitHub-App-Token (15k req/h vs 5k)
Kombinieren mit: linear · sentry

Finden Sie jeden Ort in Ihrer Codebasis, an dem eine veraltete API verwendet wird

👤 Backend-Ingenieure, die eine Migration planen ⏱ ~30 min intermediate

Wann einsetzen: Sie werden eine interne Klasse/Funktion veralten lassen und müssen wissen, wer sie verwendet, bevor Sie ankündigen.

Voraussetzungen
  • PAT mit repo:read für alle Repos in Ihrer Organisation — Verwenden Sie eine GitHub-App für Zugriff auf die gesamte Organisation — einfacher als das Jonglieren mit PATs pro Repo
Ablauf
  1. Verwenden Sie Code-Suche in der gesamten Organisation
    Search across our entire acme-corp org for any usage of the LegacyAuth class. Return file paths grouped by repo.✓ Kopiert
    → Liste von Repos und Dateien mit Zeilennummern
  2. Für jede Übereinstimmung Kontext abrufen
    For each match, fetch 5 lines around the usage and tell me whether it's a real call or just a comment/import.✓ Kopiert
    → Gefilterte Liste, die echte Aufrufe von Rauschen unterscheidet
  3. Generieren Sie ein Migrationsverfolgungsproblem
    Create a tracking issue in acme-corp/platform titled 'Migrate off LegacyAuth' with a checklist of every real callsite and the team that owns each repo.✓ Kopiert
    → Problem mit umfassender Checkliste erstellt

Ergebnis: Ein einziges Source-of-Truth-Verfolgungsproblem, das Ihr Plattform-Team für die Migration verwenden kann.

Fallstricke
  • Code-Suche hat eine 1000-Ergebnis-Obergrenze pro Abfrage — Wenn Sie sie treffen, beschränken Sie auf Sprache oder Pfad: LegacyAuth language:python oder teilen Sie die Abfragen nach Repo-Präfix auf
  • GitHub indiziert nur den Standardbranch — Findet die Verwendung in Feature-Branches nicht — ergänzen Sie mit lokalem grep auf geklonten Repos
Kombinieren mit: filesystem

Holen Sie sich eine zweite Meinung zu einem kniffligen PR, bevor Sie genehmigen

👤 Code-Reviewer, die einem PR außerhalb ihres Expertisebereichs ausgesetzt sind ⏱ ~15 min intermediate

Wann einsetzen: Sie sind der zugewiesene Reviewer für einen PR, der Code berührt, den Sie nicht gut kennen, und Sie möchten nicht einfach genehmigen.

Ablauf
  1. Rufen Sie den PR-Diff und die Beschreibung ab
    Fetch PR #<num> in org/repo — give me the diff and the description. What's the author claiming this does?✓ Kopiert
    → Klare Neuformulierung der Absicht
  2. Bitten Sie um eine architektonische Lektüre
    Now look at the existing files this PR touches. Does the change fit the existing patterns, or does it introduce a new one? If new, is the new pattern justified?✓ Kopiert
    → Spezifische Aufrufe, keine allgemeinen Lobe
  3. Sondern Sie nach Risiken
    Where in this diff is something most likely to break in production 6 months from now? Be specific — point to the line.✓ Kopiert
    → Konkrete Bedenken auf Zeilenebene, nicht 'add more tests'

Ergebnis: Drei spezifische, umsetzbare Kommentare, die Sie auf dem PR veröffentlichen können — Ihre Bewertung erheblich besser machen als einen Blick.

Fallstricke
  • Claude wird zu einer Ja-Maschine und lobt alles — Fragen Sie explizit 'was würde ein Senior-Ingenieur in diesem Unternehmen dagegen vorbringen?' — gegnerische Rahmung hilft
Kombinieren mit: filesystem

Identifizieren und unstick PRs, die in Überprüfung verfaulen

👤 Engineering-Leiter, Repo-Betreuer ⏱ ~20 min beginner

Wann einsetzen: Einmal pro Sprint, wenn Sie vermuten, dass PRs leise altern, ohne dass jemand es bemerkt.

Ablauf
  1. Listen Sie PRs auf, die seit mehr als 5 Tagen ohne neuere Aktivitäten geöffnet sind
    Find open PRs in org/repo last updated more than 5 days ago. For each, tell me the author, the assigned reviewer, and the stated reason for delay (look at the last comment).✓ Kopiert
    → Tabelle mit Diagnose pro PR
  2. Kategorisieren Sie die Verzögerung
    Group these into: 'waiting on reviewer', 'waiting on author', 'waiting on CI', 'waiting on decision'. Be specific about which.✓ Kopiert
    → 4 Kategorien mit konkreten PRs in jeder
  3. Entwurf von Anstößen
    For the 'waiting on reviewer' bucket, draft a polite nudge comment for each. Different tone if the reviewer is a peer vs senior to the author.✓ Kopiert
    → Pro-PR-Kommentartext zum Einfügen bereit

Ergebnis: Eine kurze Liste von PRs, die Sie in 15 Minuten freigeben können, mit spezifischen Maßnahmen pro PR.

Fallstricke
  • Auto-Posting von Kommentaren wirkt spammy — Lassen Sie Claude die Kommentare entwerfen, aber posten Sie sie selbst — behält die menschliche Schleife
Kombinieren mit: linear

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

github + sentry

Sentry zeigt einen neuen Fehler auf → GitHub MCP findet den Commit, der ihn über Release-Tags eingeführt hat → Sie entwerfen einen Hotfix-PR, alles in einem Chat

There's a new error in Sentry — issue WEB-3a91. Find which commit on main introduced it (cross-reference the release tag), then draft the smallest possible revert PR.✓ Kopiert
github + linear

Auto-Erstellen von Linear-Problemen aus GitHub-Fehlerberichten mit richtigen Labels und Priorität

For every issue opened in our octocat/api repo this week with label 'bug', create a matching Linear issue in the BACKEND team with priority Medium.✓ Kopiert
github + filesystem + git

End-to-End-Beitrag: Repo lokal klonen, Änderungen vornehmen, Branch pushen, PR öffnen — ohne Chat zu verlassen

Clone acme/widgets locally, fix the typo in src/utils/format.ts:42, push to a new branch, open a PR.✓ Kopiert

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
search_issues owner: str, repo: str, labels?: str[], state?: str Sie möchten Issues nach Label, Status, Bevollmächtigtem oder Aktivität finden 1 GitHub-API-Aufruf
get_issue owner: str, repo: str, issue_number: int Nach search_issues, wenn Sie die vollständige Konversation benötigen 1 API-Aufruf
create_issue owner, repo, title, body, labels?, assignees? Reichen Sie ein neues Issue ein — stellen Sie sicher, dass der Benutzer dies tatsächlich möchte 1 API-Aufruf (Schreib)
list_pull_requests owner, repo, state?, sort?, base?, head? Finden Sie PRs nach Status/Branch/Autor 1 API-Aufruf
get_pull_request owner, repo, pull_number Lesen Sie den Diff und Metadaten eines bestimmten PR 1 API-Aufruf
merge_pull_request owner, repo, pull_number, merge_method? Nur wenn explizit aufgefordert — verwenden Sie zunächst dry-run-Diskussion 1 API-Aufruf (Schreib, irreversibel)
search_code q: str, sort? Finden Sie Symbol-Verwendung in einer Organisation 1 API-Aufruf (niedrigeres Ratenlimit: 30/min)
get_file_contents owner, repo, path, ref? Lesen Sie eine einzelne Datei aus einem Repo ohne zu klonen 1 API-Aufruf
create_or_update_file owner, repo, path, message, content, sha? Einmalige Dateibearbeitung; für Multi-Datei-Änderungen verwenden Sie einen Branch + PR 1 API-Aufruf (Schreib)
list_commits owner, repo, sha?, path? Prüfen Sie die Historie einer Datei oder eines Branches 1 API-Aufruf

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
Personal-PAT: 5.000 Anfragen/Stunde. GitHub-App: 15.000/Std. Code-Suche: 30/min auf persönlich, separat.
Tokens pro Aufruf
200–500 Token für Issue/PR-Metadaten; können für große Dateiabrufe auf 5k+ anschwellen
Kosten in €
Kostenlos mit jedem GitHub-Konto. GitHub Enterprise hat höhere Limits.
Tipp
Wenn Sie auf Limits stoßen, wechseln Sie zu einer GitHub-App — einfacher als das Jonglieren mit mehreren PATs und gibt 3× die Rate. Cache list_issues Ergebnisse beim Iterieren.

Sicherheit

Rechte, Secrets, Reichweite

Minimale Scopes: repo:read issues:read
Credential-Speicherung: Feinkörniges PAT in Umgebungsvariable (z.B. GITHUB_PERSONAL_ACCESS_TOKEN). Niemals an Dotfiles festlegen.
Datenabfluss: Alle API-Aufrufe nur an api.github.com. Keine Telemetrie von Drittanbietern.
Niemals gewähren: admin:org delete_repo admin:enterprise

Fehlerbehebung

Häufige Fehler und Lösungen

401 Unauthorized

Ihr PAT ist abgelaufen oder hat keinen Zugriff auf dieses Repo. Erstellen Sie es unter github.com/settings/tokens mit den richtigen Scopes erneut.

Prüfen: curl -H "Authorization: Bearer $GITHUB_PERSONAL_ACCESS_TOKEN" https://api.github.com/user
403 rate limit exceeded

Sie haben 5000 Anfragen/Std. auf einem persönlichen PAT erreicht. Warten Sie bis zum Reset-Fenster oder migrieren Sie zu einem GitHub-App-Token (15k/Std.).

Prüfen: curl -H "Authorization: Bearer $TOKEN" https://api.github.com/rate_limit
404 Not Found on a private repo

PAT enthält dieses Repo nicht in seiner Allowed-Repos-Liste. Bearbeiten Sie das feinkörnige PAT und fügen Sie das Repo hinzu.

Docker: 'unable to find image'

Rufen Sie das Image zuerst ab: docker pull ghcr.io/github/github-mcp-server. Überprüfen Sie, dass Sie sich bei ghcr.io authentifiziert haben, wenn es privat ist.

Prüfen: docker images | grep github-mcp-server

Alternativen

GitHub vs. andere

AlternativeWann stattdessenKompromiss
GitLab MCPSie verwenden GitLab.com oder selbst gehostetes GitLab anstelle von GitHubKleinere Funktionsoberfläche, von der Community gepflegt
Gitea MCPSelbst gehostete Gitea-InstallationBegrenzte Werkzeuge vs das offizielle GitHub-MCP
git MCPSie benötigen nur lokale Git-Operationen (status, log, diff, blame) ohne RemoteKeine Issues, PRs oder Remote-Operationen — funktioniert auf jedem lokalen Repo ohne Auth

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen