
MCP는 Model Context Protocol의 약자로, LLM 혹은 LLM 어플리케이션이 외부 도구 혹은 데이터를 접근하기 용이하도록 구상된 통신 규약(Protocol) 이다.
MCP는 크게 3가지로 구성되어 있다. 일반적인 네트워크 프로토콜과 비교하면서 보자.
즉, 네트워크, MCP 모두
Host는 공간을,Server와Client는 공간 위에서 상호 작용하는 모듈을 나타내는 용어라고 볼 수 있다.
위 3가지 모두 요청 - 응답 구조를 따른다는 공통점을 가지고 있다.
다만, 일반적인 네트워크 프로토콜은 TCP/IP 계층 부터 애플리케이션 계층까지 다양하게 정의된 반면, MCP는 오직 애플리케이션 계층으로 한정된 개념이다. 어쩌면 포함 관계로 볼 수도 있겠다. 
더 나아가서는 일반적인 네트워크 프로토콜(HTTP/REST)은 JSON과 일반 Text 기반 통신인 반면, MCP는 MsgPack, Protobuf 등 역직렬화를 지원하여 경량화, 유연성, 확장에 최적화 되어 있다.
Further Readings
(MCP는 JSON-RPC 2.0 프로토콜을 채택하여 구성된 프로토콜이다. JSON-RPC 2.0 프로토콜의 세부 구성 요소로 MsgPack, Protobuf가 있다. 이 부분에 대해서는 추가로 공부해야겠다.)
그리고 이러한 최적화를 기반으로 MCP는 총 3개, 현재는 2개의 통신 방법으로 동작한다.
위 3가지 방식은 FastMCP 서버를 .run 메소드로 실행할 때, transport인자에 따라 달라진다. 아주 간단하게 넘겨주는 인자만 달라지지만, 전체 서비스 운영 측면에서는 큰 차이가 있겠다. 예를 들어 stdio로 run 한 FastMCP 서버는 외부로부터, 외부로의 접근이 차단되죠. 이렇게 된다면 서버 인스턴스 관리 전략부터 전체적인 인프라 설계까지 달라질 수 있겠다.
참고 자료:
1. MCP 공식 문서: https://modelcontextprotocol.io/docs/learn/architecture
2. JSON-RFC 공식 문서: https://www.jsonrpc.org/specification
3. Godspeed 공식 문서: https://godspeed.systems/docs/saarthi/features/mcp/server-transports
4. fka 블로그: https://blog.fka.dev/blog/2025-06-06-why-mcp-deprecated-sse-and-go-with-streamable-http/