slim-github-mcp
slim-github-mcp
Ein GitHub-MCP-Server mit Nur-Lese-Zugriffn, der kompakte Ergebnisse zurückgibt.
Die meisten GitHub-MCP-Server übergeben dem Modell rohe GitHub-API-Objekte. Das ist für ein Frontier-Modell hinter einer schnellen API in Ordnung, für ein lokales Modell aber mühsam: Eine einzelne Seite mit Repository-Suchergebnissen ist rund 14 KB JSON (~3.5k Tokens), meist URLs und Berechtigungsflags, die niemand liest. Dazu kommen ~7k Tokens an Tool-Schemas, und ein lokal gehostetes Modell kann Minuten für „meine Repositories auflisten“ verwenden – oder nie fertig werden.
Dieser Server verfolgt den gegenteiligen Ansatz. Jedes Tool liefert eine Handvoll nützlicher Felder, jede Liste ist serverseitig begrenzt, und die gesamte Tool-Oberfläche besteht aus neun Funktionen. Das Modell kann keine riesige Data erfolgt nicht, egal welche Argumente es erfindet.
typischer GitHub-MCP | slim-github-mcp | |
Tool-Schemas | ~27 Tools, ~7.4k Tokens | 9 Tools, ~830 Tokons |
„meine öffentlichen Repos“ | kein Tool – erfordert eine Suche |
|
eine Repository-Liste | ~14 KB (30 vollst. Objekte) | ~2.4 KB (10 beschnittene Objekte) |
Schreibzugriff | normalerweise möglich | konstruktionsbedingt unmöglich |
Tools
Tool | Rückgabe |
| Das allentierte Konto: Login, Name, Anzahl öffentlicher Repos |
| Eigene Repos, zuerst aktualisiert. |
| Öffentliche Repos eines beliebigen Benutzers oder Clubs |
| Repository-Suche. |
| Codesuche – Repo, Pfandlizenz und URL pro Treffer, keine Schnipsel |
| Issues von |
| Pull Request von |
| Neueste Commits – sha, Datum, Autor, Betreff |
| Inhalt einer Datei oder Verzeichnislisting |
Jeder limit ist standardmäßig 10 und wird auf 30 begrenzt. gh_file kappt bei 20.000 Zeilen und vermittelt das über ein truncated-Flag. Repos kommen zurück as full_name, private, eine 160-Zeichen große description, language, stars, updated, url – nichts anderes.
Es gibt absichtlich keine Pfad für Schreibzugriffe: Der Client führt ausschließlich GET an api.github.com aus.
Related MCP server: GitHub MCP Server
GitHub-Token erhalten
Der Server benötigt ein einziges Token, das für jeden Aufruf verwendet wird. Es sind nur Leserechte erforderlich.
Gehe zu GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens -token → Generate new token.
Setze eine Gültigkeitsdauer und wähle, welche Repos das Token sehen darf – Public sources only, wenn private Daten nicht GitHub frisch sollen, oder All repositories, falls
gh_my_repos(visibility="private")funktionieren soll.Unter Repository permissions gewähre Leserechte für das, was du wirklich brauchst:
Metadata: Read-only – erforderlich, ist für Repo-Auflistungen und Such
Contents: Read-only – für
gh_fileundgh_commitsIssues: Read-only – für
gh_issuesPull requests: Read-only – für
gh_pulls
Lasse alle Account permissions unberührt.
Kopiere das Token – GitHub zeigt es nur einmal.
Ein klassisches Token mit dem repo Scope funktioniert ebenfalls, ist aber deutlich umfassender als nötig. Bevorzugt wird grobaktionierte Token.
Nicht authentifizierte GitHub-API-Aufrufe sind auf 60 Anfragen pro Stunde abgesetzt, daher ist ein Token in der Praxis nicht optional. Mit einem Token sind es 5.000 pro Stunde.
Installation
git clone https://github.com/0xBakeer/slim-github-mcp.git
cd slim-github-mcp
python3 -m venv venv
./venv/bin/pip install -r requirements.txt
cp .env.example .env
$EDITOR .env # put your token in GITHUB_MCP_TOKENStarte es:
set -a; . ./.env; set +a
./venv/bin/uvicorn slim_github_mcp.main:app --host 127.0.0.1 --port "${GITHUB_MCP_PORT:-9130}"Prüfe, ob es fehlerfrei hochgefahren und ob die Token funktioniert:
curl -s http://127.0.0.1:9130/api/health
curl -s -H "Authorization: Bearer $GITHUB_MCP_SECRET" \
'http://127.0.0.1:9130/api/my-repos?visibility=public&limit=5'Der MCP-Endpunkt selbst ist:
http://127.0.0.1:9130/tools/mcp/v1Der Server spricht streamable HTTP, jeder MCP-Client, der eine URL akzeptiert, kann es verwenden.
Konfiguration
Variable | Standard | Bedeutung |
| – | GitHub-Token für alle API-Aufrufe. Erforderlich. |
| *(leer) | Shared Secret, das Clients als |
|
| Port zum Abhören. |
| *(leer) | Öffentliche Hostname hinter Reverse-Proxy, z.B. |
Setz GITHUB_MCP_SECRET, falls der Port von etwas anderem als localhost erreichbar ist. Der Server hält ein Token, das möglicherweise private Repos lesen kann, und es gibt sonst keine Authentificate-Anrufer. Erzeuge eines mit openssl rand -hex 24.
GITHUB_MCP_PUBLIC_HOST existiert, weil MCP standardmäßig DNS-Rebinding-Schutz aktiviert: Anfragen über Reverse Proxy enthalten den öffentlichen Host-Header und werden abgewiesen, wenn dieser Hostname nicht unterrichtig ist. Symptom: 400 vom MCP-Endpunkt, während /api/health korrekt antwortet.
Als Dienst ausführen
scripts/github-mcp.service ist eine systemd-Unit zum Anpassen – setze User, die Pfade und verweise mit EnvironmentFile auf eine root-gehörte 0600-Datei mit oben den Variablen. Bewahre das Token außerhalb der Unit-Datei.
Außerdem gibt es ein Dockerfile:
docker build -t slim-github-mcp .
docker run -d --name github-mcp -p 127.0.0.1:9130:9130 --env-file .env slim-github-mcpHinter einem Reverse-Proxy
Nichts ungewöhnlich, aber MCP streamt, daher muss / buffing abgestellt sein:
location /tools/mcp/ {
proxy_pass http://127.0.0.1:9130;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
}Setze GITHUB_MCP_PUBLIC_HOST auf den Hostname, von dem du den Reverse-PROXY verwendest.
Verwenden mit Open WebUI
Open WebUI spricht MCP nativ (0.6.x und neuer). Registriere den Server mit dem Hilfsskript:
export OPEN_WEBUI_URL=https://webui.example.com
export OPEN_WEBUI_KEY=sk-... # Settings -> Account -> API keys
export GITHUB_MCP_URL=http://127.0.0.1:9130/tools/mcp/v1
export GITHUB_MCP_SECRET=... # if you set one
./scripts/register-open-webui.shDas Skript führt den Eintrag in vorhandene Tool-Server von Open WebUI zusammen (abgeglichen per ID, ein erneutes Ausführen nur aktualisiert) und gibt anschließend die erkannten Tools aus:
==> Verifying tool discovery
9 tools: gh_whoami, gh_my_repos, gh_user_repos, ...Um es manuell zu machen: Admin Settings → Tools → Add Tool Server, wähle Typ MCP, URL wie oben, Auth Bearer mit deinem Secret.Dinge, die man leicht übersieht:
Aktiviere das Tool in der Chat-Tool-Auswahl. Ein registrierter Server wird dem Modell nicht automatisch angeboten.
Wenn du per Modell Tools anpinnt nichts (Workspace → Models → Tools), füge es auch dort hinzu. Open WebUI speichert das als
server:mcp:<id>. Benennst du die Server-Id später um, löst sich der Pin lautlos in nichts auf – das Modell antwortet weiter, nur ohne die Tools, meist einfach. Raten.
Wissenswert: Direktes Aufrufen von /api/chat/completions mit tool_ids bindet Tool-Server nicht an. Die Tool-Verkabelung geschieht im Frontend, daher teste über die UI.
Lizenz
MIT
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
- FlicenseNot gradedqualityDmaintenanceProvides comprehensive access to GitHub repositories, issues, pull requests, commits, user profiles, and statistics through 10 tools with natural language query support and advanced search capabilities.
- FlicenseNot gradedqualityNot gradedmaintenanceEnables LLMs to interact with GitHub repositories, issues, pull requests, and workflows through the Model Context Protocol. It provides a comprehensive set of tools for repository management, issue tracking, code search, and CI/CD automation.
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with GitHub repositories, issues, pull requests, code, and more through a comprehensive set of tools.
- 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
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
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/0xBakeer/slim-github-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server