Skip to main content
Glama
charlesnpx
by charlesnpx

GitHub MCP

Ein generischer, schreibgeschützter Remote-MCP-Connector zum Abfragen von GitHub-Repositories, die über eine GitHub-App-Installation ausgewählt werden. Er ist für das Selbsthosting gedacht und enthält keine GitHub-, Cloudflare- oder MCP-Client-Kontokennungen.

Der Connector nutzt zwei Autorisierungsebenen:

  1. Ein Benutzer autorisiert die GitHub-App, um seine GitHub-Identität nachzuweisen. Nur Betreiber-konfigurierte Logins dürfen die Verbindung abschließen.

  2. Tool-Aufrufe verwenden kurzlebige GitHub-App-Installationstokens, die auf das angeforderte installierte Repository beschränkt sind.

Das GitHub-Benutzertoken wird nach der Identitätsprüfung verworfen. Der Connector stellt keine Schreib-Tools bereit.

Funktionen

  • Repositories entdecken, die in GitHub-App-Installationen ausgewählt sind.

  • Code durchsuchen und Textdateien oder Verzeichnislisten abrufen.

  • Commits, Pull-Requests, Diffs, Reviews und Kommentare ansehen.

  • Hinweise und Hinweis-Kommentare ansehen.

  • Remote-MCP-Clients mithilfe von OAuth, PKCE und Dynamic Client Registration authentifizieren.

Related MCP server: GitHub Code Search MCP Server

Lokale Entwicklung

Anforderungen: Node 22 oder höher und Yarn 1.22.

yarn install
yarn type-check
yarn lint
yarn test
yarn build

Tests verwenden fiktive Identitäten und simulierte GitHub-Dienste. Für die lokale Verifizierung wird kein GitHub-App- oder Cloudflare-Konto benötigt.

Um den Worker gegen echte Dienste auszuführen, folgen Sie der Einrichtungsanleitung für Betreiber. Committen Sie nicht wrangler.jsonc, lokale Secrets oder private GitHub-App-Schlüssel.

MCP-Tools

Tool

Beschreibung

list_repositories

Repositories auflisten, die in den Installationen der App ausgewählt sind.

search_code

In einem installierten Repository suchen.

list_directory

Ein Repository-Verzeichnis bei einem bestimmten Ref auflisten.

get_file

Eine UTF-8-Textdatei abrufen, optional per Zeilenbereich.

list_commits / get_commit

Repository-Verlauf ansehen.

list_pull_requests / get_pull_request

Pull-Requests, Dateien, Reviews und Kommentare ansehen.

get_pull_request_diff

Den Unified-Diff einer Pull-Request abrufen.

list_issues / get_issue

Issues und Kommentare ansehen.

Bei den Ergebnissen handelt es sich um echte GitHub-API-Antworten, die in begrenztes JSON mit kanonischen GitHub-URLs normalisiert werden. Die Seitengröße beträgt standardmäßig 20 Einträge und ist auf 50 Einträge begrenzt. Text- und Diff-Ausgaben sind auf 100.000 Zeichen begrenzt.

Sicherheitsmodell

  • AUTHORIZED_GITHUB_LOGINS ist Pflicht und verweigert bei leerer Konfiguration den Zugriff.

  • GitHub-App-Installationen legen fest, welche Repositories für den Connector verfügbar sind.

  • Jeder Repository-Tool-Aufruf erzeugt ein einstündiges, auf dieses Repository beschränktes Token.

  • Die erforderlichen GitHub-App-Berechtigungen sind Leseberechtigungen für Metadata, Contents, Issues und Pull Requests.

  • OAuth-Codes, Benutzertokens, Installationstokens, Client-Secrets und private Schlüssel werden niemals zurückgegeben oder absichtlich protokolliert.

Dieses Projekt ist als Connector für Einzelpersonen oder kleine Teams gedacht, nicht als gehosteter Multi-Tenant-Dienst.

Lizenz

Dieses Projekt ist unter der MIT-Lizenz verfügbar.

Related MCP Connectors

Related MCP Servers