v0.2.3
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
(fixesTask group is not initializedruntime 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_responsemode. 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.