Sometimes it makes sense to cache tool definitions and not do a ListToolsAsync on every reconnect. Adding a WithMcpClient() that creates a new instance with the provided client to McpClientTool would enable this pattern.