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 서버는 크게 네 가지 기능을 제공한다:
- 리소스(Resources)
- 데이터베이스, 파일, 문서, API 응답 등
- 예:
resource://db/customers
,resource://filesystem/project/README.md
- 도구(Tools)
- 호출 가능한 함수/액션
- 예:
searchCustomer(name)
,sendEmail(to, subject, body)
- 프롬프트(Prompts)
- 미리 정의된 템플릿을 제공
- 예: “SQL 쿼리 생성용 프롬프트”
- 이벤트(Events)
- 서버에서 발생하는 알림이나 변경 이벤트를 실시간으로 전달
동작 흐름 예시
- 사용자가 IDE 안에서: “DB에서 고객 ‘홍길동’ 검색해줘” 입력
- LLM이 판단 → MCP 클라이언트를 통해 “searchCustomer” 도구 호출 요청
- MCP 클라이언트 → MCP 서버 요청 전달
- MCP 서버가 실제 DB 조회 수행 후 결과 반환
- 결과를 LLM이 사용자 친화적 문장으로 정리해서 보여줌
MCP 서버 예시
예를 들어, 파일 시스템 MCP 서버라면:
- Resource: 프로젝트 폴더 내 파일들 (
/src/main.kt
,/README.md
) - Tools: 파일 읽기, 쓰기, 검색 기능 (
readFile
,writeFile
) - Prompts: “이 코드를 리팩토링 해줘” 같은 템플릿
→ 이렇게 구성된 서버를 붙이면, AI는 프로젝트 파일을 직접 탐색/수정 가능해짐.
비유
- MCP 서버 = “호텔 컨시어지”
- 손님(LLM)이 “관광지 추천해줘” 하면, 컨시어지가 여러 API/DB를 뒤에서 다뤄서 정리된 정보 제공
- MCP 클라이언트 = “호텔 프런트”
- 손님과 직접 대화하며, 요청을 받아서 컨시어지에게 전달
정리
MCP 서버는 LLM이 외부 도구와 데이터를 안전하고 일관된 방식으로 활용할 수 있도록 표준화된 인터페이스를 제공하는 백엔드 역할을 한다.