2
0

fix(mcp): use Content-Length framing for all responses

Adds writeFramed helper to send responses with HTTP-style Content-Length headers instead of raw JSON lines. Ensures compatibility with Claude Code which expects framed messages. Updates both main loop and writeResponse to use consistent framing.
This commit is contained in:
2026-04-05 02:48:24 -04:00
parent 1d770b45c9
commit b12dbe664e

10
main.go
View File

@@ -110,8 +110,8 @@ func main() {
debugLog("Response: %s", string(response))
// Write response to stdout
fmt.Println(string(response))
// Write response to stdout with Content-Length framing
writeFramed(response)
}
}
@@ -211,7 +211,11 @@ func readMessage(reader *bufio.Reader) ([]byte, error) {
func writeResponse(resp interface{}) {
data, _ := json.Marshal(resp)
fmt.Println(string(data))
writeFramed(data)
}
func writeFramed(data []byte) {
fmt.Fprintf(os.Stdout, "Content-Length: %d\r\n\r\n%s", len(data), data)
}
func debugLog(format string, args ...interface{}) {