[{"data":1,"prerenderedAt":265},["ShallowReactive",2],{"blog-posts":3},[4],{"id":5,"title":6,"author":7,"body":8,"category":250,"date":251,"description":252,"extension":253,"image":254,"imageAlt":255,"meta":256,"navigation":223,"ogImage":254,"path":257,"published":223,"seo":258,"stem":260,"tags":261,"__hash__":264},"blog\u002Fblog\u002Fmcp-isnt-dead.md","MCP Isn't Dead. You're Just Using It Wrong.","Theo McCabe",{"type":9,"value":10,"toc":240},"minimark",[11,15,18,21,32,41,48,51,66,69,77,83,86,102,105,111,116,122,125,128,137,146,149,154,169,172,175,179,182,200,207,210,214,217,220,233],[12,13,14],"p",{},"Everyone and their gran have been saying that MCP is dead.",[12,16,17],{},"But could it be that MCP's saving grace has been with us all along - hiding in plain sight?",[12,19,20],{},"I think so.",[12,22,23,24,31],{},"A feature buried in Claude Code's ",[25,26,30],"a",{"href":27,"rel":28},"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md",[29],"nofollow","Jan 2026 release"," may have marked the most powerful development in MCP since its inception - and almost nobody noticed.",[12,33,34],{},[35,36,37],"em",{},[38,39,40],"strong",{},"Dynamic Tool Registration.",[12,42,43],{},[44,45],"img",{"alt":46,"src":47},"Dynamic tool registration diagram","\u002Fblog\u002Fmcp-isnt-dead-dynamic-tool-registration.png",[12,49,50],{},"But what is dynamic tool registration, you ask?",[12,52,53,54,59,60,65],{},"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 ",[35,55,56],{},[38,57,58],{},"static"," set of tools, but to ",[35,61,62],{},[38,63,64],{},"dynamically"," add and remove new tools from that list in real time as part of a stateful agent session.",[12,67,68],{},"And what's so powerful about that?",[12,70,71,72,76],{},"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 ",[73,74,75],"code",{},"load_ability"," tool, which when called by the agent, adds a related collection of tools to the current session.",[12,78,79],{},[44,80],{"alt":81,"src":82},"GitHub dynamic tools diagram","\u002Fblog\u002Fmcp-isnt-dead-github-dynamic-tools.jpg",[12,84,85],{},"For example, we might decide, while building a GitHub MCP server, that:",[87,88,89,96],"ul",{},[90,91,92,93],"li",{},"reading and editing issues is one ability called ",[73,94,95],{},"GitHub Issues",[90,97,98,99],{},"reading and writing code is a different ability called ",[73,100,101],{},"GitHub Coding",[12,103,104],{},"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.",[12,106,107,108,110],{},"With these 2 meta tools as a starting point the agent can load the ",[73,109,95],{}," 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.",[112,113,115],"h2",{"id":114},"going-deeper-mcp-inception","Going Deeper - MCP Inception",[12,117,118],{},[44,119],{"alt":120,"src":121},"Commandable MCP inception screenshot","\u002Fblog\u002Fmcp-isnt-dead-inception.png",[12,123,124],{},"But dynamic tool registration doesn't just stop at reducing context bloat. Oh no. It can actually get much deeper and weirder than that.",[12,126,127],{},"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.",[12,129,130,131,136],{},"Meet ",[25,132,135],{"href":133,"rel":134},"https:\u002F\u002Fgithub.com\u002Fcommandable\u002Fcommandable-mcp",[29],"Commandable MCP"," - the MCP server for creating new MCP servers on the fly. MCP inception, if you will.",[12,138,139,140,145],{},"Commandable gives agents ",[35,141,142],{},[38,143,144],{},"tools to create new tools",", usable immediately without compiling any code or restarting any processes. It also - by the way - keeps your credentials secure and encrypted at rest.",[12,147,148],{},"And how does this MCP inception work? With dynamic tool registration of course!",[150,151,153],"h3",{"id":152},"how-commandable-mcp-works","How Commandable MCP Works",[12,155,156,157,162,163,168],{},"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 - ",[35,158,159],{},[38,160,161],{},"create_integration"," and ",[35,164,165],{},[38,166,167],{},"create_tool",".",[12,170,171],{},"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.",[12,173,174],{},"And that's it, away we go.",[150,176,178],{"id":177},"what-can-commandable-mcp-be-used-for","What Can Commandable MCP Be Used For?",[12,180,181],{},"Think about a standard Trello MCP server.",[12,183,184,185,188,189,192,193,192,196,199],{},"It gives an agent something like ",[73,186,187],{},"create_trello_card(boardId, listId, name, description, labelIds, ...)",". However, every time the agent wants to use it, it has to go fishing for IDs, calling ",[73,190,191],{},"get_boards",", ",[73,194,195],{},"get_lists",[73,197,198],{},"get_labels"," - just to find the right place to add the card - and then ignore tons of optional parameters on the create tool itself.",[12,201,202,203,206],{},"Imagine instead, the agent inspects your actual Trello account and generates ",[73,204,205],{},"add_bug_to_sprint(title, priority)"," - 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.",[12,208,209],{},"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.",[150,211,213],{"id":212},"so-is-mcp-dead","So, Is MCP Dead?",[12,215,216],{},"Not now. Not yet.",[12,218,219],{},"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!",[221,222,226,227,232],"video",{"controls":223,"playsInline":223,"preload":224,"style":225},true,"metadata","width: 100%; border-radius: 16px; margin: 1rem 0;","\n  ",[228,229],"source",{"src":230,"type":231},"\u002Fblog\u002Fmcp-isnt-dead-demo.mp4","video\u002Fmp4","\n  Your browser does not support the video tag.\n",[12,234,235],{},[35,236,237],{},[38,238,239],{},"MCP LIVES",{"title":241,"searchDepth":242,"depth":242,"links":243},"",2,[244],{"id":114,"depth":242,"text":115,"children":245},[246,248,249],{"id":152,"depth":247,"text":153},3,{"id":177,"depth":247,"text":178},{"id":212,"depth":247,"text":213},"MCP","2026-03-17","Everyone and their gran are saying MCP is dead. I built MCP inception to prove that it's not.","md","\u002Fblog\u002Fmcp-isnt-dead-banner.png","Cover image for the Commandable MCP post.",{},"\u002Fblog\u002Fmcp-isnt-dead",{"title":6,"description":259},"Everyone and their gran are saying MCP is dead. I built MCP inception to prove that it's not...","blog\u002Fmcp-isnt-dead",[250,262,263,135],"Claude Code","Dynamic Tools","wlK7SaeoDz9gJ75gi-OKwlpEByUUuLKSL-RvT7zFoDo",1778141839598]