Skip to main content
Glama

github-mcp-server

Ein minimaler, schreibgeschützter MCP-Server, der deine GitHub-Repos über stdio für Claude Code (oder jeden MCP-kompatiblen Client) bereitstellt.

Bereitgestellte Tools

  • list_repos(owner?, include_forks?, limit?) - listet deine Repos (oder die öffentlichen Repos eines anderen Besitzers) auf

  • get_repo_info(owner, repo) - Metadaten für ein Repo

  • list_directory(owner, repo, path?, ref?) - durchsucht den Dateibaum eines Repos

  • read_file(owner, repo, path, ref?, max_bytes?) - liest den Inhalt einer Textdatei

  • get_readme(owner, repo, ref?) - ruft die README eines Repos ab

  • search_code(query, owner?, repo?, limit?) - durchsucht Code (optional auf deine Repos beschränkt)

  • list_commits(owner, repo, path?, limit?) - listet die letzten Commits auf

Alles ist schreibgeschützt – es werden keine Schreib-, Erstell- oder Lösch-Endpunkte bereitgestellt.

Related MCP server: github-mcp-tool

Einrichtung

  1. Erstelle einen GitHub Personal Access Token (feingranular, empfohlen): GitHub -> Settings -> Developer settings -> Personal access tokens -> Fine-grained tokens -> Generate new token.

    • Repository access: Wähle die Repos aus, die Claude lesen soll (oder „All repositories")

    • Permissions: Contents: Read-only, Metadata: Read-only (füge Code search: Read-only hinzu, wenn du search_code verwenden möchtest)

  2. Abhängigkeiten installieren:

    cd github-mcp-server
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  3. Token setzen (baue es nicht fest ins Skript ein und committe es nicht irgendwo):

    export GITHUB_TOKEN=github_pat_xxxxxxxxxxxx

    Für die dauerhafte Speicherung füge diese Zeile zu deiner ~/.zshrc / ~/.bashrc hinzu oder verwende eine .env-Datei mit einem Tool wie direnv – stelle nur sicher, dass sie gitignored ist.

  4. Registriere den Server mit der Claude Code CLI:

    claude mcp add github-repos -- python3 /absolute/path/to/github-mcp-server/server.py

    (Wenn du ein venv verwendet hast, zeige auf das Python des venv: /absolute/path/to/github-mcp-server/.venv/bin/python3)

    Da der Server GITHUB_TOKEN aus seiner Umgebung liest, exportiere es entweder in der Shell, aus der du claude ausführst, oder übergib es explizit:

    claude mcp add github-repos --env GITHUB_TOKEN=github_pat_xxxxxxxxxxxx -- python3 /absolute/path/to/github-mcp-server/server.py
  5. Überprüfe, ob es verbunden ist:

    claude mcp list

    Du solltest github-repos als verbunden aufgelistet sehen. In einer Claude-Code-Sitzung kannst du dann Dinge fragen wie „liste meine Repos auf“ oder „lies die README meines flight-delay-prediction-Repos“ und Claude wird diese Tools aufrufen.

Lokaler Smoke-Test (ohne Client)

python3 -c "
import os
os.environ['GITHUB_TOKEN'] = 'github_pat_xxx'
from server import list_repos
print(list_repos())
"

Hinweise / nächste Schritte

  • Rate-Limits: authentifizierte Anfragen erhalten 5.000/Stunde von der GitHub-REST-API, das reicht für interaktive Nutzung.

  • Wenn du später Schreibzugriff möchtest (Issues öffnen, PRs kommentieren), füge neue @mcp.tool()-Funktionen mit requests.post/patch hinzu – halte sie getrennt und klar benannt, damit offensichtlich bleibt, welche Tools den GitHub-Zustand verändern.

  • Wenn du dies von claude.ai/Cowork aus erreichbar machen möchtest (nicht nur Claude Code CLI/VS Code), muss es von stdio-Transport auf einen gehosteten HTTP-Server mit OAuth umgestellt werden – ein wesentlich größerer Schritt, der sich nur lohnt, wenn du diese Reichweite benötigst.

Related MCP Connectors

Related MCP Servers