代理框架與 MCP
Agno 3.0.6 Enables Stateless Horizontal Scaling for MCP Services—at the Cost of Notifications and Stream Resumption
Agno 3.0.6 introduces stateless MCP transport, allowing any replica to handle requests without session affinity. The framework also adds protocol version negotiation and a Server Card, but retains the legacy session-based mode as the default for compatibility with existing deployments.

Agno 3.0.6 extends MCP servers beyond session-bound operation with an optional stateless deployment mode. When developers configure `MCPConfig(stateless=True)`, `/mcp` requests no longer depend on server-side sessions. In Kubernetes or other multi-replica environments, any instance can therefore handle subsequent requests without sticky connections pinning a client to its original node. This simplifies horizontal scaling, failover, and load balancing, but the transition comes with trade-offs: stateless mode does not support server-initiated notifications and sacrifices the ability to resume interrupted SSE streams, so it remains disabled by default in this release.
The client adds `MCPTools(protocol_mode=...)` for selecting the protocol generation. The default, `legacy`, preserves the existing session-based handshake; setting it to `auto` enables negotiation of the latest version supported by both sides, including the sessionless behavior of the 2026-07-28 protocol generation. The underlying MCP client has been rebuilt on `fastmcp.Client`. This default matters: upgrading the package will not automatically change the semantics of existing servers, but teams adopting the new transport must explicitly update their configuration and retest reverse proxies, timeouts, retries, and stream handling.
AgentOS also exposes the service name, version, instructions, and list of available tools at `GET /mcp/server-card`, allowing deployment systems to discover service capabilities in advance. The new release also permits designated custom routes to be made public through `AuthorizationConfig.excluded_route_paths` without disabling global authentication. This is useful for health checks or public metadata, but it also introduces another authorization exception that must be audited.
The release also fixes Anthropic thinking block replay, Gemini image MIME types, duplicate trailing chunks, and streaming error propagation. Engineers should next validate idempotency and retry semantics in stateless mode and confirm that their applications do not implicitly depend on notifications, stream resumption, or node-local state. “Any replica can respond” addresses only the transport session; it does not automatically make agent memory, tool side effects, or database transactions stateless.