Under the hood
Removed or replaced MCP server clients are now properly cleaned up on config changes.
The internal function that applies dynamic/authoritative MCP server config changes (mcp_set_servers, tool_register, etc.) was restructured to compute a diff via a new merge helper, and now explicitly cleans up removed or replaced clients by calling cleanup() on each, which previously did not happen.