MCPcopy Create free account
hub / github.com/modelcontextprotocol/go-sdk / TestClientCapabilitiesOverWire

Function TestClientCapabilitiesOverWire

mcp/client_test.go:443–545  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

441}
442
443func TestClientCapabilitiesOverWire(t *testing.T) {
444 testCases := []struct {
445 name string
446 clientOpts *ClientOptions
447 wantCapabilities *ClientCapabilities
448 }{
449 {
450 name: "Default capabilities",
451 clientOpts: nil,
452 wantCapabilities: &ClientCapabilities{
453 Roots: RootCapabilities{ListChanged: true},
454 RootsV2: &RootCapabilities{ListChanged: true},
455 },
456 },
457 {
458 name: "Custom Capabilities with roots listChanged false",
459 clientOpts: &ClientOptions{
460 Capabilities: &ClientCapabilities{
461 RootsV2: &RootCapabilities{ListChanged: false},
462 },
463 },
464 wantCapabilities: &ClientCapabilities{
465 Roots: RootCapabilities{ListChanged: false},
466 RootsV2: &RootCapabilities{ListChanged: false},
467 },
468 },
469 {
470 name: "Dynamic sampling capability",
471 clientOpts: &ClientOptions{
472 Capabilities: &ClientCapabilities{
473 RootsV2: &RootCapabilities{ListChanged: true},
474 },
475 CreateMessageHandler: func(context.Context, *CreateMessageRequest) (*CreateMessageResult, error) {
476 return nil, nil
477 },
478 },
479 wantCapabilities: &ClientCapabilities{
480 Roots: RootCapabilities{ListChanged: true},
481 RootsV2: &RootCapabilities{ListChanged: true},
482 Sampling: &SamplingCapabilities{},
483 },
484 },
485 {
486 name: "Empty capabilities disables defaults",
487 clientOpts: &ClientOptions{
488 Capabilities: &ClientCapabilities{},
489 },
490 wantCapabilities: &ClientCapabilities{},
491 },
492 {
493 name: "Extensions over wire",
494 clientOpts: func() *ClientOptions {
495 caps := &ClientCapabilities{
496 RootsV2: &RootCapabilities{ListChanged: true},
497 }
498 caps.AddExtension("io.example/ext", map[string]any{"key": "value"})
499 return &ClientOptions{Capabilities: caps}
500 }(),

Callers

nothing calls this directly

Calls 9

AddExtensionMethod · 0.95
ConnectMethod · 0.95
ConnectMethod · 0.95
NewClientFunction · 0.85
NewInMemoryTransportsFunction · 0.85
NewServerFunction · 0.85
RunMethod · 0.80
InitializeParamsMethod · 0.80
CloseMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…