Breaking Changes
initialize serverInfo now reports the server's own name and version
Previously the initialize result's serverInfo was hardcoded to the library's name and, incorrectly, to the MCP protocol version (e.g. "2025-03-26") as the server version. Per the MCP spec serverInfo describes the server implementation, so its name and version are now supplied by the consuming server at registration and reported as-is, while protocolVersion continues to report the MCP protocol version.
mcp-server-lib-name is obsolete
The server name is now supplied per server via :name.
New Features
mcp-server-lib-register-server gained :name and :version
Both optional. :name sets serverInfo.name and defaults to the server :id. :version sets serverInfo.version (the server's own version, distinct from the protocol version) and defaults to the new constant mcp-server-lib-default-server-version ("1.0.0").
mcp-server-lib-server-registered-p predicate
New function: returns non-nil when a server record has been registered under a given server-id via mcp-server-lib-register-server.
mcp-server-lib-installed-script-path function
New function: returns the path where mcp-server-lib-install places emacs-mcp-stdio.sh (under mcp-server-lib-install-directory).
Bug Fixes
mcp-server-lib-show-metrics tables now have column headers
Each table in the metrics buffer is preceded by a header line naming its columns.
ERT Test Helpers
mcp-server-lib-ert-assert-initialize-result gained :name/:version
They assert serverInfo.name/serverInfo.version; they default to mcp-server-lib-ert-server-id and the new constant mcp-server-lib-ert-default-version respectively.
mcp-server-lib-ert-with-server gained :name/:version
It now also registers a minimal server under mcp-server-lib-ert-server-id when none is registered, so the initialize handshake reports a serverInfo; an already-registered server is left untouched.