본문 바로가기
카테고리 없음

MCP

by 후이 (hui) 2025. 8. 14.

 

MCP ? 

MCP(Model Context Protocol)

MCP는 쉽게 말해 LLM과 외부 데이터 소스(웹 API, 데이터베이스, 파일 시스템 등)를 하나로 연동할 수 있게 해주는 개방형 표준 프로토콜 

MCP 이전의 Tool calling 

 

   - 프롬프트로 사용자 요청받은 후,  LLM (호스트 application) 이 직접 파싱해서 도구를 호출 

   - 도구 API 마다 포맷이 다르기 때문에 파싱을 잘못할 경우 호출이 제대로 안됨

   - 새로운 도구 추가할때마다 프롬프트와 파서 둘다 수정 필요   

  

    ex.  1) 사용자가 프롬프트 입력 - " 서울 날씨 알려줘" 

           2) LLM 프롬프트 안의 규칙을 따라 문자열로 도구 호출 "get_weather("Seoul")

           3) 호스트 앱이 문자열을 직접 파싱해서 날씨 API 호출 

             --> 만약 모델이 "get_weather("서울") 처럼 형식이 조금만 틀려도 파싱 실패 / 호출 불가 

 

MCP (host와 Tool calling 사이에 표준 번역 Client 가 등장)

  - 도구 연결 표준으로 제시 

  - 도구의 스펙 (API Schema) 에 따라서 Tool 을 호출할 수 있도록 안내

 

   ex. 1) 사용자가 프롬프트 입력 - " 서울 날씨 알려줘"

          2) LLM 은 이미 도구 스펙을 알고 있음 = get_weather(city : string))

              따라서 이 형태에 맞게 요청 

          3) MCP 클라이언트가 이 호출을 받아서 MCP 서버에 정확히 도구 호출

 

MCP 통신을 위해 필요한 구성요소 - Host, Client, MCP Server

 

host (agent) : cursor, cluade, GPT

  - 사용자 프롬프트 Agent 가 판단해서 Client 에게로 전송 

 

Client  : 호스트 application 내 프로토콜 구현체 ex. langchain mcp adapter

  - 서버와 1:1 연결 유지 

  - host 별로 클라이언트가 필요 

  - host 에게 요청을 받고, MCP server tool 호출해서 동작 

    이때 tool의 description을 보고 어떤 tool을 쓸건지 client 가 결정 

  - tool 의 input, output 을 맞춰주는 번역의 역할 

 

 

MCP server : 특정 기능이나 리소스 제공 ex. FastMCP

  - tool ㅣ수행 도구 제공 -  Slack, gmail 에서 제공하는 tool 들

  - JSON-RPC 기반 API 구현

 

따라서, 사용자가 host 에 프롬프트 날리면, host Agent 가 판단해서 Client 로 전송 

 

ex.

  (Host ) 사용자 온도 습도 질문 -> [ Host LLM ] 무슨 Tool 을 쓸건지 판단 ->

  (Client) Tool 호출 ->

  (MCP Server) Tool 결과 반환  

  

 

MCP Marketplace

- MCP 서버 쉽게 배포하고 사용할 수 있도록 서버들을 모아놓은 앱스토어 같은 곳 

   ex. smithery, mcpserver 

- 마켓 플레이스에서 원하는 MCP 서버를 찾아서 연결하기 

 

ex. gmail-server가 필요하다면,

   MCP marketplace에서 gmail-server를 찾아 설치/연결 

   Marketplace 를 통해 설치하면, 해당 MCP server의 스키마, 엔드포인트가  Client에 등록됨 

   이제 Client 는 gmail-server가 어떤 메서드를 갖고 있는지 알고 있음

 

  (실제 실행 순서) 

   [ host ] "gmail 에서 지난주 메일 요약해줘 " 요청 받음 

   [ client ] gmail-server  스키마에 맞춰서 호출 ==> MCP server 실행 

   [ MCPserver] 구글 API 실제 호출 -> 결과 반환 

  

   

   

  

728x90
반응형

댓글