Zum Inhalt springen

Den MCP-Server nutzen

Diese Anleitung zeigt, wie du einen externen MCP-Client — Claude Code, einen Editor, den MCP Inspector — mit dem eigenen Werkzeugserver von Control Center verbindest.

Control Center registriert 110 Werkzeuge und stellt sie über das Model Context Protocol bereit, Protokollversion 2024-11-05. Ganze Werkzeugfamilien, die du erwarten könntest, fehlen: Es gibt keine Werkzeuge für Besprechungen oder den Kalender und keine für Projekte.

Die MCP-Oberfläche teilt sich den Listener von cc_server. Einen eigenen MCP-Port gibt es nicht.

Endpunkt Methode Zweck
/mcp POST Streamable-HTTP-Transport — darüber spricht ein Client
/mcp DELETE Eine Sitzung beenden
/sse GET Benachrichtigungsstrom per Server-Sent Events

Eine lokale Standardinstallation erreichst du also unter http://127.0.0.1:9030/mcp.

  1. Geh zu Einstellungen → Server → MCP-Server
  2. Lies die Karte MCP-Server — sie zeigt Läuft oder Gestoppt und den Port, auf dem sie lauscht

Bei einer Neuinstallation ist die Oberfläche standardmäßig an, deshalb funktioniert ein Loopback-Client ohne Abstecher in die Einstellungen. Beim App-Start starten steuert, ob sie nach einem Neustart wieder hochkommt; Starten / Stoppen gelten nur für die Sitzung und ändern diese Einstellung nicht.

Der Server bindet standardmäßig Loopback, deshalb erreichst du den Endpunkt nur von der Maschine, auf der cc_server läuft, außer du hast ihn mit --bind any gestartet.

Richte deinen Client auf den Streamable-HTTP-Endpunkt. Die genaue Form der Konfiguration ist Sache deines Clients; die URL bleibt dieselbe.

{
"mcpServers": {
"control-center": {
"type": "http",
"url": "http://127.0.0.1:9030/mcp"
}
}
}

Claude Code übernimmt das nicht aus einer .mcp.json im Projekt — projektbezogene MCP-Server liegen hinter einer Freigabeabfrage, die ein nicht-interaktives claude -p nie beantwortet. Übergib die Konfiguration ausdrücklich:

Terminalfenster
claude --mcp-config /path/to/mcp.json --strict-mcp-config

--strict-mcp-config sorgt dafür, dass Claude nur diese Datei nutzt, damit derselbe Server nicht zusätzlich aus dem Projekt entdeckt und doppelt registriert wird.

Kontrollpunkt: Bitte den Client, seine Werkzeuge aufzulisten. Du solltest Einträge mcp__* sehen, die Tickets, Bereiche, Gedächtnis, den Code-Graph und die Review abdecken.

  1. Unter Einstellungen → Server → MCP-Server, in der Zeile Authentifizierungstoken, drücke Setzen und füge ein Token ein
  2. Sende es als Authorization: Bearer <token> bei jeder Anfrage POST /mcp

Eine Oberfläche ohne Token lehnt jeden Aufrufer außerhalb von Loopback mit 403 ab. Das ist absichtlich fail-closed: Erst das Token macht den Dienst außerhalb des Hosts überhaupt möglich.

Änderungen am Token gelten sofort für die laufende Oberfläche — kein Neustart.

Jedes Werkzeug, das arbeitsbereichsbezogene Daten berührt, verlangt workspace_id. Ein Aufruf ohne das Feld wird abgelehnt, statt gegen irgendeinen „aktuellen“ Arbeitsbereich aufgelöst zu werden:

{
"workspace_id": "acme",
"title": "Fix login bug",
"priority": "high"
}

Die ID ist die aus der URL im Browser oder in der App: /workspaces/<workspace_id>/…. Die einzigen Ausnahmen sind Werkzeuge, die wirklich arbeitsbereichsübergreifend sind, etwa list_workspaces und die Newsfeed-Werkzeuge — der Newsfeed gilt pro Benutzer, und ein Agent hat keinen eigenen Benutzer, deshalb arbeiten diese Werkzeuge mit den Feeds des Server-Besitzers.

Werkzeuge mit Repo-Bezug prüfen zusätzlich, dass das Repo mit diesem Arbeitsbereich verknüpft ist.

  • Modus-Gating. Ein Aufruf wird serverseitig gegen den Modus des Bereichs des aufrufenden Agenten aufgelöst. Ein Agent in einem Nur-Lese-Modus erreicht ein schreibendes Werkzeug nicht, indem er space_id weglässt — der Modus wird stattdessen aus seinem aktiven Lauf ermittelt.
  • Schutzregeln für Aktionen. Verändernde Werkzeuge deklarieren ihre Effektklassen und durchlaufen dieselbe Richtlinie wie der Rest des Produkts. Siehe Schutzregeln konfigurieren.
  • Bestätigung. Manche zerstörenden Werkzeuge bauen eine Bestätigungsnutzlast, die freigegeben werden muss, bevor der Aufruf weitergeht.

Der volle Katalog steht in tools/list, ohne dass bei der Entdeckung etwas ausgeblendet wird — ein externer MCP-Client weigert sich, ein Werkzeug aufzurufen, das nicht in seiner zwischengespeicherten Liste steht. Werkzeuge zu verstecken macht sie kaputt, statt die Liste aufzuräumen.

  • Prüfe, ob die Karte MCP-Server Läuft anzeigt
  • Prüfe, ob der Port zu deinem cc_server-Port passt
  • Bei Claude Code prüfe, ob du --mcp-config und --strict-mcp-config übergeben hast

Es ist kein Bearer-Token konfiguriert. Setze eines und sende es mit.

Ein Werkzeugaufruf scheitert mit „Missing or invalid argument: workspace_id“

Abschnitt betitelt „Ein Werkzeugaufruf scheitert mit „Missing or invalid argument: workspace_id““

Füge workspace_id hinzu. Einen impliziten Arbeitsbereich gibt es nicht.

MCP-Tools listet den Katalog. Rufe den Namen genau so auf, wie er dort steht.