Skip to content

Commit dcbfef8

Browse files
committed
read SSE response into json rpc result and load tool def
1 parent feedcd6 commit dcbfef8

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

internal/mcp/mcp_request.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,19 @@ func FetchToolDefinitions(ctx context.Context, client api.Client) (map[string]*T
1919
if err != nil {
2020
return nil, errors.Wrap(err, "failed to list tools from mcp endpoint")
2121
}
22-
defer resp.Body.Close()
23-
24-
data, err := io.ReadAll(resp.Body)
22+
data, err := readSSEResponseData(resp)
2523
if err != nil {
26-
return nil, errors.Wrap(err, "failed to read mcp response data")
24+
return nil, errors.Wrap(err, "failed to read list tools SSE response")
2725
}
28-
return loadToolDefinitions(data)
26+
27+
var rpcResp struct {
28+
Result json.RawMessage `json:"result"`
29+
}
30+
if err := json.Unmarshal(data, &rpcResp); err != nil {
31+
return nil, errors.Wrap(err, "failed to unmarshal JSON-RPC response")
32+
}
33+
34+
return loadToolDefinitions(rpcResp.Result)
2935
}
3036

3137
func DoToolCall(ctx context.Context, client api.Client, tool string, vars map[string]any) (*http.Response, error) {

0 commit comments

Comments
 (0)