<rss version="2.0">
  <channel>
    <title>Mcp on enumerator.dev</title>
    <link>https://enumerator.dev/t/mcp/</link>
    <description></description>
    
    <language>en-CA</language>
    
    <lastBuildDate>Fri, 18 Sep 2026 00:00:00 +0000</lastBuildDate>
    
    <item>
      <title>What is MCP: A No Bull Explainer</title>
      <link>https://enumerator.dev/what-is-mcp/</link>
      <pubDate>Fri, 18 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://enumerator.dev/what-is-mcp/</guid>
      <description>&lt;p&gt;Model Context Protocol (MCP) is a way for AI Agents to connect to an external application (usually on the internet) to gather information and perform tasks.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it. No magic.&lt;/p&gt;
&lt;h2 id=&#34;breaking-down-the-jargon&#34;&gt;Breaking Down the Jargon&lt;/h2&gt;
&lt;p&gt;I have read so many descriptions of AI tools that are riddled with jargon. &amp;ldquo;MCP is a HTTP-stream-based protocol for agentic interfaces.&amp;rdquo; &amp;ldquo;MCP does not use SSE because it now favours streamable HTTP.&amp;rdquo; &amp;ldquo;MCP is a stdio-based server to connect to an LLM.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Blah blah blah.&lt;/p&gt;
&lt;p&gt;Model context protocol is a standard that uses existing technologies. The standard is new. The technologies are not.&lt;/p&gt;
&lt;p&gt;HTTP is a transport protocol that defines how two applications connect and communicate over the internet.&lt;/p&gt;
&lt;p&gt;MCP is a semantics protocol that defines how LLM-based software can perform actions in another application. MCP connections are often transmitted over HTTP using POST requests.&lt;/p&gt;
&lt;h2 id=&#34;the-simplest-mcp-connector&#34;&gt;The Simplest MCP Connector&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;An HTTP endpoint that responds to POST with JSON-RPC in the content type, and GET that returns 405 Method Not Allowed. The GET endpoint can be used for an event stream, but we&amp;rsquo;re focusing on simplicity here.&lt;/li&gt;
&lt;li&gt;The POST body is a JSON-RPC request object and the server replies synchronously with a single JSON-RPC response object.&lt;/li&gt;
&lt;li&gt;The client sends &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;method: &amp;quot;initialize&amp;quot;&lt;/code&gt;, &lt;code&gt;protocolVersion&lt;/code&gt;, &lt;code&gt;capabilities&lt;/code&gt;, and &lt;code&gt;clientInfo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The server responds with &lt;code&gt;protocolVersion&lt;/code&gt;, &lt;code&gt;capabilities&lt;/code&gt;, &lt;code&gt;serverInfo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The client then POSTs &lt;code&gt;notifications/initialized&lt;/code&gt;and the server replies &lt;code&gt;202 Accepted&lt;/code&gt; with empty body.&lt;/li&gt;
&lt;li&gt;Tada! We have a connection!&lt;/li&gt;
&lt;li&gt;The AI Agent POSTs &lt;code&gt;tools/list&lt;/code&gt; to fetch tools or &lt;code&gt;tools/call&lt;/code&gt; with an &lt;code&gt;id&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The server always responds with an &lt;code&gt;id&lt;/code&gt; that matches request &lt;code&gt;id&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The AI Agent uses the &lt;code&gt;id&lt;/code&gt; to keep track of which response belongs to which request. We&amp;rsquo;re doing HTTP here, so the ID is superfluous, it is essential if you add an HTTP stream that can respond to multiple calls.&lt;/li&gt;
&lt;li&gt;Errors: JSON-RPC error object (&lt;code&gt;code&lt;/code&gt;/&lt;code&gt;message&lt;/code&gt;) in place of &lt;code&gt;result&lt;/code&gt;, still plain POST/JSON, no special HTTP status needed beyond 200.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;new&#34;&gt;NEW!&lt;/h3&gt;
&lt;p&gt;MCP sessions are now stateless. Are you managing &lt;code&gt;Mcp-Session-Id&lt;/code&gt;? No need!&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-mermaid&#34;&gt;sequenceDiagram
    participant C as AI Agent
    participant S as Server
    C-&amp;gt;&amp;gt;S: POST / {method: initialize, id: 1}
    S--&amp;gt;&amp;gt;C: 200 result: protocolVersion, capabilities, serverInfo, id: 1
    C-&amp;gt;&amp;gt;S: POST / {method: notifications/initialized}
    S--&amp;gt;&amp;gt;C: 202 Accepted (empty body)
    C-&amp;gt;&amp;gt;S: POST / {method: tools/list, id: 2}
    S--&amp;gt;&amp;gt;C: 200 result: tools, id: 2
    C-&amp;gt;&amp;gt;S: POST / {method: tools/call, id: 3}
    S--&amp;gt;&amp;gt;C: 200 result or error, id: 3&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;misconceptions-about-mcp&#34;&gt;Misconceptions About MCP&lt;/h2&gt;
&lt;h3 id=&#34;mcp-no-longer-recommends-server-sent-events&#34;&gt;MCP No Longer Recommends Server Sent Events&lt;/h3&gt;
&lt;p&gt;This confusion comes from the semantics of &amp;ldquo;Streamable HTTP&amp;rdquo; vs SSE (Server Sent Events). The MCP spec used to require SSE for remote connections and std IO when the MCP was on the same host as the agent. The original specification in 2024 required an SSE endpoint and a separate &lt;code&gt;/messages&lt;/code&gt; endpoint.&lt;/p&gt;
&lt;p&gt;In the current spec, MCP requires one endpoint with an optional upgrade to SSE. The wording is confusing here because the spec references &lt;a href=&#34;https://modelcontextprotocol.io/specification/2026-07-28/basic/transports/streamable-http&#34;&gt;Streamable HTTP&lt;/a&gt; under &amp;ldquo;Transports&amp;rdquo; and states that this is a replacement for HTTP+SSE. These statements are accurate, but once you read the spec, you realize that the only way to implement Streamable HTTP is by using server-sent events.&lt;/p&gt;
&lt;h3 id=&#34;mcp-is-just-an-api&#34;&gt;MCP Is Just an API&lt;/h3&gt;
&lt;p&gt;If you want to split hairs and say that since API stands for &amp;ldquo;Application Programming Interface,&amp;rdquo; then, yes, it is an interface of sorts for programming an application.&lt;/p&gt;
&lt;p&gt;But your hair splitting would be out of touch with the way people talk. API these days usually means a set of HTTP endpoints that responds with JSON accessed over REST or GraphQL.&lt;/p&gt;
&lt;p&gt;JSON APIs have been around for a long time now! And many of them don&amp;rsquo;t work well with AI agents. A large API specification is hard for an agent to reason about, which makes it difficult to accomplish tasks with a 1-1 mapping between an API and an MCP tool.&lt;/p&gt;
&lt;p&gt;MCP defines the semantics that give agents the information they need to string together novel workflows and tasks.&lt;/p&gt;
&lt;h3 id=&#34;mcp-is-a-new-technology&#34;&gt;MCP is a New Technology&lt;/h3&gt;
&lt;p&gt;MCP is only a new standard. It is based on existing technologies, and this is what makes it powerful. The MCP standard lets us quickly develop new user experiences because it uses existing technologies for connecting two applications.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>