MCP Is Going Stateless: What Changed and How I Migrated My Currency Converter Server
The Model Context Protocol (MCP) has been evolving quickly. One of the most interesting changes in the latest MCP specification is the move toward a stateless protocol model . I recently updated my MCP currency converter server to work with the newer stateless behavior and the new split TypeScript SDK packages, particularly @modelcontextprotocol/server . In this article, I'll explain: What MCP…
The Model Context Protocol (MCP) has transitioned to a stateless architecture, simplifying its deployment in cloud-native environments. This change eliminates the need for sessions and introduces a more straightforward, request-oriented approach. Stateful MCP had limitations in distributing instances horizontally and required additional mechanisms like sticky sessions or shared stores to maintain session state.
Stateless MCP allows requests to be handled by any server instance without the need for persistent session information. While the application can still maintain its own state, it is represented explicitly within the application logic rather than being hidden in the MCP protocol. The update also brings changes to Streamable HTTP, removing protocol-level sessions and standalone GET stream endpoints.
Now, all MCP requests are sent as individual POST requests to a single endpoint, enabling the server to return either JSON responses or Server-Sent Events (SSE) streams associated with the request. For example, an MCP currency converter server was updated to work with the new stateless specifications. The server was originally designed to handle currency conversions, which are inherently independent and do not require conversational state.
As a result, the server can process requests such as "Convert 100 USD to EUR" and "Convert 500 GBP to USD" without maintaining any session information between calls. The server communicates with external APIs, such as an exchange rate service, to perform the conversions. By adopting the stateless MCP approach, the server architecture has become more flexible and easier to scale.
With the split TypeScript SDK packages, the project can now leverage separate packages like @modelcontextprotocol/server for building MCP servers and @modelcontextprotocol/client for client-side functionality, further simplifying development and integration.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.