gaurang.dev

MCP and CGI: Whats Old is New Again

2025-09-29

It's interesting to see how patterns in technology repeat themselves. When I first looked into the new Model Context Protocol (MCP), I was reminded of the much older Common Gateway Interface (CGI). At their core, both protocols are trying to solve a similar problem: letting a primary process (a web server for CGI, an LLM for MCP) talk to and run external scripts. The similarities are worth calling out.

⇒ Barebones by Design

Both MCP and CGI provide a minimal framework. They define how data is passed and how a script is executed, but that's about it. This leaves the heavy lifting of things like authentication, authorization, payments, etc., entirely up to the developer.

This simplicity is a double-edged sword. It offers great flexibility but also means that we'll have to collectively reinvent the wheel for a lot of common functionalities, just like we did in the early days of the web.

⇒ Relearning Old Lessons

Because both protocols are so fundamental, I suspect developers using MCP will run into the same challenges we did with CGI. The early web was filled with security holes and performance issues from poorly written CGI scripts. We'll likely see a similar learning curve as the community builds out tooling and best practices for MCP.

We're essentially seeing a new generation of developers grapple with the same fundamental problems of extending a core technology's capabilities.

⇒ A Gateway to Functionality

Thinking about it, both protocols are simply "gateways."

CGI was a gateway between a web server and an external script to generate dynamic content.

MCP is a gateway between an LLM and an external tool to provide real-time data or perform an action.


The core concept is identical. Just as CGI was essential for making the web dynamic, MCP will be critical for making LLMs more powerful and grounded in the real world. It really feels like a classic case of "what is old is new again."

all posts =>