Thoughts, tutorials, and insights on web development
The Model Context Protocol has had five specification revisions in twenty months. Collected in one table, with what each revision added and — the column that matters — what it took back.
Take away the vocabulary and an MCP server is a list of tools, a description of each written to be read by a machine, and two ways of delivering a message. Plus authorization, and three ways of failing — the third of which no specification can catch, and it cost me twelve published articles.
Why Rack::BodyProxy is fading out, how rack.response_finished delivers accurate post-response hooks with fewer allocations, and a step-by-step migration path for your middleware.