<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Backwards-Compatibility on Thiago Avelino</title><link>https://avelino.run/tags/backwards-compatibility/</link><description>Recent content in Backwards-Compatibility on Thiago Avelino</description><generator>Hugo</generator><language>en-us</language><copyright>© Avelino</copyright><lastBuildDate>Fri, 31 Jul 2026 09:00:02 -0300</lastBuildDate><atom:link href="https://avelino.run/tags/backwards-compatibility/index.xml" rel="self" type="application/rss+xml"/><item><title>Absence is the compatibility contract</title><link>https://avelino.run/absence-is-the-compatibility-contract/</link><pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate><guid>https://avelino.run/absence-is-the-compatibility-contract/</guid><description>&lt;p&gt;MCP &lt;a href="https://blog.modelcontextprotocol.io/posts/2026-07-28/"&gt;announced&lt;/a&gt; revision &lt;a href="https://modelcontextprotocol.io/specification/2026-07-28"&gt;&lt;code&gt;2026-07-28&lt;/code&gt;&lt;/a&gt; three days ago. It deletes the &lt;code&gt;initialize&lt;/code&gt; handshake and protocol-level sessions. Every request now carries its own protocol version, client identity and capabilities in &lt;code&gt;_meta&lt;/code&gt;, and every result carries a &lt;code&gt;resultType&lt;/code&gt;. It is the largest breaking change the protocol has had, and the &lt;a href="https://modelcontextprotocol.io/specification/2026-07-28/changelog"&gt;changelog&lt;/a&gt; runs long.&lt;/p&gt;
&lt;p&gt;I maintain &lt;a href="https://github.com/avelino/mcp"&gt;mcp&lt;/a&gt;, a CLI that turns MCP servers into terminal commands and can run as a proxy in front of them. That puts me on both sides of the wire at once. To Claude, Cursor and whatever else connects, my proxy is a server. To the backends behind it, npx processes and HTTP endpoints, it is a client. Every one of those backends is on &lt;a href="https://modelcontextprotocol.io/specification/2025-11-25"&gt;&lt;code&gt;2025-11-25&lt;/code&gt;&lt;/a&gt; or older and will be for a year.&lt;/p&gt;</description></item></channel></rss>