MCP-Server für Claude und ChatGPT

The Program Manager ist Programmmanagement-Software mit eingebautem Server für das Model Context Protocol (MCP). Dein KI-Client kann deine Programme, Abhängigkeiten, Meilensteine und Blocker lesen und Änderungen vorschlagen, die eine Person freigibt.

Server-URL und Transport

Der Server spricht Streamable HTTP mit JSON-RPC (initialize, tools/list und tools/call). Er läuft als Supabase Edge Function im Backend des Produkts, die URL ist also die Funktions-URL des Projekts, das die App bedient:

https://kydznghxlhavdzjmzfxy.supabase.co/functions/v1/mcp

Sende Anfragen mit POST. Eine Anfrage ohne gültiges Token erhält HTTP 401, ein Workspace ohne aktives Abonnement erhält HTTP 402.

Authentifizierung

Erstelle ein Token in der App unter Settings, AI clients. Tokens beginnen mit tpm_, gehören zu einem Workspace und handeln mit der Rolle der Person, die sie erstellt hat. Das vollständige Token wird einmal angezeigt, gespeichert wird nur sein SHA-256-Hash. Sende es als Authorization: Bearer <token>. Du kannst ein Token jederzeit widerrufen.

Client einrichten

Claude Code. Führe diesen Befehl in einem Terminal aus:

claude mcp add --transport http the-program-manager https://kydznghxlhavdzjmzfxy.supabase.co/functions/v1/mcp --header "Authorization: Bearer <YOUR_MCP_TOKEN>"

Cursor. Ergänze Folgendes in ~/.cursor/mcp.json:

{
  "mcpServers": {
    "the-program-manager": {
      "url": "https://kydznghxlhavdzjmzfxy.supabase.co/functions/v1/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_MCP_TOKEN>"
      }
    }
  }
}

Claude Desktop und andere. Nutze einen Client, der einen eigenen Authorization-Header senden kann, zum Beispiel über die Bridge mcp-remote. Die App zeigt fertige Snippets für jeden Client und einen Test-Button unter Settings, AI clients. ChatGPT funktioniert, wo dein Tarif eigene Header für Remote-MCP-Server erlaubt.

Tools

Der Server stellt zehn Tools bereit. Sieben davon sind rein lesend, drei erzeugen oder führen freigegebene Änderungen aus.

list_programs
Programme mit Reifegrad, Zahl offener und kritischer Blocker, gefährdeten Meilensteinen und Aktualität der Quellen.
get_program_status
Meilensteine, offene Blocker, Risiken und Quellprojekte eines Programms, mit Warnungen bei veralteten Daten.
get_dependency_graph
Bestätigte, manuell festgelegte und vorgeschlagene Abhängigkeiten eines Programms, mit Herkunft.
analyze_milestone_impact
Ein datumsbasiertes Was-wäre-wenn für eine Verzögerung. Nur Vorschau, es schreibt nie.
list_critical_blockers
Offene Blocker mit Verantwortlichen, Fälligkeit, Eskalationspfad und Belegen aus der Quelle.
get_weekly_program_brief
Änderungen dieser Woche, Blocker, Meilensteine in den nächsten 14 Tagen, überfällige Entscheidungen und unverifizierte Abhängigkeiten.
get_program_changes
Seit einem Zeitstempel aus Jira und Asana synchronisierte Änderungen an Status und Fälligkeit.
propose_dependency_link
Schlägt eine Abhängigkeit vor. Es entsteht eine Freigabeanfrage, und nichts ändert sich, bis eine Person zustimmt.
propose_escalation
Entwirft eine Slack-Eskalation für einen Blocker. Gesendet wird erst, wenn eine Person den genauen Text freigibt.
execute_approved_action
Führt eine Aktion aus, die eine Person in der Web-App freigegeben hat, einmalig und nach Prüfung von Ablauf und Hash der Nutzlast.

So werden Schreibzugriffe freigegeben

Ein Agent kann Änderungen nur vorschlagen. Der Vorschlag erscheint in der Freigabe-Warteschlange der Web-App mit der genauen Nutzlast, einem Hash der Nutzlast und einem Ablaufzeitpunkt. Nachdem eine Person ihn freigegeben hat, führt execute_approved_action ihn einmalig aus und hält das Ergebnis im Audit-Log fest. Text aus Jira und Asana gilt als nicht vertrauenswürdige Daten und wird nie als Anweisung behandelt.

Betrieben von Max Benz, Dresden, Deutschland. Fragen: team@theprogrammanager.com.