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
enableMcpist aktiviert (siehe Konfiguration).mcpAllowedRedirectUrisundmcpAllowedOriginssind nicht nötig.localhost,127.0.0.1und[:]werden unabhängig von diesen Einstellungen immer akzeptiert.mcpAllowHttpnur dann auf1, wenn deine TYPO3-URL reines HTTP ist. Produktiv bleibt der Wert0.- Die Backend-Gruppe besitzt
enable_mcp_accessund die benötigten Feature-Rechte (siehe Berechtigungen & Scopes). - Node.js in Version 18 oder neuer ist installiert. Den Inspector selbst musst du nicht installieren,
npxholt ihn bei Bedarf. curl -sS [typo3-url]/aisuite-mcp/healthliefert von diesem Rechner aus200.
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:
| Tool | Argumente | Erwartetes Ergebnis |
|---|---|---|
readServerInfo | keine | JSON mit den Versionen von TYPO3, AI Suite und MCP |
listTables | keine | Liste 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.