package client import ( "context" "encoding/json" "net/http" mcp "github.com/modelcontextprotocol/go-sdk/mcp" ) // Client is a Robinhood Agentic MCP client. type Client struct { URL, Token, Name, Version string HTTP *http.Client Hook Caller session *mcp.ClientSession } // Call invokes an MCP tool by name and returns its JSON result. func (c *Client) Call(ctx context.Context, name string, args map[string]any) (json.RawMessage, error) { if c.Hook != nil { return c.Hook.Call(ctx, name, args) } if c.session != nil { return c.sessionCall(ctx, name, args) } return c.rpcCall(ctx, name, args) }