Transcription
Why do we need MCP when we already have APIs? Let's understand the difference between both.
An API is how two programs talk to each other. Say you have written program A that needs to read messages from Slack, and Slack is our program B here. Slack exposes an endpoint, which is just a URL, something like api.slack.com/messages. Your program sends a request to this URL, and Slack sends back a response with the data.
In most production cases, your app won't talk to just Slack. Your app might talk to 10 services: Slack for alerts, Gmail for email, Jira for tickets, Notion for documents, your own database for user records, and five more like them. For each one of those 10 services, you write the same kind of logic for every app you want to talk to. The authentication, the API calls, the error handling, the retries if API call fails.
Now, let's upgrade program A. Imagine you add an LLM to the application, so that the application can think and reason about the situation. And here is the secret that makes everything else in this video easier. The model does not directly make the API call. The model tells the application what action it wants, and your application, normal software outside the model, performs that action. Basically, situation hasn't changed at all. You still wrote all 10 API integrations by hand. The model now decides which call to make, but you still built every single API call.
Now, imagine your org builds a second app, a chat support app for customers, also powered by an LLM. This support app needs to access the same 10 services all over again. Two apps times 10 services, that is 20 piles of integration code your team is writing and maintaining.
So, here's the question that led to MCP. What if nobody has to hard code these API calls into every app?
This is how it will work. Each of your apps gets one standard piece called an MCP client. And each service, Slack, Gmail, Jira, Notion, your database, gets a small program sitting next to it called an MCP server. The MCP client and the MCP server speak one common language, so any client can talk to any server.
Now, count with me. Two apps means two MCP clients. 10 services means 10 MCP servers. 2 + 10. In our simple example, that is roughly 12 pieces to build instead of 20 separate integrations. And the third app next year? It simply reuses the same 10 servers. You just add one more client.
And now pay attention to this detail because this is the part people get wrong. The MCP client inside your app connects to each of the 10 servers and asks what actions are available. This is called discovery. The app then shows that list of actions to the model and the model chooses which action fits the task. You no longer have to hard code every decision. The model can choose from the actions that your application allows it to use. You hand the model a labeled toolbox and let the model pick. And the Slack MCP server is the only piece that actually talks to Slack. It calls Slack's normal API, the same API that existed all along.
So, does MCP replace APIs? No, it doesn't. If your system already has an API, the MCP server sits in front of that API as a translator and your API stays exactly where it is. So, MCP is not a replacement for APIs. MCP is a common AI facing layer that can sit in front of APIs.