<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Theo McCabe</title>
    <description>The latest articles on Forem by Theo McCabe (@theomccabe).</description>
    <link>https://forem.com/theomccabe</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3829600%2F66700c6d-beaf-41d9-9c6d-d9165daec43c.jpeg</url>
      <title>Forem: Theo McCabe</title>
      <link>https://forem.com/theomccabe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/theomccabe"/>
    <language>en</language>
    <item>
      <title>MCP Isn't Dead. You're Just Using It Wrong.</title>
      <dc:creator>Theo McCabe</dc:creator>
      <pubDate>Tue, 17 Mar 2026 15:09:12 +0000</pubDate>
      <link>https://forem.com/theomccabe/mcp-isnt-dead-youre-just-using-it-wrong-3945</link>
      <guid>https://forem.com/theomccabe/mcp-isnt-dead-youre-just-using-it-wrong-3945</guid>
      <description>&lt;p&gt;Everyone and their gran have been saying that MCP is dead.&lt;/p&gt;

&lt;p&gt;But could it be that MCP's saving grace has been with us all along - hiding in plain sight?&lt;/p&gt;

&lt;p&gt;I think so.&lt;/p&gt;

&lt;p&gt;A feature buried in Claude Code's &lt;a href="https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md" rel="noopener noreferrer"&gt;Jan 2026 release&lt;/a&gt; may have marked the most powerful development in MCP since its inception - and almost nobody noticed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Dynamic Tool Registration.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkn71jh6k7dlebyu13ex.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkn71jh6k7dlebyu13ex.png" alt="Dynamic tool registration diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But what is dynamic tool registration, you ask?&lt;/p&gt;

&lt;p&gt;Dynamic tool registration extends an MCP server's abilities above those of just a glorified swagger doc - allowing the server not just to list a &lt;strong&gt;&lt;em&gt;static&lt;/em&gt;&lt;/strong&gt; set of tools, but to &lt;strong&gt;&lt;em&gt;dynamically&lt;/em&gt;&lt;/strong&gt; add and remove new tools from that list in real time as part of a stateful agent session.&lt;/p&gt;

&lt;p&gt;And what's so powerful about that?&lt;/p&gt;

&lt;p&gt;Well for one it allows us to elegantly solve the main problem most people had with MCP in the first place - context bloat. By grouping our tools into collections of related actions... a larger logical grouping we might call an ability... we can then provide a &lt;code&gt;load_ability&lt;/code&gt; tool, which when called by the agent, adds a related collection of tools to the current session.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvfjtca1n75l1wu8sr8y.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvfjtca1n75l1wu8sr8y.jpg" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, we might decide, while building a GitHub MCP server, that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reading and editing issues is one ability called &lt;code&gt;GitHub Issues&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;reading and writing code is a different ability called &lt;code&gt;GitHub Coding&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, because of dynamic tool registration, the agent doesn't need context about all of the subtools for every ability bloating its context window - it just needs a search abilities tool and a load abilities tool.&lt;/p&gt;

&lt;p&gt;With these 2 meta tools as a starting point the agent can load the &lt;code&gt;GitHub Issues&lt;/code&gt; ability - and immediately use it to create a new issue without knowing anything about pull requests, branching rules, or any other unrelated GitHub concept. Perhaps it can even "forget" the issues ability when it's done by starting a new session? Very neat.&lt;/p&gt;

&lt;h2&gt;
  
  
  Going Deeper - MCP Inception
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgfojo8a497bnz5wbzld8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgfojo8a497bnz5wbzld8.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But dynamic tool registration doesn't just stop at reducing context bloat. Oh no. It can actually get much deeper and weirder than that.&lt;/p&gt;

&lt;p&gt;Last weekend I built and shipped a project which stretches the capabilities of MCP further than I've seen them stretched before. It turns dynamic tool registration into a self-generating recursive MCP monster.&lt;/p&gt;

&lt;p&gt;Meet &lt;a href="https://github.com/commandable/commandable-mcp" rel="noopener noreferrer"&gt;Commandable MCP&lt;/a&gt; - the MCP server for creating new MCP servers on the fly. MCP inception, if you will.&lt;/p&gt;

&lt;p&gt;Commandable gives agents &lt;strong&gt;&lt;em&gt;tools to create new tools&lt;/em&gt;&lt;/strong&gt;, usable immediately without compiling any code or restarting any processes. It also - by the way - keeps your credentials secure and encrypted at rest.&lt;/p&gt;

&lt;p&gt;And how does this MCP inception work? With dynamic tool registration of course!&lt;/p&gt;

&lt;h3&gt;
  
  
  How Commandable MCP Works
&lt;/h3&gt;

&lt;p&gt;We started by building an MCP with ability groupings and registration just like I described above - and then we 10x'd it by adding some more meta tools... namely - &lt;strong&gt;&lt;em&gt;create_integration&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;create_tool&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For these, we defined a framework for writing tools in JSON which allows us to execute them safely in a sandbox without system access, internet access, or plain string credentials. We wrote a good prompt to tell the agents how to generate this JSON.&lt;/p&gt;

&lt;p&gt;And that's it, away we go.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Can Commandable MCP Be Used For?
&lt;/h3&gt;

&lt;p&gt;Think about a standard Trello MCP server.&lt;/p&gt;

&lt;p&gt;It gives an agent something like &lt;code&gt;create_trello_card(boardId, listId, name, description, labelIds, ...)&lt;/code&gt;. However, every time the agent wants to use it, it has to go fishing for IDs, calling &lt;code&gt;get_boards&lt;/code&gt;, &lt;code&gt;get_lists&lt;/code&gt;, &lt;code&gt;get_labels&lt;/code&gt; - just to find the right place to add the card - and then ignore tons of optional parameters on the create tool itself.&lt;/p&gt;

&lt;p&gt;Imagine instead, the agent inspects your actual Trello account and generates &lt;code&gt;add_bug_to_sprint(title, priority)&lt;/code&gt; - a tool that already knows your board, your list, your labels. And now it can use that tool whenever it needs to add a bug without reinventing the wheel.&lt;/p&gt;

&lt;p&gt;Commandable lets agents build targeted tools for repeatable actions they actually use instead of long lists of generic tools from a standardised MCP or API.&lt;/p&gt;

&lt;h3&gt;
  
  
  So, Is MCP Dead?
&lt;/h3&gt;

&lt;p&gt;Not now. Not yet.&lt;/p&gt;

&lt;p&gt;Watch - nay, marvel - at the video below as Claude Code, armed with just our boring old MCP-compliant server, levels itself up into some kind of self-evolving AGI Frankenstein... or at the very least... a helpful assistant that generates some tools for us - thanks Claude!&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/kezkZlnYQP4"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;MCP LIVES&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
    </item>
  </channel>
</rss>
