MCP Server

MCP(Model Context Protocol)에서 MCP 서버는 핵심 개념이다.

MCP 서버란?

MCP 서버는 AI 모델이 외부 리소스(도구, 데이터, API 등)에 접근할 수 있도록 연결해주는 표준화된 인터페이스를 제공하는 역할을 한다.
쉽게 말하면, AI가 쓸 수 있는 도구 모음집을 제공하는 서버라고 할 수 있다.

구조

MCP는 크게 클라이언트(Client)서버(Server) 로 나뉘는데:

  • MCP 클라이언트
    • LLM 환경에 붙어 있는 애플리케이션 (예: IDE, Chat UI, Notebook 등)
    • 사용자의 프롬프트를 받아 모델을 실행시키고, 필요하면 MCP 서버에 요청
  • MCP 서버
    • 여러 리소스/도구/함수를 관리하고 제공
    • 표준화된 프로토콜(JSON-RPC 기반)을 통해 클라이언트와 통신
    • 예: DB 조회 서버, 파일 시스템 서버, API 호출 서버

MCP Client Server

서버가 제공하는 것

MCP 서버는 크게 네 가지 기능을 제공한다:

  1. 리소스(Resources)
    • 데이터베이스, 파일, 문서, API 응답 등
    • 예: resource://db/customers, resource://filesystem/project/README.md
  2. 도구(Tools)
    • 호출 가능한 함수/액션
    • 예: searchCustomer(name), sendEmail(to, subject, body)
  3. 프롬프트(Prompts)
    • 미리 정의된 템플릿을 제공
    • 예: “SQL 쿼리 생성용 프롬프트”
  4. 이벤트(Events)
    • 서버에서 발생하는 알림이나 변경 이벤트를 실시간으로 전달

동작 흐름 예시

  1. 사용자가 IDE 안에서: “DB에서 고객 ‘홍길동’ 검색해줘” 입력
  2. LLM이 판단 → MCP 클라이언트를 통해 “searchCustomer” 도구 호출 요청
  3. MCP 클라이언트 → MCP 서버 요청 전달
  4. MCP 서버가 실제 DB 조회 수행 후 결과 반환
  5. 결과를 LLM이 사용자 친화적 문장으로 정리해서 보여줌

MCP 서버 예시

예를 들어, 파일 시스템 MCP 서버라면:

  • Resource: 프로젝트 폴더 내 파일들 (/src/main.kt, /README.md)
  • Tools: 파일 읽기, 쓰기, 검색 기능 (readFile, writeFile)
  • Prompts: “이 코드를 리팩토링 해줘” 같은 템플릿

→ 이렇게 구성된 서버를 붙이면, AI는 프로젝트 파일을 직접 탐색/수정 가능해짐.

비유

  • MCP 서버 = “호텔 컨시어지”
    • 손님(LLM)이 “관광지 추천해줘” 하면, 컨시어지가 여러 API/DB를 뒤에서 다뤄서 정리된 정보 제공
  • MCP 클라이언트 = “호텔 프런트”
    • 손님과 직접 대화하며, 요청을 받아서 컨시어지에게 전달

정리

MCP 서버는 LLM이 외부 도구와 데이터를 안전하고 일관된 방식으로 활용할 수 있도록 표준화된 인터페이스를 제공하는 백엔드 역할을 한다.