fix: send mcp initialized as notification

This commit is contained in:
lpf
2026-03-08 12:11:38 +08:00
parent f043de5384
commit bb429e3fc8
2 changed files with 38 additions and 6 deletions

View File

@@ -373,6 +373,7 @@ func TestMCPToolListTools(t *testing.T) {
}
func TestMCPToolHTTPTransport(t *testing.T) {
initializedNotified := false
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
defer r.Body.Close()
var req map[string]interface{}
@@ -393,11 +394,13 @@ func TestMCPToolHTTPTransport(t *testing.T) {
},
}
case "notifications/initialized":
resp = map[string]interface{}{
"jsonrpc": "2.0",
"id": id,
"result": map[string]interface{}{},
if _, hasID := req["id"]; hasID {
http.Error(w, "notification must not include id", http.StatusBadRequest)
return
}
initializedNotified = true
w.WriteHeader(http.StatusAccepted)
return
case "tools/list":
resp = map[string]interface{}{
"jsonrpc": "2.0",
@@ -455,6 +458,9 @@ func TestMCPToolHTTPTransport(t *testing.T) {
if !strings.Contains(out, `"name": "echo"`) {
t.Fatalf("expected http tool listing, got: %s", out)
}
if !initializedNotified {
t.Fatal("expected initialized notification to be sent")
}
}
func TestMCPToolSSETransport(t *testing.T) {