Check robustness to missing fields: servers should reject and otherwise ignore bad requests. Fixed bugs: - No id in 'initialize' should not panic (#197). - No id in 'ping' should not panic (#194). - No params in 'initialize' should not panic (#195). - Notifications with IDs should not be treated like requests. (#196) - No params in 'logging/setLevel' should not panic. - No params in 'completion/complete' should not panic. - JSON null params should also not panic in these cases. -- prompts -- code_review -- client -- { "jsonrpc": "2.0", "method": "initialize", "params": { "protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": { "name": "ExampleClient", "version": "1.0.0" } } } { "jsonrpc": "2.0", "id": 1, "method": "initialize" } { "jsonrpc": "2.0", "id": 2, "method": "initialize", "params": { "protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": { "name": "ExampleClient", "version": "1.0.0" } } } { "jsonrpc":"2.0", "id": 3, "method": "notifications/initialized" } { "jsonrpc":"2.0", "method": "notifications/initialized" } { "jsonrpc":"2.0", "method":"ping" } { "jsonrpc":"2.0", "id": 4, "method": "logging/setLevel" } { "jsonrpc":"2.0", "id": 5, "method": "completion/complete" } { "jsonrpc":"2.0", "id": 4, "method": "logging/setLevel", "params": null } -- server -- { "jsonrpc": "2.0", "id": 1, "error": { "code": -32600, "message": "invalid request: missing required \"params\"" } } { "jsonrpc": "2.0", "id": 2, "result": { "capabilities": { "logging": {}, "prompts": { "listChanged": true } }, "protocolVersion": "2024-11-05", "serverInfo": { "name": "testServer", "version": "v1.0.0" } } } { "jsonrpc": "2.0", "id": 3, "error": { "code": -32600, "message": "invalid request: unexpected id for \"notifications/initialized\"" } } { "jsonrpc": "2.0", "id": 4, "error": { "code": -32600, "message": "invalid request: missing required \"params\"" } } { "jsonrpc": "2.0", "id": 5, "error": { "code": -32600, "message": "invalid request: missing required \"params\"" } } { "jsonrpc": "2.0", "id": 4, "error": { "code": -32600, "message": "handling 'logging/setLevel': invalid request: missing required \"params\"" } }