Skip to main content Skip to page footer

MCP Inspector

Der MCP Inspector ist das offizielle Debugging-Werkzeug für MCP-Server, eine kleine browserbasierte Oberfläche, die bei Bedarf über npx gestartet wird. Er ist der schnellste Weg, den MCP-Server von Hand zu testen, ohne ein Sprachmodel dazwischen. Du rufst Tools mit selbst gebauten Argumenten auf und siehst den rohen JSON-RPC-Verkehr in beide Richtungen.

Der Inspector läuft lokal, die Verbindung kommt von deinem Rechner. Der MCP-Server muss daher nicht öffentlich erreichbar sein. Es funktionieren localhost, *.ddev.site, interne DNS-Namen und selbstsignierte Zertifikate, solange dein Betriebssystem der CA vertraut.

Voraussetzungen

  • enableMcp ist aktiviert (siehe Konfiguration).
  • mcpAllowedRedirectUris und mcpAllowedOrigins sind nicht nötig. localhost, 127.0.0.1 und [:] werden unabhängig von diesen Einstellungen immer akzeptiert.
  • mcpAllowHttp nur dann auf 1, wenn deine TYPO3-URL reines HTTP ist. Produktiv bleibt der Wert 0.
  • Die Backend-Gruppe besitzt enable_mcp_access und die benötigten Feature-Rechte (siehe Berechtigungen & Scopes).
  • Node.js in Version 18 oder neuer ist installiert. Den Inspector selbst musst du nicht installieren, npx holt ihn bei Bedarf.
  • curl -sS [typo3-url]/aisuite-mcp/health liefert von diesem Rechner aus 200.

Der Inspector belegt standardmäßig localhost für die Oberfläche und localhost für seinen internen Proxy.

Inspector starten

1. Inspector starten. In einem Terminal auf deinem Rechner:

MCP Inspector starten

npx @modelcontextprotocol/inspector

Verbindung konfigurieren

Beim ersten Start lädt das Paket herunter (etwa 30 MB). Danach nennt die Ausgabe die URL der Oberfläche, in der Regel localhost, und öffnet sie im Standardbrowser.

2. Verbindung konfigurieren. Im linken Bereich als Transport Type Streamable HTTP wählen, als URL [typo3-url]/aisuite-mcp eintragen und als Authentifizierung OAuth 2.1 setzen. Die genaue Bezeichnung hängt von der Inspector-Version ab.

3. OAuth abschließen. Nach Connect registriert sich der Inspector unter [typo3-url]/aisuite-mcp/oauth/register und öffnet die Autorisierungsseite in einem neuen Tab. Dort folgen die TYPO3-Backend-Anmeldung und die Zustimmung zu den Scopes. Der Browser leitet auf localhost/oauth/callback zurück, der Inspector tauscht den Code gegen ein Access-Token und legt es im localStorage des Browsers ab. Die Verbindungsanzeige wechselt auf Connected, und die Reiter Tools, Resources und Prompts werden nutzbar.

Tools manuell aufrufen

Der eigentliche Nutzen des Inspectors liegt darin, Tools direkt mit selbst gebauten JSON-Argumenten aufzurufen, ohne Sprachmodel. Der rechte Bereich zeigt zu jedem Aufruf die rohe JSON-RPC-Anfrage und die Antwort. Damit lassen sich Schema-Abweichungen und Rechteprobleme sehr schnell einkreisen.

Als Einstieg bewährt sich diese Reihenfolge:

ToolArgumenteErwartetes Ergebnis
readServerInfokeineJSON mit den Versionen von TYPO3, AI Suite und MCP
listTableskeineListe der für den Backend-Benutzer zugänglichen Tabellen
readPageTree{ "rootPageId": 0, "depth": 2 }Verschachteltes JSON des Seitenbaums

Kommt bereits readServerInfo nicht durch, liegt das Problem an Verbindung oder Berechtigung und nicht am jeweiligen Tool.

Troubleshooting

Nichts passiert beim Klick auf Connect, und im TYPO3-Log steht nichts. Der Server ist von deinem Rechner aus nicht erreichbar, oder DNS beziehungsweise TLS scheitert lokal. Mit curl [typo3-url]/aisuite-mcp/health vom selben Rechner prüfen, bei selbstsignierten Zertifikaten mkcert -install ausführen.

Der Browser meldet beim Redirect ein Zertifikatsproblem. Die CA des TYPO3-Hosts ist dem Browser nicht bekannt. CA auf Betriebssystemebene vertrauen und den Browser neu starten. Ein curl -k hilft hier nicht weiter, Browser sind bei OAuth-Weiterleitungen strenger.

Das Terminal, in dem npx @modelcontextprotocol/inspector läuft, gibt Anfragen und Antworten auf Debug-Ebene aus, die Browser-Konsole ergänzt clientseitige Fehler. Die OAuth-Zugangsdaten und Tokens liegen im localStorage der Herkunft localhost. Ein Tab-Schließen verliert sie nicht, das Löschen der Site-Daten schon. Weitere clientunabhängige Fälle sind unter Clients verbinden gesammelt.