session-anker: n8n-mcp failed = Accept-Header-Strike (406), nicht Token-Fehler
Diagnose: n8n-mcp verlangt 'Accept: application/json, text/event-stream' (StreamableHTTP-Modus). opencode mcp list schickt nur 'application/json', kriegt 406, wertet als failed. Echter Tool-Aufruf nutzt richtigen Header, deshalb Sidebar grün. Bearer-Token + Server sind gesund (200 OK mit richtigem Accept-Header, serverInfo: n8n-documentation-mcp 2.57.1). Konsequenz: 'failed' in mcp list ist nicht 'kaputt' sondern 'Probing-Header zu strikt'. Sidebar-Status bleibt Wahrheit.
This commit is contained in:
@@ -76,11 +76,20 @@ Christoph hat die opencode-Option **„Revert undo messages and file changes"**
|
||||
|
||||
Für unsere Sitzung: ein Revert hätte **nichts Wertvolles** entfernt (die Backups waren Sicherheitsnetz, kein Dauerzustand), aber den Session-Kontext. Nicht nötig, weil State sauber ist.
|
||||
|
||||
## MCP-Status-Check (Cold-Start-Race)
|
||||
## MCP-Status-Check (Cold-Start-Race + Accept-Header-Strike)
|
||||
|
||||
Beim ersten Aufruf von `opencode mcp list` kann einzelne Server als `✗ failed` erscheinen, obwohl sie in der Sidebar grün sind. **Live verifiziert 2026-08-28, 17:08**: n8n-mcp war beim ersten `opencode mcp list` als `failed` angezeigt (Sidebar grün). Beim zweiten Aufruf mit `sleep 2` davor war der Server `✓ connected`. Ursache: Initial-Race beim Cold-Start — dasselbe Muster wie Handoff 2026-08-28 M4.
|
||||
|
||||
**Merkregel für nächste Session**: bei `failed` zuerst **2 Sekunden warten und erneut prüfen**. Erst beim zweiten `failed` ist es ein echtes Problem. Sidebar-Status ist die Wahrheit, `opencode mcp list` ist die Konsolen-Sicht mit Cold-Start-Toleranz.
|
||||
**Zweite Ursache (live diagnostiziert 2026-08-28, 17:11)**: n8n-mcp verlangt für MCP-Antworten zwingend `Accept: application/json, text/event-stream` (StreamableHTTP-Modus mit SSE). Ein Probe-Request mit nur `Accept: application/json` antwortet mit `406 Not Acceptable, Client must accept both application/json and text/event-stream`. opencode's `mcp list`-Prober schickt offenbar nur `application/json` und wertet 406 als `failed`. Der echte Tool-Aufruf verwendet den korrekten Accept-Header und läuft.
|
||||
|
||||
**Verifiziert** mit `curl`:
|
||||
- Ohne Bearer: `HTTP 401` (Auth-Fehler, normal)
|
||||
- Bearer + Accept `application/json`: `HTTP 406 Not Acceptable` (das ist der Probe-Fehler)
|
||||
- Bearer + Accept `application/json, text/event-stream`: `HTTP 200` mit `serverInfo: n8n-documentation-mcp 2.57.1`
|
||||
|
||||
**Merkregel für nächste Session**: bei `failed` zuerst **2 Sekunden warten und erneut prüfen**. Erst beim zweiten `failed` ist es ein echtes Problem. Sidebar-Status ist die Wahrheit, `opencode mcp list` ist die Konsolen-Sicht mit **zwei** Toleranz-Quellen: Cold-Start-Race (M4) **und** Accept-Header-Striktheit bei StreamableHTTP-Servern.
|
||||
|
||||
**Offene Frage / Follow-up (kein Blocker)**: opencode könnte den Probe-Header gegen `Accept: application/json, text/event-stream` härten — wäre ein upstream-Bug-Report wert, nicht für nächste Session.
|
||||
|
||||
## Schlusswort
|
||||
|
||||
|
||||
Reference in New Issue
Block a user