Repository navigation
Commit e889da9
committed
fix(client): respect server capabilities before querying components
ClientSessionGroup unconditionally called list_tools(), list_prompts(),
and list_resources() on every connect, regardless of whether the server
advertised those capabilities. This violates the MCP lifecycle spec
which states clients MUST only use capabilities that were successfully
negotiated.
Fix: check session.initialize_result.capabilities before each list
call. Only query prompts/resources/tools if the server advertised the
corresponding capability (caps.prompts/resources/tools is not None).
Fixes #2689
Signed-off-by: Gaurav Kumar Sinha <gaurav@substrai.dev>1 parent 2472563 commit e889da9
1 file changed
Lines changed: 21 additions & 16 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
345 | 345 | | |
346 | 346 | | |
347 | 347 | | |
| 348 | + | |
| 349 | + | |
348 | 350 | | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
354 | 357 | | |
355 | 358 | | |
356 | 359 | | |
357 | 360 | | |
358 | 361 | | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
363 | | - | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
364 | 368 | | |
365 | 369 | | |
366 | 370 | | |
367 | 371 | | |
368 | 372 | | |
369 | | - | |
370 | | - | |
371 | | - | |
372 | | - | |
373 | | - | |
374 | | - | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
375 | 380 | | |
376 | 381 | | |
377 | 382 | | |
| |||
0 commit comments