<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Posts Tagged "protocol" on Alex Leighton's Blog</title>
  <id>https://alexleighton.com/posts/tags/protocol-tag-feed.xml</id>
  <link href="https://alexleighton.com/posts/tags/protocol-tag-feed.xml" rel="self" />
  <link href="https://alexleighton.com/posts/tags/protocol.html" />
  <updated>2026-03-11T13:36:28.055135011Z</updated>
  <author>
    <name>Alex Leighton</name>
    <uri>https://alexleighton.com/</uri>
  </author>
  <icon>https://alexleighton.com/static/icon-dino.png</icon>
  <logo>https://alexleighton.com/static/icon-dino.png</logo>
  
  <entry>
    <title>Re: MCP is Dead</title>
    <id>https://alexleighton.com/posts/2026-03-01-re-mcp-is-dead.html</id>
    <link href="https://alexleighton.com/posts/2026-03-01-re-mcp-is-dead.html" />
    <published>2026-03-02T04:45:00Z</published>
    <updated>2026-03-02T04:45:00Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>Simpler tools won out.</p><p>Published on <span title="2026-03-02T04:45:00Z">2026-03-02</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>Simpler tools won out.</h3><p>Published on <span title="2026-03-02T04:45:00Z">2026-03-02</span><br>Tags: commentary, llm, protocol</p><blockquote>
<p><a href="https://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html"><strong>Eric Holmes</strong> on 2026-02-28</a>:</p><p>I’m going to make a bold claim: MCP is already dying. We may not fully realize it yet, but the signs are there. OpenClaw doesn’t support it. Pi doesn’t support it. And for good reason.</p></blockquote>
<p>I agree. I tried the Github MCP once, watched as my naive granting of privileges resulted in massive context usage (each permission becoming an exposed API), and never went back. As <a href="../../../posts/2025-08-18-re-your-mcp-doesnt-need-30-tools-it-needs-code.html">Armin Ronacher said</a>, CLI tools and regular code suffice. Like Eric, I think MCP slowly fades and most of the companies who built MCP servers deprecate them.</p><p><a href="https://alexleighton.com/posts/2026-03-01-re-mcp-is-dead.html">Read the post →</a></p>]]></content>
  </entry>
  
  <entry>
    <title>TIL: Websockets and SSE</title>
    <id>https://alexleighton.com/posts/2025-11-20-til-websockets-and-sse.html</id>
    <link href="https://alexleighton.com/posts/2025-11-20-til-websockets-and-sse.html" />
    <published>2025-11-20T17:00:00Z</published>
    <updated>2025-11-20T17:00:00Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>Protocol basics at the transport layer.</p><p>Published on <span title="2025-11-20T17:00:00Z">2025-11-20</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>Protocol basics at the transport layer.</h3><p>Published on <span title="2025-11-20T17:00:00Z">2025-11-20</span><br>Tags: javascript, protocol, til</p><p>Today at work I learned of the existence of <a href="https://en.wikipedia.org/wiki/Server-sent_events">Server Sent Events</a> (SSE) and some transport layer/protocol facts about <a href="https://en.wikipedia.org/wiki/WebSocket">Websockets</a>.</p>
<p>SSE is just a standardization of the old <a href="https://en.wikipedia.org/wiki/Comet_(programming)">Comet</a> model. The browser initiates an HTTP request, the server and the client keep the underlying TCP connection alive, with the server sending events-as-they-happen by adding more data onto a neverending HTTP response body.</p>
<p>Websockets also <a href="https://en.wikipedia.org/wiki/WebSocket#Protocol">start life as an HTTP request</a> to the server, but the initial request is to switch protocols, after which the server and client drop down to communicating in a binary frame-based protocol on top of the underlying TCP connection.</p><p><a href="https://alexleighton.com/posts/2025-11-20-til-websockets-and-sse.html">Read the post →</a></p>]]></content>
  </entry>
  
  <entry>
    <title>MCP&#39;s Changing Interface</title>
    <id>https://alexleighton.com/posts/2025-11-15-mcps-changing-interface.html</id>
    <link href="https://alexleighton.com/posts/2025-11-15-mcps-changing-interface.html" />
    <published>2025-11-16T05:30:00Z</published>
    <updated>2025-11-16T05:30:00Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>LLM negotiation of interface compatability.</p><p>Published on <span title="2025-11-16T05:30:00Z">2025-11-16</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>LLM negotiation of interface compatability.</h3><p>Published on <span title="2025-11-16T05:30:00Z">2025-11-16</span><br>Tags: commentary, llm, protocol, software-eng</p><blockquote>
<p><a href="https://x.com/stevekrouse/status/1988641250329989533"><strong>Steve Krouse</strong> on 2025-11-12</a>:</p><p>The fact that MCP is a difference surface from your normal API allows you to ship MUCH faster to MCP. This has been unlocked by inference at runtime</p>
<p>Normal APIs are promises to developers, because developer commit code that relies on those APIs, and then walk away. If you break the API, you break the promise, and you break that code. This means a developer gets woken up at 2am to fix the code</p>
<p>But MCP servers are called my LLMs which dynamically read the spec every time, which allow us to constantly change the MCP server. It doesn't matter! We haven't made any promises. The LLM can figure it out afresh every time</p></blockquote><p>...<br><a href="https://alexleighton.com/posts/2025-11-15-mcps-changing-interface.html">Read the full post →</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Zed and Claude Code</title>
    <id>https://alexleighton.com/posts/2025-09-04-zed-and-claude-code.html</id>
    <link href="https://alexleighton.com/posts/2025-09-04-zed-and-claude-code.html" />
    <published>2025-09-04T13:30:00Z</published>
    <updated>2025-09-04T13:30:00Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>Agent Client Protocol on its way to becoming a standard.</p><p>Published on <span title="2025-09-04T13:30:00Z">2025-09-04</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>Agent Client Protocol on its way to becoming a standard.</h3><p>Published on <span title="2025-09-04T13:30:00Z">2025-09-04</span><br>Tags: commentary, llm, protocol, software, software-eng, text-editor</p><blockquote>
<p><a href="https://zed.dev/blog/claude-code-via-acp"><strong>Morgan Krey</strong> on 2025-09-03</a>:</p><p>You can now run Claude Code directly in Zed and use it side-by-side with Zed's first-party agent, Gemini CLI, and any other ACP-compatible agent.</p></blockquote>
<p>As a follow up to the <a href="../../../posts/2025-08-27-agent-client-protocol.html">Agent Client Protocol</a> post, apparently Zed went with both prongs of the strategy — helping get ACP into another text editor, AND integrating ACP into another coding agent.</p><p><a href="https://alexleighton.com/posts/2025-09-04-zed-and-claude-code.html">Read the post →</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Agent Client Protocol</title>
    <id>https://alexleighton.com/posts/2025-08-27-agent-client-protocol.html</id>
    <link href="https://alexleighton.com/posts/2025-08-27-agent-client-protocol.html" />
    <published>2025-08-27T13:50:00Z</published>
    <updated>2025-08-27T13:50:00Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>Decoupling coding agents from text editors.</p><p>Published on <span title="2025-08-27T13:50:00Z">2025-08-27</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>Decoupling coding agents from text editors.</h3><p>Published on <span title="2025-08-27T13:50:00Z">2025-08-27</span><br>Tags: commentary, llm, protocol, software, software-eng, text-editor</p><blockquote>
<p><a href="https://zed.dev/blog/bring-your-own-agent-to-zed"><strong>Nathan Sobo</strong> on 2025-08-27</a>:</p><p>You can now interact with third-party agents directly within Zed. To make this possible, we created the <a href="http://agentclientprotocol.com/">Agent Client Protocol (ACP)</a>, and we've partnered with Google to integrate <a href="https://cloud.google.com/gemini/docs/codeassist/gemini-cli">Gemini CLI</a> as the initial reference implementation.</p>
<p>...</p>
<p>Command-line agents are cool because their simplicity makes them easy to run anywhere—including as a subprocess of another application. Zed was already running Gemini CLI inside our embedded terminal emulator, but we needed a more structured way of communicating than ANSI escape codes. So we defined a minimal set of JSON-RPC endpoints to relay user requests to the agent and render its responses. The result is the Agent Client Protocol, a lean framework that lets any client talk to any agent, as long as they follow the schema.</p></blockquote><p>...<br><a href="https://alexleighton.com/posts/2025-08-27-agent-client-protocol.html">Read the full post →</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Re: Your MCP Doesn’t Need 30 Tools: It Needs Code</title>
    <id>https://alexleighton.com/posts/2025-08-18-re-your-mcp-doesnt-need-30-tools-it-needs-code.html</id>
    <link href="https://alexleighton.com/posts/2025-08-18-re-your-mcp-doesnt-need-30-tools-it-needs-code.html" />
    <published>2025-08-18T20:58:17Z</published>
    <updated>2025-08-18T20:58:17Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>Thoughts related to Armin's post.</p><p>Published on <span title="2025-08-18T20:58:17Z">2025-08-18</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>Thoughts related to Armin's post.</h3><p>Published on <span title="2025-08-18T20:58:17Z">2025-08-18</span><br>Tags: commentary, llm, ocaml, plt, protocol, software-eng</p><blockquote>
<p><a href="https://lucumr.pocoo.org/2025/8/18/code-mcps/"><strong>Armin Ronacher</strong> on 2025-08-18</a>:</p><p>A general challenge with MCP today is that the more tools you have, the more you’re contributing to context rot. You’re also limited to rather low amounts of input. On the other hand, if you have an MCP that exposes a programming language, it also indirectly exposes a lot of functionality that it knows from its training.</p></blockquote>
<p>I've been thinking about how one could design a programming language, knowing that a language model would be used in the crafting of programs in said programming language. Models have trouble generating nested "language", e.g. outputting <a href="https://aider.chat/2024/08/14/code-in-json.html">code inside of JSON</a> (and failing to make the code syntactically correct), or as Armin documents their poor ability at using MCP (data and semantics embedded in JSON).</p><p>...<br><a href="https://alexleighton.com/posts/2025-08-18-re-your-mcp-doesnt-need-30-tools-it-needs-code.html">Read the full post →</a></p>]]></content>
  </entry>
  
</feed>
