Connector- und Tunnelprotokoll v1 spezifizieren #3

Closed
opened 2026-07-17 09:05:48 +02:00 by frank · 1 comment
Owner

Teil von #1.

Ziel

Vor der Implementierung ein kleines, testbares und erweiterbares Wire-Protokoll für die Verbindung zwischen öffentlichem MCP-Server und privatem Proxy festlegen.

Scope

  • HTTP/1.1-Upgrade-Handshake dokumentieren:
    • eigener, stabiler Upgrade-Token, zum Beispiel private-proxy-mcp/1
    • erforderliche Request-/Response-Header
    • Statuscodes für Erfolg und Fehler
    • Protokollversions-Aushandlung
  • Binäres oder längenpräfixiertes Framing nach dem 101-Response definieren.
  • Nachrichtentypen mindestens: request, response, error, cancel, ping, pong und goaway.
  • Korrelations-ID, maximale Framegröße und eindeutige Byte-Reihenfolge definieren.
  • Gleichzeitige Requests über eine Verbindung ermöglichen; Antworten dürfen in anderer Reihenfolge eintreffen.
  • Cancel-, Deadline-, Backpressure- und Verbindungsabbruch-Semantik festlegen.
  • Verhalten bei unbekannten Versionen, Nachrichtentypen, doppelten IDs, ungültigen Längen und unvollständigen Frames definieren.
  • Festhalten, dass HTTP Upgrade nur über HTTP/1.1 läuft und TLS vor dem Upgrade terminiert wird.
  • Architekturentscheidung im Wiki als ADR dokumentieren.

Akzeptanzkriterien

  • Wire-Format ist bytegenau mit Beispielen beschrieben.
  • Eine Zustandsmaschine für Client und Server ist dokumentiert.
  • Kompatibilitätsregeln für zukünftige Minor-/Major-Versionen sind festgelegt.
  • Es gibt Golden-Testvektoren für gültige und ungültige Frames.
  • Sicherheitsgrenzen und Ressourcenlimits sind Teil der Spezifikation.
  • Die Implementierung kann ohne weitere Protokollentscheidungen begonnen werden.

Referenzen

Teil von #1. ## Ziel Vor der Implementierung ein kleines, testbares und erweiterbares Wire-Protokoll für die Verbindung zwischen öffentlichem MCP-Server und privatem Proxy festlegen. ## Scope - HTTP/1.1-Upgrade-Handshake dokumentieren: - eigener, stabiler Upgrade-Token, zum Beispiel private-proxy-mcp/1 - erforderliche Request-/Response-Header - Statuscodes für Erfolg und Fehler - Protokollversions-Aushandlung - Binäres oder längenpräfixiertes Framing nach dem 101-Response definieren. - Nachrichtentypen mindestens: request, response, error, cancel, ping, pong und goaway. - Korrelations-ID, maximale Framegröße und eindeutige Byte-Reihenfolge definieren. - Gleichzeitige Requests über eine Verbindung ermöglichen; Antworten dürfen in anderer Reihenfolge eintreffen. - Cancel-, Deadline-, Backpressure- und Verbindungsabbruch-Semantik festlegen. - Verhalten bei unbekannten Versionen, Nachrichtentypen, doppelten IDs, ungültigen Längen und unvollständigen Frames definieren. - Festhalten, dass HTTP Upgrade nur über HTTP/1.1 läuft und TLS vor dem Upgrade terminiert wird. - Architekturentscheidung im Wiki als ADR dokumentieren. ## Akzeptanzkriterien - Wire-Format ist bytegenau mit Beispielen beschrieben. - Eine Zustandsmaschine für Client und Server ist dokumentiert. - Kompatibilitätsregeln für zukünftige Minor-/Major-Versionen sind festgelegt. - Es gibt Golden-Testvektoren für gültige und ungültige Frames. - Sicherheitsgrenzen und Ressourcenlimits sind Teil der Spezifikation. - Die Implementierung kann ohne weitere Protokollentscheidungen begonnen werden. ## Referenzen - HTTP Upgrade in RFC 9110: https://www.rfc-editor.org/rfc/rfc9110.html#name-upgrade - Ein 101-Response darf nur auf ein vom Client angebotenes Protokoll wechseln. - Go net/http: https://pkg.go.dev/net/http
Author
Owner

🤖 forge agent started

  • Agent: codex
  • Model: gpt-5.6-sol
  • Mode: pr
  • Trigger: assignee=agent|+5 mapped

Connector- und Tunnelprotokoll v1 spezifizieren — Teil von #1.

🤖 **forge agent started** - Agent: `codex` - Model: `gpt-5.6-sol` - Mode: `pr` - Trigger: `assignee=agent|+5 mapped` Connector- und Tunnelprotokoll v1 spezifizieren — Teil von #1.
frank 2026-07-17 09:51:59 +02:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
ai-tools/private-proxy-mcp#3
No description provided.