LLM이 MCP를 어떻게 사용하나요?

발행: (2026년 1월 8일 오후 04:09 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

개요

대형 언어 모델(LLM)이 모델 컨텍스트 프로토콜(MCP) 서버에 무엇이 있는지 아는 방식을 이해하려면, LLM을 “아는” 사람이라기보다 요리 직전에 메뉴를 건네받는 셰프에 비유하세요. LLM은 실제로 MCP가 존재한다는 것을 메시지를 보낼 때까지 “알지” 못합니다.

단계별 프로세스

  1. 세션 시작
    MCP가 활성화된 애플리케이션(예: Claude Desktop 또는 Cursor)에서 MCP 클라이언트(앱)는 표준 요청 tools/list를 사용해 MCP 서버(툴)와 통신합니다.

  2. 서버 응답
    서버는 제공하는 모든 도구의 목록을 반환합니다. 각 도구에 대해 다음 정보를 제공합니다:

    • 이름
    • 설명
    • JSON 스키마(도구가 필요로 하는 인수)
  3. 도구 목록을 프롬프트에 삽입
    MCP 클라이언트는 이 목록을 LLM의 프롬프트 컨텍스트에 직접 삽입합니다. 보통 시스템 지시문에 포함됩니다.

  4. 숨겨진 지시 블록
    LLM이 사용자의 메시지를 받을 때, 다음과 같은 숨겨진 텍스트 블록도 함께 보게 됩니다:

    You have access to the following tools:
    get_weather: Get current weather. Parameters: location (string).
    query_postgres: Run SQL on the DB. Parameters: query (string).
  5. 사용자 질의
    예를 들어 “도쿄의 날씨가 어때?”라고 물어봅니다.

  6. 도구 선택
    LLM은 날씨를 모른다는 것을 인식하고, 의도와 일치하는 도구(get_weather)가 있음을 확인합니다.

  7. 구조화된 도구 호출
    “툴 사용” 또는 “함수 호출” 패턴에 대한 학습을 바탕으로, LLM은 일반 텍스트 생성을 멈추고 다음과 같은 구조화된 스니펫을 출력합니다:

    {
      "call": "get_weather",
      "args": {
        "location": "Tokyo"
      }
    }
  8. 클라이언트가 호출을 처리

    • 클라이언트는 LLM 출력에서 해당 스니펫을 감지합니다.
    • LLM을 일시 정지하고 지정된 요청을 MCP 서버에 보냅니다.
    • 서버는 실제 코드를 실행하고 결과를 클라이언트에 반환합니다.
  9. 결과를 LLM에 다시 전달
    클라이언트는 결과를 LLM의 컨텍스트에 다시 삽입합니다.

  10. 최종 답변
    LLM은 결과를 읽고 예를 들어 “도쿄의 현재 날씨는 15 °C이며 맑습니다.”라고 답합니다.

Back to Blog

관련 글

더 보기 »

안녕, 뉴비 여기요.

안녕! 나는 다시 S.T.E.M. 분야로 돌아가고 있어. 에너지 시스템, 과학, 기술, 공학, 그리고 수학을 배우는 것을 즐겨. 내가 진행하고 있는 프로젝트 중 하나는...