본문 바로가기
스터디/MCP

[MCP Study] 0. MCP 개요

by 박사개구리 2025. 4. 29.

⛔️ 요즘 MCP가 엄청나게 화제라서 개인적으로 해당 내용을 스터디 하면서 정리한 자료입니다! 

     혹시 잘못된 내용이나 오타, 개선할 사항이 있으시면 편하게 댓글 남겨주세요! 🙇‍♂️

 

😎 AI 에이전트란?

  • MCP에 대해 이야기하기 전에 먼저 AI 에이전트가 무엇이고 현재 이를 사용하는데 어떤 문제가 있는지 살펴보겠습니다.
  • 우선 최근 대형 언어 모델 (Large Language Model, LLM)이 엄청나게 발전하며 큰 혁신을 가져왔습니다. 하지만 현재 LLM은 아래와 같은 부족한 점들이 있습니다.
    • 실시간 정보 접근 불가: 학습 시점 이후 데이터는 모름 (최신성 반영 불가)
    • 환각 현상 (Hallucination): 잘 모르는 내용에 대해서도 확신을 가지고 대답하는 현상 발생
    • 복잡한 문제 해결 어려움: 여러 추론 단계를 거쳐야 하는 문제에 약함
    • 외부 시스템 연동 불가: 직접 API를 호출하거나 외부 도구를 사용하는 능력이 없음
  • 이와 같은 LLM의 한계점들을 개선하기 위해 AI 에이전트에 대한 연구가 활발하게 일어나고 있습니다.
    • AI 에이전트는 단순히 질문에 대한 답만 하는 것이 아니라 스스로 계획하고 판단하며 적절한 도구를 사용하여 더욱 사용자의 요청에 대해 적절한 응답을 할 수 있습니다.
      • 에이전트의 응답 도출 과정 예시: 문제를 이해 (지각) → 상황을 파악 (추론) → 필요한 행동을 계획 → 행동을 수행 → 결과 응답
    • 이때 행동에는 외부 도구 사용 (예시: 웹 검색, 외부 API 사용), 코드 실행, 로컬 파일 사용 등이 포함될 수 있습니다.
  • AI 에이전트가 추론하는 과정에 대한 예시는 다음과 같습니다.
    • 사용자의 질문: "오늘 서울 날씨 알려줘."
    • 에이전트의 추론
      • 지각: 사용자가 오늘 서울의 날씨를 알고 싶어하는구나.
      • 추론: 나는 현재 서울의 날씨를 알 수 없으니까 외부 날씨 API를 써야겠다.
      • 행동: 날씨 서버에 '서울' 날씨를 요청.
      • 결과: "오늘 서울은 흐림, 18°C"라는 정보를 받고 이 정보를 참고한 응답을 사용자에게 전달
  • 또한 에이전트는 이렇게 하나의 도구만을 사용하는 것이 아니라 복잡한 문제에 대해 여러 도구를 사용하여 충분한 정보를 얻고 이를 모두 활용하여 정확한 응답을 할수도 있습니다.
  • 종합적으로 AI 에이전트는 다음과 같은 장점을 가집니다 💪
    • 복잡한 작업 처리: 단순한 질문, 응답을 넘어 여러 단계를 통한 문제 해결 가능
    • 자율성: 매번 사람이 규칙으로 정할 필요 없이 스스로 계획하고 필요한 행동을 수행
    • 유연성: 새로운 도구가 추가되거나 기존 도구가 제거 되어도 유연하게 사용 가능
  • 하지만 이런 AI 에이전트도 개선해야 할 부분이 있습니다.
    • 예를 들어 에이전트가 “웹 검색”, “수학 연산”, “날씨 불러오기”, “메일 확인”과 같이 다양한 도구를 사용할 수 있게 구현한다고 가정해보겠습니다.
    • 이때 각각의 도구마다 다른 방식의 입력과 출력 형식, 다른 호출 방법을 가진다면, 사용자가 에이전트를 구축할때 각각의 도구들을 따로 관리해야 됩니다.
    • 이렇게 되면 새로운 도구가 추가되거나 기존 도구가 제거될 때마다 에이전트 코드를 복잡하게 수정해야 하고, 도구 간 호환성 문제나 예외 상황도 직접 처리해야 하므로 전체 시스템이 쉽게 복잡해지고 불안정해질 수 있습니다.
  • 위와 같은 문제를 해결하기 위해 등장한 것이 바로 MCP입니다! 🚀

👋 MCP란?

  • MCP (Model Context Protocol)는 Claude를 개발한 회사인 Anthropic에서 처음 제안했으며 AI 에이전트가 외부의 다양한 도구를 일관된 방식으로 사용할 수 있도록 표준화한 통신 규약입니다.
    • 조금 더 쉬운 이해를 위해 AI 에이전트가 사용하는 도구들을 전자레인지, TV, 선풍기와 같은 가전제품으로 생각하여 비유적으로 설명해보겠습니다.
      • 만약 이 모든 가전 제품들이 어떤 것은 220V 콘센트를 쓰고, 어떤 것은 110V 콘센트를 쓰고, 어떤 것은 127V 콘센트를 사용하고 있다면 각각의 가전 제품마다 콘센트를 다 다르게 만들어야하고, 사용할때마다 변압기를 쓰거나 연결 방식을 사용자가 모두 관리해야 되므로 사용이 복잡하고 불편해집니다.
      • 그런데 만약 “모든 가전 제품이 이제부터 다 같이 220V와 같은 모양의 콘센트를 쓰자!”라고 규격을 표준화한다면 어떤 가전제품이든지 코드를 꽂기만 하면 바로 사용할 수 있을 것입니다! 🔌
    • MCP도 이 비유의 내용과 동일한 역할을 통해 문제를 해결했습니다.
      • AI 에이전트가 다양한 외부 도구(검색, 수학, 날씨 조회 등)를 사용할 때 도구마다 요청 형식과 호출 방법이 다르면 사용이 복잡하고 불편해집니다.
      • 이에 따라 “모든 AI 에이전트의 도구들은 같은 규약 (MCP 프로토콜)을 따라야해!”라고 규격을 표준화 한 것으로 생각하면 됩니다.
      • 이에 따라 MCP 프로토콜을 사용하면 새로운 도구가 추가되거나 제거되어도 간단한 수정만으로 에이전트에 적용이 가능합니다! 😳
    • 이렇게 비유적으로 표현한 내용을 GPT를 통해 정리 및 그림 생성한 결과가 다음과 같습니다!

 

  • MCP의 구성 요소
    • MCP는 크게 3가지의 요소로 구성되어있습니다!
      • MCP 서버 (Server)
      • MCP 클라이언트 (Client)
      • 통신 방법 (Transport)
    • 각각의 구성 요소에 대해 자세히 한번 알아보겠습니다 🔎
      • MCP 서버
        • 역할: 외부 도구를 제공 → 실제 “검색”, “계산” 등을 수행하는 역할
          • 이 도구들은 모두 MCP 표준 형식으로 등록되고 사용됨
        • MCP 서버가 하는 일
          • 사용 가능한 도구 목록을 제공
          • 요청을 받아 도구 실행
          • 결과를 표준 형식으로 반환
      • MCP 클라이언트
        • 역할: 에이전트가 필요한 도구를 선택해서 요청을 보내고 결과를 받아옴
        • MCP 클라이언트가 하는 일
          • 도구 목록 가져오기
          • 도구 요청 생성 및 전송
          • 결과 수신 및 응답 수행
      • Transport
        • 역할: 서버와 클라이언트 사이의 통신 방식
        • 여기에는 표준 입출력 통신인 stdio 방식과 HTTP 스트리밍 방식인 sse가 있지만 이는 추후에 직접 서버와 클라이언트 코드를 구성하면서 설명하겠습니다.

🔚 결론

  • AI 에이전트는 여러 도구를 사용하는데 이때 각 도구들이 서로 입출력 방식이나 통신 방식이 모두 다르다면 사용이 어렵습니다.
  • 이를 해결하기 위해 고안된 MCP는 AI 에이전트가 여러가지 도구를 사용할 때 이 도구들을 일관된 방식으로 사용할 수 있도록 표준화한 통신 규약입니다.
  • 현재 MCP에는 단순한 검색, 날씨 등의 도구를 넘어서 구글 맵, Adobe, Figma 등 다양한 실서비스 도구들을 적용할 수 있으며 AI 에이전트를 통해 이런 도구들을 자동으로 사용하고 생산성을 크게 향상 시킬 수 있을 것으로 기대되고 있습니다 🤩
  • 다음 내용에서는 실제 MCP 서버와 클라이언트를 구성하고 stdio 방식으로 통신하여 에이전트가 실제로 도구를 사용하는 코드를 작성해보겠습니다.