\

MCP 2026-07-28 Specification: transport going stateless

58 points - today at 6:35 PM

Source
  • punkpeye

    today at 8:48 PM

    Finally.

    I am running an MCP server gateway/registry (some of you may know Glama).

    I cannot tell you what portion of our issues/bugs were due to the need to persist server state.

    This change will allow us to offer a lot easier way for people to use Open-Source MCP servers.

    • btbuilder

      today at 8:01 PM

      Excellent improvement. The server-side complexity required to handle sessions has been a large burden both on infrastructure and on educating teams on its characteristics.

      • ilc

        today at 7:36 PM

        I'd made the shift to HTTP/Stateless from MCP a few months ago. It's the right thing to do IMHO. Reliability up, problems down. TOON support is natural, if desired, etc.

        My only question is how do you handle channels in the architecture now. From what I saw in Claude Code, shifting to a totally http world has some timeout issues if a server drops out and comes back. Because of that I'm stuck writing stubs for my internal use MCP, this is fine for me, but if you are cleaning up semantics: Understanding how we expect clients to act around failure would really help, the story.

        • osinix

          today at 8:01 PM

          This is the right practice. Why put the burden on the server? It is the job of client to remember, not the server. Server is there to serve requests, not do the remembering. That is how http worked from the beginning and that is why it has been successful.

            • progbits

              today at 8:21 PM

              It was clear from the start (to anyone who ever designed a protocol [1]) that MCP was a pile anti-patterns. They are slowly undoing the mistakes one by one. Maybe next years version will finally be something usable that it could have been from v1.

              [1] https://news.ycombinator.com/item?id=44016783

                • jgil

                  today at 8:37 PM

                  Yes. However, using something like MCP encourages many companies to claim that they are "integrating AI" -- and typical MCP implementations burn tokens quite profitably.

          • dend

            today at 6:47 PM

            Hey folks - one of the Lead Maintainers for MCP. Happy that we got this release out the door today, this is an exciting change for those that wanted to roll out remove MCP servers into serverless hosts. There is, of course, more good stuff packed, so if you have questions or feedback - our team is here to help!

              • jakobgm

                today at 8:37 PM

                Congrats at shipping the new specification!

                Any new to share on file upload support? We have shipped a MCP server and it has been really frustrating to observe MCP clients fumbling around with base64-encodings, polluting their context window with binary data. SEP-1306 (Binary Mode Elicitation) was superseded by SEP-2356 (File input support for tools and elicitation), and that was in turned superseded by SEP-2631 (File Objects and Transfer) which is currently left in a draft state with little activity.

                Allowing LLM-based agents to shuffle binary data around efficiently and reliably seems like a pretty big gap in the current specification, if you ask me!

                  • colinator

                    today at 8:55 PM

                    I concur. Most of my MCP pain is dealing with client's differing ability to handle images. Some clients (old codex) would even truncate the base64 data regardless of how it was json-wrapped. And sometimes they just ingest the base64 date directly into their context window. Not sure if this is an MCP thing or a clients-poorly-implementing-MCP thing.

                • checker

                  today at 6:50 PM

                  Thank you for your work! I was looking forward to the stateless update.

                  • dan-kwiat

                    today at 7:28 PM

                    Great work! Any word on when to expect support across claude clients?

                  • cidd

                    today at 7:18 PM

                    When will java sdk come out with latest changes from spec?

                    • ihsw

                      today at 7:57 PM

                      [dead]

                      • Oras

                        today at 7:03 PM

                        Thank you!

                        What’s the best practice for tools where the upstream API only supports basic auth (username/password) and there’s no OBO option? In my case the login returns a token that’s only valid for an hour, so the user has to re-auth after that. Do you stash the credentials on the MCP server and silently refresh, or is there a nicer pattern people are using?

                          • dan-kwiat

                            today at 7:26 PM

                            URL Elicitation works well if a human is driving the client. Unfortunately MCP client support is patchy but I expect that will change now the protocol is stateless.

                    • flowofcontrol

                      today at 8:16 PM

                      The improvements look great. At the same time I wonder if it is possible to keep using MCP 1.x as well for now. Development is expensive, right? It also looks possible to transition to MCP 2.x by tackling the different improvements one at a time as long as we take stateless core first?

                        • closetheloopdev

                          today at 9:02 PM

                          I just realized that MCP releases do not use semver. It says this is a 2026-07-28 version which is quite unusual and can be quite hard to keep track of, especially when backwards compatibility is of concerns.

                          There is a one-year-old open GitHub issue asking to use semver instead: https://github.com/modelcontextprotocol/modelcontextprotocol...

                      • hangrybear666

                        today at 8:23 PM

                        To be honest I've completely ignored this feature and 95% of my colleagues at work have not interacted with it at all - we are not an AI pilled company - but this specification now seems mature enough for me to be excited about developing a server, just haven't found a concrete use case yet that isn't already publicly available.

                        • firasd

                          today at 6:43 PM

                          Perfect. The actual tool calls are stateless anyway; when an LLM asks get_my_todos and then asks add_todo it’s not actually holding anything in RAM it’s just text going back into the context window (get_my_todos results) and then another tool call

                          And even on the server side statefulness is very iffy anyway. How long are you going to hold something in RAM from a client and how long will you hold the connection open

                          • varmabudharaju

                            today at 6:46 PM

                            are they coming up with an alternative? i use them to monitor workflows that takes days and now i have to make some changes

                              • dend

                                today at 6:48 PM

                                This protocol change doesn't require you to do anything to existing running MCP code - only if you want to take advantage of new capabilities!

                            • djhworld

                              today at 6:49 PM

                              Are the HTTP headers for method/name etc even needed at this point and just use urls instead?

                              e.g. mymcpserver.com/tools/call?mcp-method=search

                              • pullrun

                                today at 8:58 PM

                                [dead]

                                • landver

                                  today at 7:26 PM

                                  [flagged]

                                  • rupatiwari25

                                    today at 7:30 PM

                                    [dead]