github-project-management
GitHub Project Management MCP Server
Benutzerdefinierter MCP-Server (Model Context Protocol), der KI-Assistenten ermöglicht, GitHub Project V2-Boards programmatisch über das Model Context Protocol zu verwalten. Entwickelt mit Python 3.12 und FastMCP, kommuniziert über stdio-Transport und läuft in einem eigenständigen Docker-Container.
Speicherort
project/
├── mcp/ ← This directory (root-level, independent of the app)
│ ├── Dockerfile
│ ├── requirements.txt
│ ├── server.py # FastMCP entry point
│ ├── config.py
│ ├── auth.py
│ ├── capabilities.py # Tool → permission mapping
│ ├── profiles.py # Multi-target profile system
│ ├── tools/ # MCP tool definitions
│ ├── services/ # Business logic
│ ├── clients/ # GraphQL + gh CLI clients
│ ├── models/ # Pydantic models
│ ├── graphql/ # Query/mutation strings
│ ├── tests/ # Unit + contract tests
│ ├── scripts/ # Validation, preflight, secret scanning
│ │ ├── validate.sh # ← Run before every push
│ │ ├── preflight.sh # Environment prerequisites
│ │ ├── scan_secrets.sh # Token pattern detection
│ │ └── smoke_build.sh # Minimal build verification
│ ├── profiles/ # Target config (.env files, no secrets)
│ ├── docs/ # Detailed documentation
│ ├── LICENSE # MIT
│ ├── CONTRIBUTING.md
│ └── SECURITY.mdHinweis: Dieser MCP-Server ist eine eigenständige Komponente mit eigenem Dockerfile, eigenen Abhängigkeiten und eigenem Lebenszyklus.
Related MCP server: my_pm_tools
So funktioniert es
MCP Client → docker run --rm -i github-project-mcp:latest → stdin/stdout JSON-RPC → GitHub APIDer MCP-Client ruft ein Werkzeug auf (z. B.
create_project_item)Es wird
docker run --rm -i github-project-mcp:latest python server.pyausgeführtDer Server validiert die Authentifizierung und wartet auf Befehle über stdin
Der Client sendet JSON-RPC über stdin und erhält Antworten über stdout
Nach Abschluss wird der Container automatisch zerstört (
--rm)
Docker — Erstellen und Verwalten
Erstellen des Images
# Desde la raíz del proyecto
docker build -t github-project-mcp:latest ./mcpDocker Compose (lokale Entwicklung)
Der einfachste Weg, den MCP lokal zu konfigurieren und auszuführen:
# 1. Crear tu configuración local (una sola vez)
cp mcp/.env.example mcp/.env
# Editar mcp/.env con tu GITHUB_TOKEN y target (org/repo/project)
# 2. Construir y verificar
cd mcp/
make build
make verifyMakefile-Ziele
Alle Ziele werden innerhalb von Docker ausgeführt — ohne Host-Abhängigkeiten.
cd mcp/
make help # Mostrar todos los targets disponibles
make build # Construir imagen Docker
make verify # Validar auth + scopes + config
make test # Ejecutar unit tests
make validate # CI completo (build + syntax + tests + tools + secrets)
make tools # Contar herramientas registradas (>= 100)
make syntax # Verificar sintaxis Python
make secrets # Escanear credenciales en código
make shell # Shell interactivo dentro del contenedor
make clean # Eliminar imágenesHinweis: Wenn
makeauf dem Host nicht verfügbar ist, können die Ziele direkt mit Docker aufgerufen werden. Beispiel:docker run --rm --env-file .env github-project-mcp:latest python3 scripts/verify_setup.py
Jeder Mitwirkende klont das Repo, erstellt seine .env, und der MCP funktioniert, ohne dass außer Docker etwas installiert werden muss.
Überprüfen, ob das Image existiert
docker images | grep github-project-mcpManuell testen (Smoke-Test)
docker run --rm -i \
-e GITHUB_TOKEN="<your_token>" \
github-project-mcp:latest \
python server.pyDer Server wird auf stderr ausgeben: github-project-management MCP server ready. Authentication validated successfully.
Danach wartet er auf JSON-RPC über stdin. Drücken Sie Ctrl+C zum Beenden.
Nach Änderungen neu erstellen
docker build -t github-project-mcp:latest ./mcp --no-cacheVerwaltungsskript
Das Skript ./scripts/dev/start.sh unterstützt ein Argument mcp zur Verwaltung des Images:
./scripts/dev/start.sh mcp build # Construir/reconstruir la imagen
./scripts/dev/start.sh mcp test # Ejecutar smoke test
./scripts/dev/start.sh mcp status # Verificar si la imagen existeHinweis: Der MCP ist kein persistenter Dienst. Er benötigt kein
up/down/restart. Er wird bei Bedarf jedes Mal gestartet, wenn der Client ein Werkzeug verwendet.
IDE-Integration
Der MCP ist mit jedem Client kompatibel, der das MCP-Protokoll über stdio unterstützt. Die Konfiguration variiert je nach IDE — das allgemeine Muster ist:
{
"mcpServers": {
"github-project-management": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "GITHUB_TOKEN",
"--env-file", "mcp/.env",
"github-project-mcp:latest",
"python", "server.py"
]
}
}
}Für IDE-spezifische Konfiguration siehe docs/SETUP.md.
Registrierte Werkzeuge (100)
Kernoperationen
Werkzeug | Beschreibung |
| Projekt-/Feld-IDs ermitteln |
| Elemente mit Filtern auflisten |
| Issue erstellen + zum Projekt hinzufügen |
| Status, Priorität, Fälligkeitsdatum aktualisieren |
| Story-Point-Schätzung festlegen |
| Element vom Board archivieren |
Issue-Verwaltung
Werkzeug | Beschreibung |
| Ein Issue schließen |
| Ein geschlossenes Issue wieder öffnen |
| Kommentar zum Issue hinzufügen |
| Titel, Beschreibung, Labels, Meilenstein, Bearbeiter bearbeiten |
| Als Unter-Issue verknüpfen |
| Unter-Issue-Verknüpfung aufheben |
| Vollständige Issue-Details |
| Nach Abfrage suchen |
Board-Operationen
Werkzeug | Beschreibung |
| Element in eine beliebige Statusspalte verschieben |
| Als Erledigt markieren |
| In den Papierkorb verschieben |
| Mehrere Elemente stapelweise aktualisieren |
| Mehrere Issues schließen |
| Mehreren Issues zuweisen |
Planung & Arbeitsabläufe
Werkzeug | Beschreibung |
| Sprintplan erstellen |
| Versionshinweise automatisch generieren |
| Kompletter Abschluss-Workflow |
| Standup-Bericht erstellen |
| Sprint-Review-Zusammenfassung |
| Vorschläge automatisch priorisieren |
| Überfällige Elemente kennzeichnen |
| Übergeordnetes Element + Kinder erstellen |
| Sprint schließen und Elemente verschieben |
Metadaten
Werkzeug | Beschreibung |
| GitHub-Meilenstein erstellen |
| Meilenstein schließen |
| Meilensteine auflisten |
| Label erstellen |
| Labels auflisten |
| Board-Statistiken |
| Aktuelle Sprint-Metriken |
Architektur
Tool Layer (FastMCP tool definitions)
↓
Service Layer (business logic, orchestration)
↓
Client Layer (GraphQL + gh CLI + caching)
↓
GitHub APIs (GraphQL v4 + REST v3)Delegationsstrategie
Methode | Verwendung |
gh CLI | Issue-CRUD, Kommentare, Projektelement hinzufügen, schließen |
Custom GraphQL | Feldaktualisierungen, Archivierung, Erkennung, Unter-Issues |
Umgebungsvariablen
Variable | Erforderlich | Beschreibung |
| Ja | GitHub-PAT (feingranular oder klassisch) |
| Ja | GitHub-Besitzer (Organisation oder Benutzeranmeldung) |
| Ja | Repository-Name |
| Ja | Projekt-V2-Board-Nummer (1–100000) |
Fehlerbehebung
MCP verbindet nicht
# Verificar que la imagen existe
docker images | grep github-project-mcp
# Si no existe, construir
docker build -t github-project-mcp:latest ./mcp
# Verificar token
echo $GITHUB_TOKEN | head -c 20MCP erneut verbinden
Wenn der MCP sich vom IDE trennt, verwenden Sie die Reconnect-Option des entsprechenden MCP-Clients.
Authentifizierungsfehler
Stellen Sie sicher, dass
GITHUB_TOKENin der Container-Umgebung verfügbar istTokens
github_pat_*(feingranular) benötigen Berechtigungen: Issues (RW), Projects (RW), Metadata (R)Klassische Tokens benötigen Scopes:
repo,project,read:org
Zugehörige Dokumentation
Dokument | Zweck |
Token-Einrichtung und Berechtigungen | |
Beispiele für Tool-Eingaben/Ausgaben | |
Parameterreferenz | |
Häufige Fehler |
Quellpfade und Synchronisierung
Dieses Verzeichnis (mcp/) ist die maßgebliche Quelle für das MCP-Paket.
Das Repository enthält eine synchronisierte Kopie unter:
app/backend/app/mcp/github_project/— eingebettet in das Backend für Docker-Builds
Synchronisierungsworkflow
Nehmen Sie alle Änderungen zuerst hier in
mcp/vor.Kopieren Sie geänderte Dateien in den eingebetteten Pfad:
cp mcp/<file> app/backend/app/mcp/github_project/<file>Überprüfen Sie mit der automatisierten Prüfung:
./mcp/scripts/check_sync.sh
Das Synchronisierungsskript vergleicht alle gemeinsamen .py-Dateien (ausgenommen __init__.py, das in der Backend-Kopie bewusst unterschiedlich ist, sowie reine Infrastrukturdateien wie Dockerfile und requirements.txt). CI führt diese Prüfung bei jedem Push aus — Abweichungen führen zum Fehlschlagen des Builds.
Dateien, die in der Backend-Kopie absichtlich unterschiedlich sind
Datei | Grund |
| Backend-spezifische Importe + Dokumentation der Synchronisierungsquelle |
| Verweist hierher zurück; dokumentiert die Kopierrichtlinie |
Die Backend-Testsuite prüft die eingebettete Kopie; die Syntaxvalidierung muss beide Bäume kompilieren.
Abgesichertes Laufzeitverhalten
Alle Einstellungen verwenden das Präfix GH_PROJECT_ und werden beim Start validiert:
Einstellung | Standard | Grenzen / Verhalten |
|
| 1–120 Sekunden |
|
| 0–5; nur Lesevorgänge, Mutationen werden nie wiederholt |
|
| 0–60 Sekunden, exponentieller Backoff |
|
| 1–720 Stunden |
|
| Konfigurierbarer lokaler Pfad |
|
| 1–100 |
|
| 1–1,000 |
|
| 10,000–10,000,000 |
Der Metadaten-Cache wird atomar geschrieben, verwendet ausschließlich Eigentümer-Berechtigungen (0600), lehnt zukünftige Zeitstempel ab und wird nicht wiederverwendet, wenn sich Organisation oder Projektnummer unterscheiden. CLI- und GraphQL-Diagnosen maskieren tokenartige Werte und werden begrenzt, bevor sie an den MCP-Client zurückgegeben werden.
Docker-only-Validierung
Führen Sie die Validierung ohne Python-Werkzeuge auf dem Host aus:
# Compile both source copies through a Python container
tar -C . -cf - mcp app/backend/app/mcp \
| docker run --rm -i python:3.12-slim sh -c \
'mkdir -p /tmp/factib && tar -xf - -C /tmp/factib && \
python -m compileall -q /tmp/factib/mcp /tmp/factib/app/backend/app/mcp'
# Run the backend MCP tests using the existing backend image
tar -C . -cf - app/backend/app app/backend/tests/mcp \
| docker run --rm -i -e PYTHONPATH=/tmp/factib/app/backend backend:latest sh -c \
'mkdir -p /tmp/factib && tar -xf - -C /tmp/factib && cd /tmp/factib/app/backend && \
pytest -q --confcutdir=/tmp/factib/app/backend/tests/mcp tests/mcp'Lokale Validierung (vor dem Push)
Führen Sie dies immer vor dem Erstellen eines PR oder dem Pushen von Änderungen aus. Dies spiegelt die CI-Pipeline lokal wider und erkennt Probleme, bevor sie GitHub Actions erreichen.
Schnellstart
# Full validation (builds image + runs all checks):
./mcp/scripts/validate.sh
# Quick mode (reuses cached image, skips rebuild):
./mcp/scripts/validate.sh --quick
# Auto-fix known issues (e.g., BOM characters):
./mcp/scripts/validate.sh --fixWas geprüft wird
Schritt | Was | Gleicher CI-Schritt |
1. BOM | Erkennt UTF-8-BOM-Bytes in Python-Dateien | N/A (verhindert Syntaxfehler) |
2. Build |
| MCP-Image erstellen |
3. Syntax |
| Syntaxprüfung |
4. Tests | Führt Testmodule in | Unit-Tests ausführen |
5. Werkzeuge | Zählt registrierte Werkzeuge (muss >= 100 sein) | Werkzeuganzahl überprüfen |
6. Geheimnisse | Scannt nach Token-Mustern in nachverfolgten Dateien | N/A (vor der Veröffentlichung) |
Verfügbare Skripte
Skript | Zweck | Verwendungszeitpunkt |
| Vollständige CI-Spiegelung | Vor jedem Push/PR |
| Voraussetzungsprüfung (Docker, Token, Konfiguration) | Erste Einrichtung oder Umgebungsänderungen |
| Erkennung von geheimen Mustern | Vor der Veröffentlichung des Repos |
| Minimaler Build + Werkzeuganzahl | Schneller Plausibilitätscheck |
| Multi-Ziel-Vertragssuite | Nach strukturellen Änderungen |
Häufige Probleme und Lösungen
Problem | Symptom | Behebung |
BOM-Zeichen |
|
|
Image nicht erstellt | „Image not found" in Docker-Befehlen |
|
Token nicht gesetzt | „No GitHub token found" in der Preflight-Prüfung |
|
Tool-Anzahl < 100 | Neues Tool nicht in server.py registriert |
|
Das vollständige Register mit 200 Einträgen, einschließlich umgesetzter und geplanter Arbeiten, finden Sie in docs/HARDENING_200.md.
Erweiterte Fähigkeitssuite: 60 zusätzliche Tools
Der Server stellt insgesamt über 100 Tools bereit: die ursprünglichen 40 operativen Tools plus 60 fokussierte Fähigkeiten aus tools/capability_suite.py.
Gruppe | Zweck | Beispiele |
Issue- und Markdown-Qualität | Issues validieren, normalisieren, zusammenfassen, Vorlagen erstellen, bündeln und prüfen |
|
Kommentarsystem | Fortschritts-, Plan-, Blocker- und Lösungs-Kommentare erstellen; Kommentare auflisten/durchsuchen/bearbeiten |
|
Projektberichterstattung | Gesundheits-, Status-, Prioritäts-, Bearbeiter-, Fälligkeits- und Feldberichte |
|
Projektplanung | Markdown-Export/-Import, Metadaten-Synchronisationspläne und gefilterte Massenpläne |
|
Strategische Automatisierung | Sprint-Pläne, Backlog-Ranking, Risiko-/Abhängigkeitsberichte und Stakeholder-Updates |
|
Roadmaps und Entscheidungen | Changelogs, Release-Checklisten, Roadmaps, Retrospektiven und Automatisierungsentscheidungen |
|
Tools, die umfangreiche Änderungen verursachen könnten, geben standardmäßig einen dry_run-Plan zurück. Direkte Kommentar-Tools führen pro Aufruf eine sichtbare Kommentaroperation aus. Der Fähigkeitskatalog bestätigt beim Import 60 eindeutige Ergänzungen, und die Docker-Validierung bestätigt 100 registrierte FastMCP-Tools in beiden Quellkopien.
Distribution
Docker-Image
Der MCP-Server wird als eigenständiges Docker-Image verteilt. Lokal erstellen:
docker build -t github-project-mcp:latest ./mcpCI/CD-Pipeline
Der Workflow mcp-ci.yaml wird automatisch ausgeführt bei:
Push auf
main, wenn sich Dateien untermcp/ändernPull Requests, die
mcp/-Pfade betreffen
Pipeline-Stufen:
Build — Überprüfung des Docker-Image-Builds
Syntaxprüfung — AST-Parsing aller Python-Dateien
Unit-Tests — Ausführung der pytest-Suite
Tool-Anzahl-Prüfung — Stellt sicher, dass ≥100 Tools registriert sind
Versionierung
Dieser MCP-Server folgt Semantic Versioning. Die Versionshistorie finden Sie in CHANGELOG.md.
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 gradedqualityDmaintenanceEnables users to interact with GitHub's Projects v2 API through natural language for Agile project management, supporting repository details, issue tracking, and project board management operations.35GPL 2.0
- AlicenseAqualityBmaintenanceEnables natural language management of GitHub Projects V2, including issue creation, status changes, sprint reports, and project setup via MCP tools and shell scripts.311MIT
- FlicenseNot gradedqualityDmaintenanceEnables LLM agents to manage projects, track issues, log work, and integrate with Git. Provides 23 MCP tools for full project management capabilities.16
- AlicenseAqualityDmaintenanceEnables AI assistants to manage GitHub Projects V2, including items, fields, and views through a standardized interface.17121MIT
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Project management MCP for AI agents with safe task reads and writes.
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/jersonmartinez/mcp-github-projects'
If you have feedback or need assistance with the MCP directory API, please join our Discord server