MCP vs. REST: Why do we need a new Protocol ? #209
Replies: 8 comments 10 replies
-
@deepakgohil9 I believe the key point is how to provide the model with descriptions of tools so that the model can call these tools. Additionally, it has a local STDIO mode, which cannot be addressed by a REST API alone. This is just my understanding, and I welcome any discussion. |
Beta Was this translation helpful? Give feedback.
-
You're absolutely right that the current SSE mode functions similarly to a REST API, as it provides Coming to the key point, how to provide LLMs with descriptions of available tools. I believe OpenAPI can be a strong solution. OpenAPI is a widely adopted standard for documenting REST APIs, and leveraging it could enable LLMs to understand and interact with APIs effectively without requiring a new protocol. Well-documented REST APIs with OpenAPI specs could serve as an excellent way to provide context to the model regarding the available tools. Regarding the last point about the local STDIO mode, one possible alternative could be using loopback communication. This could serve as a bridge for local interactions without requiring a separate transport mechanism that deviates from standard RESTful interactions. I look forward to understanding the reasoning behind choosing to create a new protocol like MCP instead of leveraging existing REST APIs! |
Beta Was this translation helpful? Give feedback.
-
Isn't MCP trying to establish a AI-native protocol? Then the question boils down to whether REST is apt for that purpose.
|
Beta Was this translation helpful? Give feedback.
-
I want to clarify that I’m not against MCP, but I’m trying to understand the actual reasons that led to the creation of a new protocol instead of leveraging existing REST APIs. The key idea I have in mind is creating a middle layer between AI and REST APIs to bridge them effectively. This could significantly reduce the time and cost required to make tools compatible with MCP. Instead of porting every tool to a new protocol, it might be more efficient to make AI compatible with REST. Now, addressing each of the three points: REST is stateless, but AI needs contextI feel that these two concepts are not directly related. REST’s stateless nature is primarily about enabling horizontal scaling by ensuring that servers do not need to store client session data. The key requirement in our case is that AI should have access to the history of tool calls to maintain context. However, this does not mean that the server itself needs to maintain state. Since the decision to call a tool at a given point is entirely made by AI, the necessary context should be maintained within the message history. Additionally, MCP's own roadmap mentions plans to support stateless operations, specifically for serverless environments: REST is built for humans, not AI agentsThis statement isn’t entirely accurate. REST is not designed for humans but for machine-to-machine communication. It provides a standardized way for machines to interact over the web, which is similar to what MCP aims to achieve. The key difference is that REST has already been widely adopted, extensively battle-tested, and refined over years of real-world usage. If AI needs a structured way to interact with APIs, REST (with standards like OpenAPI) already provides that foundation. REST is HTTP-only, but AI needs multi-protocol supportThis point seems to refer to transport mechanisms. MCP currently supports both STDIO and SSE-based transport, but in practical scenarios, SSE will likely be more significant. Not everyone will run all tools locally, so the reliance on STDIO may be limited. If the goal is multi-protocol support, rather than introducing an entirely new protocol, why not extend REST-based solutions with additional transport layers where needed? I’d love to understand more about the core motivations behind choosing MCP over enhancing REST-based solutions. |
Beta Was this translation helpful? Give feedback.
-
Running terminal commands is the one capability that rules them all. REST is limited to HTTP, while MCP spans multiple protocols. However, if the model can execute terminal commands, it can handle HTTP requests or any other protocol by itself (or CLI), making MCP servers unnecessary. The real benefit of MCP is to restrict the model’s total power, allowing only a controlled subset of capabilities. For example, if a model can execute terminal commands, it can perform any AWS operation through the AWS CLI, leveraging its built-in understanding of the CLI documentation. If you introduce a newly created REST API that didn’t exist during the model’s training, simply provide its OpenAPI definition. Because the model already knows how to construct curl commands and has the capability of run them in the terminal, it can immediately make use of the new API. |
Beta Was this translation helpful? Give feedback.
-
Maybe we need a As mentioned above, remote connection to server is one of its capabilities. There are many capabilities like fs, cmd even system setting run on the local environment. MCP is not just a protocol based on network like http. |
Beta Was this translation helpful? Give feedback.
-
MCP is trying to look "new" but it could have been a bunch of standardized REST API endpoints. A backend MCP server could have been just an API server that has something like /api/tools for tools discoverability, /api/tools/weather for a weather app endpoint where other AI services and clients can submit requests, /api/promptTemplates for acceptable prompts to interface with the tools, /api/format endpoint to get possible response format allowed by the Ai service, /api/auth for permissions, etc. Also, when you look at MCP server and client codes, there is no code pattern or framework that makes the code "MCP". The current MCP implementations does not have a distinct identity to be called as a new protocol. It's just unnecessary abstractions implemented arbitrarily (but still just REST API), and for the sake of calling it an LLM interface protocol everyone is calling it MCP. It seems that MCP is an example of a "do not reinvent the wheel" case against existing standards like REST API. |
Beta Was this translation helpful? Give feedback.
-
I have been struggling with this "MCP" vs "Rest' as well. I have been trying to implement lot of this on cloud and sticking with serverless, like AWS Lambda, Azure functions etc. MCP forces me to containerize its implementation., so on AWS, lambda is ruled out, ECS + API GW is the option, on GCP cloud run and so on. |
Beta Was this translation helpful? Give feedback.
-
Pre-submission Checklist
Discussion Topic
REST APIs have been around for a long time, and they are widely adopted, well-documented, and already used in many systems. Instead of introducing a new protocol like MCP, why can't we simply build a middle layer that allows LLMs to interact with these existing REST APIs directly? Wouldn't this approach be more efficient, as it avoids the extra effort and cost of converting existing services (which are similar to 'tools' in agentic AI) from REST to MCP? This way, we could leverage the mature ecosystem of REST APIs without the need for major changes.
Beta Was this translation helpful? Give feedback.
All reactions