AI Pulse by Inblix

Hugging Face deploys MCP server with Streamable HTTP, dodging stateful headaches for 1M+ models

Hugging Face Blog · Jul 10, 2025 · 2 min read · Read original article →

Curated by the Inblix editorial team


Featured image for article: Hugging Face deploys MCP server with Streamable HTTP, dodging stateful headaches for 1M+ models

Hugging Face just detailed the architecture behind its official Model Context Protocol (MCP) server, and the big takeaway for developers is a hard-won production lesson: they went stateless. In a deep-dive published today, the team explained why they chose Streamable HTTP in Direct Response mode for the live deployment at hf.co/mcp, even though their open-source code supports every transport variant under the sun, including the older SSE and stateful Server Push streams.

The server’s design solves a uniquely Hugging Face problem: the community doesn’t just use models, they build interactive AI apps on Spaces. The team wanted a single URL to dynamically hand an AI assistant access to thousands of those applications, plus the ability for users to customize which tools are available on the fly. Maintaining server-side state for every anonymous user browsing models, and every authenticated user juggling custom Gradio apps and ZeroGPU quotas, would be a nightmare at scale. So they sidestepped it entirely.

MCP has burned through three protocol revisions in nine months, and Hugging Face’s post is remarkably candid about the chaos that causes for developers. The shift from SSE to Streamable HTTP and the rework of authorization means client support is a fragmented mess right now. The team’s built-in observability dashboard, which tracks how different clients manage connections and handle tool list change notifications, feels less like a luxury and more like a survival tool. Getting a push notification working consistently across Claude, Cursor, and others is clearly still a moving target.

For server builders, the technical breakdown of communication patterns is where this gets genuinely useful. Hugging Face distinguishes three modes: simple Direct Response for stateless lookups, Request Scoped Streams for long-running tasks like video generation where you need progress updates or elicitation, and Server Push Streams for persistent connections that can fire off resource change notifications. The catch with those scoped streams is that Sampling and Elicitation requests demand a stateful connection so the mcp-session-id can tie responses back properly. Hugging Face’s decision to go stateless in production is an implicit admission that, for most real-world use cases right now, the complexity of managing keep-alive and resumption mechanics on long-lived connections isn’t worth it.

💡 Key Takeaways

  1. Hugging Face chose a stateless Streamable HTTP setup in production to avoid managing per-user tool lists and quota states for millions of API consumers.
  2. MCP has undergone 3 protocol revisions in 9 months, and inconsistent client support for features like Server Push makes stateful deployments risky.
  3. The server's open-source code supports every transport mode, but the team built an observability dashboard specifically to diagnose fragmented client behavior.

Keep reading: See related articles below for more coverage on this topic.

Get smarter about AI

The sharpest AI news, curated daily. Delivered free to your inbox.

Learn more

Glossary terms

← Back to all articles