mcp_server() now ensures that inputSchema always includes a properties
field, even for tools with no arguments (#91 by @itkonen).
mcp_server() now negotiates the protocol version with clients, supporting versions 2024-11-05 through 2025-11-25 (#92 by @itkonen).
mcp_server() now supports HTTP transport in addition to stdio. Use type = "http" to start an HTTP server, with optional host and port arguments. For now, the implementation is authless.
mcp_server() now formats tool results in the same way as ellmer (#78 by @gadenbuie).
mcp_server() gains logical argument session_tools, allowing users to opt-out of presenting R session tools (that make it possible to communicate with mcp_session()s) to clients.
Several tightenings-up of the implementation:
mcp_session() now invisibly returns the nanonext socket used for communicating with the server.
mcp_tools() did not gain an implementation of the HTTP transport. Instead, we now recommend the mcp-remote tool for serving local MCP servers via the HTTP transport in the documentation.mcp_tools() now errors more informatively when an MCP server process exits unexpectedly (#82).r-devel-linux-x86_64-fedora-clang.Before the initial release of the package, mcptools was called acquaint and supplied a default set of tools from btw, currently a GitHub-only package, when R was used as an MCP server. The direction of the dependency has been reversed; to use the same functionality from before, transition acquaint::mcp_server() to btw::btw_mcp_server() and acquaint::mcp_session() to btw::btw_mcp_session().