Skip to content

Release 0.4.0

Latest

Choose a tag to compare

@laurynas-biveinis laurynas-biveinis released this 19 Aug 13:08
· 1 commit to main since this release
f7c34f5

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.