(ctx context.Context)
| 162 | } |
| 163 | |
| 164 | func (c *McpClient) DiscoverTools(ctx context.Context) ([]map[string]any, error) { |
| 165 | resp, err := c.Request(ctx, "tools/list", map[string]any{}) |
| 166 | if err != nil { |
| 167 | return nil, err |
| 168 | } |
| 169 | tools := mapSliceFromAny(asMap(resp)["tools"]) |
| 170 | c.mu.Lock() |
| 171 | c.tools = copyMapSlice(tools) |
| 172 | c.mu.Unlock() |
| 173 | return tools, nil |
| 174 | } |
| 175 | |
| 176 | func (c *McpClient) DiscoverResources(ctx context.Context) ([]map[string]any, error) { |
| 177 | resp, err := c.Request(ctx, "resources/list", map[string]any{}) |