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

Function TestSamplingWithTools_ToolResult

mcp/sampling_test.go:97–154  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

95}
96
97func TestSamplingWithTools_ToolResult(t *testing.T) {
98 ctx := context.Background()
99 ct, st := NewInMemoryTransports()
100
101 // Track messages received by client
102 var gotParams *CreateMessageParams
103
104 client := NewClient(testImpl, &ClientOptions{
105 CreateMessageHandler: func(_ context.Context, req *CreateMessageRequest) (*CreateMessageResult, error) {
106 gotParams = req.Params
107 return &CreateMessageResult{
108 Model: "test-model",
109 Role: "assistant",
110 Content: &TextContent{Text: "The result is 3"},
111 }, nil
112 },
113 Capabilities: &ClientCapabilities{
114 Sampling: &SamplingCapabilities{Tools: &SamplingToolsCapabilities{}},
115 },
116 })
117
118 server := NewServer(testImpl, nil)
119 ss, err := server.Connect(ctx, st, nil)
120 if err != nil {
121 t.Fatal(err)
122 }
123 defer ss.Close()
124
125 cs, err := client.Connect(ctx, ct, nil)
126 if err != nil {
127 t.Fatal(err)
128 }
129 defer cs.Close()
130
131 params := &CreateMessageParams{
132 MaxTokens: 1000,
133 Messages: []*SamplingMessage{
134 {Role: "user", Content: &TextContent{Text: "Calculate 1+2"}},
135 {Role: "assistant", Content: &ToolUseContent{
136 ID: "tool_1",
137 Name: "calculator",
138 Input: map[string]any{"x": 1.0, "y": 2.0},
139 }},
140 {Role: "user", Content: &ToolResultContent{
141 ToolUseID: "tool_1",
142 Content: []Content{&TextContent{Text: "3"}},
143 }},
144 },
145 }
146 _, err = ss.CreateMessage(ctx, params)
147 if err != nil {
148 t.Fatalf("CreateMessage() error = %v", err)
149 }
150
151 if diff := cmp.Diff(params, gotParams); diff != "" {
152 t.Errorf("CreateMessageParams mismatch (-want +got):\n%s", diff)
153 }
154}

Callers

nothing calls this directly

Calls 7

ConnectMethod · 0.95
ConnectMethod · 0.95
NewInMemoryTransportsFunction · 0.85
NewClientFunction · 0.85
NewServerFunction · 0.85
CreateMessageMethod · 0.80
CloseMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…