Skip to content

0.1.4

Latest

Choose a tag to compare

@BenA-SA BenA-SA released this 30 Jul 15:04
d888ed9

django-stateless-mcp 0.1.4

Added

  • Subscription streams (SEP-2575). subscriptions/listen — the
    2026-07-28 replacement for the standing GET stream, whose POST response is
    itself the stream — is now served: under ASGI the response streams live SSE
    frames (ack, then filtered, subscription-id-tagged events) until the client
    disconnects; under WSGI, where a live stream would pin a worker, the view
    answers an explicit 501 unsupported_deployment instead of hanging. Routed
    by the spec's required mcp-method header; every other request is
    byte-identical to before. Wire an external SubscriptionBus
    (MCPServer(subscriptions=…)) for multi-replica event fan-out. The
    conformance suite's server-stateless scenario now passes 30/30 and has
    left the expected-failures baseline. (ADR-0020)

Fixed

  • Worker-thread database connections are now recycled. Sync tools run
    in the SDK's thread pool, which Django's request_finished cleanup never
    reaches — connections opened there were never aged out or health-checked,
    a slow stale-connection leak under sustained load. The view now runs
    Django's own close_old_connections inside that pool after each request,
    honouring CONN_MAX_AGE exactly as request threads do. (ADR-0021)

Changed

  • mcp_view's published return annotation widens to HttpResponseBase
    (streaming responses are not HttpResponse subclasses).
  • The example project registers test_trigger_tool_change /
    test_trigger_prompt_change tools and an in-memory subscription bus.