Skip to content

v0.2.3

Choose a tag to compare

@JLay2026 JLay2026 released this 09 Jun 20:23

Highlights

First fully-working /mcp release with Cowork's managed MCP UI and other
strict-spec MCP clients. Three deploy-time bugs from v0.2.0 fixed, plus
one stateless-mode upgrade in v0.2.3 itself.

Changes since v0.2.0

  • v0.2.1 — FastAPI lifespan integration for FastMCP session_manager
    (fixes Task group is not initialized runtime error); clean /mcp/
    URL (was double-prefixed /mcp/mcp/); uvicorn --proxy-headers
    --forwarded-allow-ips "*" so X-Forwarded-Proto from upstream
    reverse proxy is honored.
  • v0.2.2 — Disable FastMCP DNS rebinding protection (default
    rejects any Host header other than localhost/127.0.0.1 with 421
    Misdirected Request; out of scope for a perimeter-secured backend).
  • v0.2.3 — Switch to stateless_http + json_response mode. Default
    stateful mode keeps a long-poll GET stream open for server-pushed
    events, which strict-spec MCP clients mishandle and hang on for
    minutes per call. Stateless collapses each MCP call to a single
    POST with the response in the body as application/json.

Compatibility

  • partsmith tools are all request/response (no streaming output), so
    stateless mode loses nothing.
  • Existing clients that worked in stateful mode (curl, mcp-cli) continue
    to work — stateless is a strict subset.
  • The cad-agent-shim Windows-side translator (deprecated in v0.2.0) is
    fully replaced; archive that repo.

Verified deploy

End-to-end through Cowork managed MCP UI on 2026-06-09. Full pipeline:
Cowork → Caddy → uvicorn → FastAPI → FastMCP /mcp/ → engine + renderer.