GitHub MCP Server
GitHub MCP Server
Ein Projekt, das einem KI-Assistenten mithilfe sicherer, strukturierter Tools ermöglicht, mit GitHub zu sprechen.
In einfachen Worten: Anstatt dass die KI rät, wie GitHub funktioniert, erhält sie von diesem Projekt ein klares Aktionsmenü – etwa „meine Repos auflisten“, „offene Issues anzeigen“ oder „Datei lesen“. Die KI wählt die richtige Aktion, dieser Server spricht mit GitHub, und die Antwort kommt in einem sauberen Format zurück, das die KI verstehen kann.
Welches Problem wird gelöst?
Chatbots sind sprachlich stark, aber sie haben nicht automatisch Live-Zugriff auf dein GitHub-Konto.
Dieses Projekt baut eine Brücke:
Du fragst etwas in normaler Sprache („Zeige offene Issues in microsoft/vscode“).
Ein KI-Modell (über Groq) entscheidet, welches GitHub-Tool verwendet wird.
Der MCP-Server führt dieses Tool gegen die echte GitHub-API aus.
Die Ergebnisse werden bereinigt (normalisiert) und an die KI zurückgegeben.
Die KI erklärt dir das Ergebnis in einfacher Sprache.
MCP steht für Model Context Protocol. Stell es dir wie einen Standardstecker vor: Jeder kompatible KI-Client kann sich mit diesem Server verbinden und seine Tools nutzen.
Related MCP server: GitHub MCP Server
Gesamtbild (Architektur)
You
↓
AI Agent (client/agent.py) ← talks to Groq LLM
↓
MCP Server (notebooks/server.py) ← menu of GitHub tools
↓
GitHub Client ← HTTP calls with your token
↓
GitHub REST API
↓
GitHubDesignregel (wichtig)
Tools bleiben schlank:
Prüfe die Eingabe (ist der Repository-Name gültig?).
Rufe den GitHub-Client auf.
Normalisiere die Antwort in eine stabile Form.
Gib die sauberen Daten an den Agenten zurück.
Alle lästigen GitHub-Details bleiben in der Client-Schicht – nicht verstreut Über die Tools.
Projektordner (wozu jeder Teil dient)
Pfad | Zweck |
| Haupt-MCP-Server – der Produktions-Einstiegspunkt, den die Agenten startet |
| Stabile Datenstrukturen (Pydantic-Modelle) für Agenten |
| Konvertiert rohes GitHub-JSON → diese stabilen Strukturen |
| Bestätigung / Trockenlauf / Allowlist für gefährliche Tools |
| Seitenhilfen für Listen-Tools ( |
| JSON-Logs auf stderr (gibt nie Geheimnisse aus) |
| Ältere/experimentelle Kopie – |
| Lern-Notebook (wie der Server Schritt für Schritt aufgebaut wurde) |
| Chat-Agent, der sich über stdio mit dem MCP-Server verbindet |
| Prüft, ob die KI das richtige Tool für Beispiel-Prompts auswählt |
| Deine privaten Schlüssel (niemals einchecken) |
| Vorlage, die zeigt, welche Schlüssel du brauchst |
| Python-Pakete zu installieren |
| Schritt-für-Schritt-Setup für nicht-technische Benutzer |
Was du mit den Tools und Aktionen machen kannst
Der Server gibt eine Vielzahl von GitHub-Aktionen. Einfach gruppiert:
Lesen (sicher erkunden)
Deine Repositories auflisten
Repository-Details abrufen
Issues und Pull Requests auflisten/abrufen
PR-Diffs auflisten
Branches, Commits, Labels auflisten
Suche in einem Repo
Dateiinhalte lesen
GitHub-Actions-Workflow-Läufe auflisten
Schreiben (verändert GitHub)
Issues, Kommentare, PRs, Branches, Labels erstellen
Issues aktualisieren, Labels hinzufügen/entfernen
Issues wieder öffnen
Destructive (kann Schaden verursachen – geschützt)
Diese benötigen standardmäßig eine Bestätigung:
merge_pull_requestdelete_filecreate_repositorycreate_or_update_fileclose_issue
Dafür sollte der Agent normalerweise:
Mit
dry_run=trueaufrufen → nur VorschauNoch einmal mit
confirm=trueaufrufen → tatsächlich ausführen
Du kannst das über Umgebungsvariablen enger oder lockerer gestalten (siehe unten).
Normalisierte Antworten (warum Agenten das mögen)
Rohe GitHub-Antworten sind riesig und ändern sich oft. Dieses Projekt liefert stabile Strukturen.
Listen-Tools sehen immer gleich so aus:
{
"count": 20,
"items": [ ... ],
"page": 1,
"per_page": 20,
"has_next": true,
"has_prev": false,
"next_page": 2,
"prev_page": null,
"last_page": 5
}Um die nächste Seite zu bekommen, rufst du dasselbe Tool erneut mit page=2 auf (oder page=next_page).
Issue-Beispiel:
{
"number": 42,
"title": "Bug in login",
"state": "open",
"author": "some-user",
"labels": ["bug"],
"comments": 3,
"html_url": "https://github.com/...",
"is_pull_request": false
}Zudem: get_issues filtert Pull Requests heraus (die GitHub-Issues-API mischt sie sonst mit ein).
Sicherheitsfunktionen
Feature | Bedeutung |
| Erforderlich, um destruktive Tools auszuführen (Standardmodus) |
| Zeigt, was während; nicht GitHub verändern |
| MCP-Annotation, damit Clients ein Tool als notwendig erkennen |
Allowlist | Optionale Liste, welche destruktiven Tools überhaupt erlaubt sind |
Modus |
|
Umgebungsvariablen (optional):
GITHUB_MCP_DESTRUCTIVE_MODE=confirm
GITHUB_MCP_DESTRUCTIVE_ALLOWLIST=merge_pull_request,delete_fileProtokollierung (Debugging)
Server schreibt JSON-Logs nur auf stderr.
Warum stderr? MCP nutzt stdout für das Protokoll. Würdest du Protokolltexte dort einführen, bräche die KI-Verbindung.
Logs enthalten z. B.:
Anfragemethode und -pfad
HTTP-Status
Dauer
Rate-Limit-Restfee
niemals geloggt:
dein GitHub-Token
Authorization-Header
sicherheitsrelevante Werte (PATs, Bearer-Tokens usw.)
Beispiel einer Log-Zeile:
{"ts":"2026-08-23T12:00:00+00:00","level":"INFO","event":"github_request","method":"GET","path":"/repos/microsoft/vscode/issues","status_code":200,"duration_ms":120.5}Der KI-Agent (client/agent.py)
Der Agent:
Startet den MCP-Server als Unterprozess (
notebooks/server.py).Der Fragt den Server nach der Werkzeugliste.
Er fragt deine Frage + Tools an Groq.
Wenn Groq ein Tool verwenden will, ruft der Agent es via MCP auf.
Das Tool-Ergebnis wird an Groq zurückgegeben, um eine endgültige Antwort zu erstellen.
Nützliche Befehle (aus dem Projektordner, mit aktiver virtueller Umgebung):
# See all registered tools
python client/agent.py --list-tools
# Only show which tool the AI would pick (no GitHub write)
python client/agent.py --dry-run "list my github repos"
# One real question, then exit
python client/agent.py --once "show open issues for microsoft/vscode"
# Interactive chat
python client/agent.py
# Check tool-picking quality on many sample prompts
python client/test_tool_picking.pySchleifenbegrenzungen (optional):
python client/agent.py --max-rounds 5 --once "..."Oder in .env:
AGENT_MAX_TOOL_ROUNDS=8
AGENT_MAX_TOOL_CALLS=16
AGENT_MAX_CONSECUTIVE_ERRORS=3Umgebungsvariablen
Erforderlich für den MCP-Server
Variable | Zweckdoc> |
| Persönlicher Zugriffstoken, damit auf deinem Server GitHub aufrufen kann |
| Dein GitHub-Benutzername (wird beim Start geprüft) |
| Ein Standard-Repo-Name (wird beim Start geprüft) |
Erforderlich für den Agenten (Chat / Tool-Auswahl)
Variable | Zweck |
| API-Schlüssel für die Groq-LLM |
Optional
Variable | Bedeutung |
| Standard: |
|
|
| Komma-getrennte Namen von destruktiven Tools |
| Maximale Tool-Runden pro Nachricht |
| Maximale Tool-Aufrufe pro Benutzernachricht |
| Stopp nach N Fehlern in Folge |
Kopiere .env.example → .env und setze echte Werte ein. Details siehe SETUP.md.
Tech-Stack
Python 3.13+ (Projekt auf 3.13 entwickelt)
MCP (
mcpPython-Paket) – Tool-Server-Protokollhttpx – HTTP-Client für GitHub
Pydantic – Schemas / Validierung
python-dotenv – lädt Datei
.envOpenAI-kompatibler Client – für Groq-LLM
Jupyter (optional) – Hauptnotebook
Einrichtung & Ausführung
Folge der Anleitung:
👉 SETUP.md – Python installieren, Schlüssel, Git-Commit, .env einrichten und erste Befehle ausführen.
Kurzfassung (falls du Python bereits kennst):
cd "path\to\Github-MCP-server"
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
copy .env.example .env
# edit .env with your tokens
python client/agent.py --list-tools
python client/agent.py --once "list my github repos"Lernpfad (empfohlen)
README dieses README (du bist).
SETUP.md bis
--list-toolsfunktioniert.docs/ARCHITECTURE_HLD_LLD.md lesen für HLD + LLD-Abläufe.
--dry-runund--oncemit einfachen Read-Only-Tests versuchen.Manuellen Testplan mit 50 Szenarien ausführen: tests/MANUAL_TESTING_50_SCENARIOS.md
python client/run_manual_scenarios.pyfür (Auto-Auswahl)
notebooks/01_github_mcp_server.ipynböffnen und schauen, wie jede Schicht gebaut ist.Erst dann Schreib-/destructive Tools mit
dry_run+confirmtesten.
Fehlerbehebung (kurz)
Problem | Wahrscheinliche Lösung |
|
|
Missing env vars |
|
Destruktiv blockiert | Erwartet – |
Agent hängt beim Beenden (Windows) | Bekannter stdio-Eigenheit; Einmal-Befehle veranlassen sofortiges Beenden |
Sicherheitshinweise
.envniemals kommittieren.Nie deine GitHub-/Groq-Tokens im Chat, Screenshots oder in GitHub-Issues posten.
Bevorzuge ein GitHub-Token mit nur den benötigten Definitionen.
GITHUB_MCP_DESTRUCTIVE_MODEaufconfirmoderdenylassen – außer du vertraust der Umgebung vollständig.Ausgabe von
server_1.pynicht teilen; nurserver.pyverwenden.
Lizenz / Inhaberschaft
Dieses ist ein persönliches / Lern-Gen-AI-Projekt für einen GitHub-MCP-Server und -Agenten. Vor einer öffentlichen Veröffentlichung Besitzer und Lizenz passend ändern.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to manage GitHub repositories, branches, issues, pull requests, releases, and actions through natural language.1155MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to perform GitHub operations such as creating repositories, issues, pull requests, and more through natural language.
- FlicenseBqualityDmaintenanceEnables AI assistants to inspect local Git repositories and interact with the GitHub API for reading commits, diffs, files, issues, comments, pull requests, and project boards.10121
- FlicenseBqualityCmaintenanceEnables AI clients to interact with GitHub repositories, issues, pull requests, and code search through the GitHub REST API.12
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Git-backed platform for skills, tools, and context for AI agents
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Arnab1999india/github-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server