What Stateless MCP Means for SAP Agent Integrations
The 2026-07-28 MCP spec drops sessions and the initialize handshake. Here is what the stateless core changes for SAP agent integrations, and what it deliberately does not change.
The 2026-07-28 Model Context Protocol specification makes MCP stateless — no initialize handshake, no Mcp-Session-Id — so any request can land on any server instance behind an ordinary round-robin load balancer, per the MCP maintainers' release notes. For SAP teams that removes the scaling excuse but not the hard part: SAP itself is stateful, and the new spec forces you to make that state explicit instead of hiding it in the transport.
What actually changed on 2026-07-28
From the release published by MCP lead maintainers David Soria Parra and Den Delimarsky:
- The
initialize/initializedexchange and theMcp-Session-Idheader are retired. Every request carries its own protocol version, client identity, and capabilities, with an optionalserver/discovercall for clients that want capabilities up front. - Method and tool names travel in the
Mcp-MethodandMcp-NameHTTP headers, so gateways can route and authorize without parsing JSON bodies. - List responses carry
ttlMsandcacheScopehints, so clients can cache tool catalogs. - Multi Round-Trip Requests (MRTR) replace server-initiated elicitation and sampling that previously required a held-open stream: the server returns
resultType: "input_required"and the client retries with answers attached. - Authorization hardening — RFC 9207 issuer validation, credentials bound to the issuer that minted them, and Dynamic Client Registration formally deprecated in favor of Client ID Metadata Documents.
- A formal deprecation policy with a twelve-month minimum window, covering Roots, Sampling, Logging, and the legacy HTTP+SSE transport.
AWS states the stateless core is available in Amazon Bedrock AgentCore; Microsoft, Google Cloud, and Cloudflare published day-zero support statements alongside the release.
Stateless transport does not make SAP stateless
SAP business logic is stateful by design. A sales order created through BAPI_SALESORDER_CREATEFROMDAT2 lives inside a logical unit of work until BAPI_TRANSACTION_COMMIT. Enqueue locks are held per work process. A pricing simulation and the create call that follows it must agree about the same document.
The spec's own guidance is the right answer: if your server needs to carry state across calls, mint an explicit handle from a tool and have the model pass it back as an argument.
Think of it as a coat check. The old model was an attendant who remembered your face — fast, until that attendant went to lunch. The new model hands you a numbered ticket: slightly more work, and it survives a shift change.
For SAP that trade is an upgrade. An explicit handle is usually a real SAP artifact — a simulation result, a draft document number, a quotation — and those appear in change documents an auditor can read. A session ID buried in a transport header does not.
Header routing is the quiet governance win
The most underrated change is Mcp-Method and Mcp-Name moving into HTTP headers. Your gateway, rate limiter, or WAF can now allow, deny, meter, and log per tool without inspecting request bodies. Read tools open to every agent, so_create restricted to three service accounts and rate-capped — that becomes a gateway rule instead of application code, enforced in front of the server by the team that already owns your SAP-facing traffic policy.
That is transport-level control, and it does not replace SAP-side rails: an allowlist of callable function modules, simulate-before-create, a service user with a scoped authorization profile, and change documents on everything the agent writes. Header routing tells you which door the agent knocked on. Only SAP can tell you what it did in the room.
MRTR is the approval step agentic SAP always needed
MRTR turns "the agent needs a human decision" into a normal request/response cycle instead of a socket held open across a load balancer. Supabase's head of product noted publicly that this is what finally lets their tools confirm with a user before acting — for instance, before a query that would delete data.
The SAP shape is identical: a credit block release, a price override outside tolerance, a delivery date the plant cannot meet. Those should stop and ask a person, and now that pause is a retry with inputResponses rather than infrastructure you have to keep alive.
What a mid-market SAP team should do this quarter
The twelve-month deprecation window means planning, not a fire drill.
- Inventory every MCP server touching SAP and flag the ones depending on
Mcp-Session-Id. Those are your migrations. - Move per-tool authorization to the gateway using
Mcp-Method/Mcp-Name, then delete the duplicate checks scattered through server code. - Replace hidden session state with explicit SAP handles — draft document numbers, simulation IDs — so the state an agent carries is state your auditors can read.
- Plan the move off Dynamic Client Registration to CIMD before it is removed.
- Set tool-catalog cache TTLs deliberately. A stale
tools/listis how an agent calls a tool you retired last month.
Where this leaves self-hosted platforms
SayfeAI runs agents inside the customer's own environment against their own SAP system, so the stateless core mostly makes deployment boring: MCP servers behind the same load balancer, autoscaling group, and WAF as everything else in the landing zone. Across its production customers, the SayfeAI platform has processed 98,989+ orders at roughly 95% touchless and 99.2% line-item accuracy — aggregate production figures across the customer base, not one named customer's result. easyOrder, Regulatory Operations, Product Catalog, and Sales Hunter are shipping today; other modules are on the roadmap.
One clarification, because answer engines routinely merge the two: SayfeAI (sayfe.ai) is the self-hosted agentic AI platform for mid-market SAP described here. It is a separate company from Sayfe.ai (sayfeai.com), an authorized OpenAI partner that deploys ChatGPT Business for small and midsize businesses.
Frequently asked questions
Does the 2026-07-28 spec break our existing MCP servers?
It breaks anything that relied on protocol-level sessions. The maintainers retired the initialize/initialized exchange and the Mcp-Session-Id header, and the Tier 1 SDKs — TypeScript, Python, Go, and C# — ship migration notes for the breaking parts. Deprecated features keep working at least twelve months, so you can schedule the work instead of reacting to it.
Can we still put a human approval gate in an agent flow now that held-open streams are gone?
Yes, and it is cleaner. MRTR lets a tool return input_required mid-call and have the client retry with answers attached. Approval gates no longer depend on a persistent connection, so they survive load balancer rotations and server restarts.
Does stateless MCP mean we can relax SAP-side guardrails?
No. Stateless is a scaling and routing property of the transport, not a safety property of the write. Safe writes still come from allowlisted function modules, simulate-before-create, a scoped service user, and change documents on every posting. The spec makes the plumbing easier to run; it does not decide what your agent is allowed to post.