MCP? 그게 뭔데 어떻게 하는건데

wannabeing·2025년 8월 28일
2

알쓸코잡

목록 보기
21/22
post-thumbnail

MCP의 등장배경

1. LLM (두둥 등장)

  • 기존에 학습된 지식만 갖고 답변하는 모델을 말한다.
  • 새롭게 업데이트 된 지식이나, 학습되지 않은 지식에 대해선 답변할 수 없다.

2. RAG (LLM의 한계를 확장)

  • 문서(ex. VectorDB)를 저장해놓고
    필요한 경우에
    는 문서를 참고하여 답변할 수 있게 만든 기술

3. Agent (한번 더 확장)

  • 문서(DB)뿐만 아니라 구글링, API 등과 같은 다양한 외부시스템으로부터
    필요한 정보를 가져와서 LLM이 그 기반으로 답변할 수 있게 만든 기술

4. (문제발생) Agent는 돼지야. 🐽

  • Agent는 단순히 답변만 하는 게 아니라, 사용자 요청에 적합한 외부 시스템(=Tool)을 선택하고 호출해야 한다.
  • 이 과정에서 이전 대화도 기억하고, Tool을 실제로 실행하는 역할까지 맡는다고 한다.
  • 거기에 제일 문제는 Agent는 다양한 프레임워크로 제공된다.
    ex. LangChain, AgentFlow, CrewAI, Langflow ...
  • Agent 프레임워크마다 외부 시스템의 SDK가 제각각이다.
    서비스 제공해주는 외부시스템 입장에서는 Agent 프레임워크마다 각각의 SDK를 지원해줘야 되는 큰 부담이 생긴다.

5. MCP가 해결!

  • 외부시스템 별도의 SDK 스펙을 맞추지 말고, 표준 스펙(MCP)을 지키게 되었다.
  • MCP는 프로토콜로, JSON-RPC 2.0 포맷을 채택했다.
  • 최근에는 효율적인 통신을 위해 SSE+HTTP → Streamable HTTP 방식으로 변경했다고 한다.

  • Agent가 외부시스템에게 표준(MCP)에 맞게 요청을 보내면,
    외부시스템은 그에 맞는 응답을 할 수 있게 되었다.

6. (문제발생) 개발자는 게을러야 한다. ✨

  • 개발자들은 더 쉽게 외부시스템을 다룰 수 있는 방법을 생각해냈다.
    바로 표준화된 MCP Server를 가져다 쓰기만 하면 되도록!

이제 MCP에 대해 알아보자

MCP (Model Context Protocol) 정의

MCP는 Claude(AI)를 만든 Anthropic이라는 회사에서
AI 어플리케이션이 외부 시스템에 연결하는 방법을 표준화하기 위해 만든 프로토콜이다.
쉽게 말해 AI를 커스터마이징 할 때 사용하는 표준 문법 프로토콜이다.

헷갈리는 MCP 구조

  • Host: MCP를 사용하는 프로그램이다. ex) Cursor, Claude Desktop
  • Client: Server를 호출하는 코드이다. ex) JDBC Driver
  • Server: MCP 요청을 받아서, 외부시스템에 전달하는 역할이다.

Q. 여러 AI 어플리케이션을 만들 때, MCP가 없다면 어떻게 될까?

  • 각각의 AI 어플리케이션을 외부 시스템과 연결할 때,
    자체 커스텀 문법로직을 작성해야 한다.
  • 코드가 증가하게 되고, 비용도 증가하게 된다.
    개발자가 귀찮아짐 😇

MCP가 있으면?

  • 표준 인터페이스를 통해 다양한 외부시스템과 편리하게 연결할 수 있다.
  • 표준화 되어있기 때문에 다른사람이 만든 MCP Server도 갖다 쓸 수 있다!

Q. API와 차이점이 별로 없어 보이는데..?

  • MCP는 양방향 통신이다. HTTP+SSE 조합으로 통신을 많이 한다.
    API는 단방향 통신이고, MCP는 AI가 MCP Server를 통해 동적으로 주고받을 수 있다.
  • API는 각각의 서비스마다의 규칙이 다르고, 확장시에 코드 복잡성이 증가하지만
    MCP를 사용할 경우 통일성있게 코드를 작성하고, 확장시에도 편리하다.
  • 사용자 관점에서도 AI를 활용하여 다양한 툴들을 일괄적으로 사용하면서, 심지어 실시간으로 응답까지 해주는 느낌이라 너~무 간편하다는 장점이 있다!

https://smithery.ai/
여기서 많은 개발자들이 구축한 MCP Server들을 볼 수 있다.

실제로 어떻게 쓸 수 있지?

  • playwright라는 MCP 서버를 사용하면, 브라우저를 조작할 수 있다.
    이제 LLM을 통해 브라우저를 조작해 테스트를 해달라하면, AI가 직접 브라우저를 작동하여 테스트를 하게 될 수 있다.
  • CS25 프로젝트의 경우, 서술형 CS문제에 대한 유저 답변을 AI가 피드백을 할때, BraveSearch MCP Server를 통해 답변에 대한 근거와 정확성을 높이는 방향으로 적용할 수 있었다.
  • 자체 서비스 MCP Server를 구축하여 해당 MCP Server를 고려하여 코드를 짠다거나, 조회하여 데이터를 구축하는 등으로도 사용될 수 있을 것 같다.

도입시 고려해야할 점

누구나 쉽게 AI를 입맛대로 업그레이드해서 LLM만 이용하는 것보다
훨씬 풍부하고 편리하다는 점은 강점이라고 생각한다.
하지만 외부시스템으로부터 데이터를 주고 받는 과정, AI가 제어한다는 점에서 보안적인 부분이 고려되야 할 것 같다.


출처

코딩애플 MCP
조대협 MCP
SSE에서 Streamable HTTP로 변경

profile
wannabe---ing

4개의 댓글

comment-user-thumbnail
2025년 8월 29일

오늘 회사에서 나눴던 대화내용이 여기도 있네요! 잘보고갑니다!

1개의 답글