MCP를 처음 접하면 Host, Client, Server라는 이름부터 어렵게 느껴집니다. 특히 Client와 Host를 같은 것으로 생각하거나, Server를 인터넷에 있는 거대한 컴퓨터로만 이해하기 쉽습니다.
세 역할은 하나의 작업을 나누어 맡습니다. Host는 전체 경험과 정책을 관리하고, Client는 MCP 통신을 담당하며, Server는 도구와 데이터를 제공합니다. 이번 글에서는 세 역할이 어디에 있고 요청이 어떻게 오가는지 쉽게 정리하겠습니다.
1. Host·Client·Server, 먼저 한 장으로 보기
사용자가 만나는 AI 애플리케이션이 Host입니다. Host 안의 Client가 MCP 형식으로 요청을 보내고, 연결된 Server가 도구·리소스·프롬프트를 제공하거나 외부 시스템을 호출합니다.

| 구성요소 | 쉬운 비유 | 핵심 역할 | 대표 예 |
|---|---|---|---|
| Host | 업무를 총괄하는 팀장 | 사용자 경험, 모델, 연결, 권한과 승인 관리 | AI 코딩 도구, 데스크톱 AI 앱, 자체 에이전트 앱 |
| Client | 정해진 양식으로 전달하는 연락 담당자 | MCP 요청 작성·전송, 응답 해석 | Host 내부의 MCP 통신 모듈 |
| Server | 전문 업무를 처리하는 담당 팀 | 기능과 데이터 노출, 실제 시스템 호출 | 파일, GitHub, 데이터베이스 연동 서버 |
내 컴퓨터에서 실행되는 작은 프로그램도 MCP Server가 될 수 있습니다. 반대로 인터넷의 원격 서비스도 같은 역할을 할 수 있습니다.
2. MCP Host는 전체를 조정하는 AI 애플리케이션이다
Host는 사용자가 대화하거나 작업을 요청하는 애플리케이션입니다. 모델에 어떤 도구를 보여줄지, 어떤 서버 연결을 허용할지, 위험한 행동 전에 사용자 승인을 받을지 같은 전체 정책을 관리합니다.

중요한 점은 모델이 Server에 마음대로 직접 연결하는 구조가 아니라는 것입니다. 일반적으로 Host가 모델의 도구 사용 요청을 받아 정책과 입력값을 확인하고 Client를 통해 전달합니다.
3. MCP Client는 Host 안의 통신 담당자다
Client는 별도의 챗봇이나 AI 모델이 아닙니다. Host 쪽에서 MCP 규칙에 맞는 요청을 만들고 전송하며, Server가 보낸 결과와 오류를 Host가 사용할 수 있는 형태로 전달하는 구성요소입니다.

2026-07-28 사양의 핵심 요청은 상태 비저장 방식이며, 각 요청이 필요한 정보를 스스로 담습니다. 다만 이전 사양을 사용하는 구현도 존재하므로 실제 제품에서는 지원 버전과 연결 방식을 확인해야 합니다.
4. MCP Server는 기능과 데이터를 제공한다
Server는 자신이 제공하는 기능을 MCP 방식으로 설명하고 요청을 처리합니다. 직접 파일을 읽거나 계산할 수도 있고, 기존 API·데이터베이스·사내 시스템을 대신 호출할 수도 있습니다.

| 제공 항목 | 의미 | 예시 | 주의점 |
|---|---|---|---|
| Tools | 입력을 받아 행동을 수행 | 문서 검색, 이슈 생성, 파일 저장 | 쓰기·삭제는 승인과 검증 필요 |
| Resources | 읽을 수 있는 데이터 제공 | 문서, 설정, 데이터 레코드 | 접근 범위와 민감정보 제한 |
| Prompts | 재사용 가능한 작업 시작점 제공 | 코드 리뷰, 회의 요약 템플릿 | 조직 정책과 최신성 확인 |
Server가 기능을 제공한다고 해서 그 기능이 자동으로 안전해지는 것은 아닙니다. 입력값 검증, 인증, 최소 권한, 실행 로그와 실패 처리는 Server와 Host 양쪽에서 설계해야 합니다.
5. 요청부터 결과까지 어떤 순서로 움직일까
사용자가 “지난주 회의록을 찾아 핵심 할 일을 정리해줘”라고 요청했다고 가정해보겠습니다. Host는 모델에게 허용된 문서 검색 도구를 보여주고, 모델이 선택한 호출을 Client를 통해 Server에 전달합니다.

↓
② Host가 허용된 도구 설명을 모델에 제공
↓
③ 모델이 도구와 입력값을 선택
↓
④ Host가 정책·권한·승인 여부 확인
↓
⑤ Client가 MCP 요청을 Server에 전송
↓
⑥ Server가 문서 시스템을 조회하고 결과 반환
↓
⑦ Host가 결과를 모델과 사용자에게 전달
오류가 나면 Server의 오류, 네트워크 문제, 권한 거부, 잘못된 입력처럼 실패 지점을 구분해야 합니다. “AI가 실패했다”는 한 문장만으로는 원인을 찾기 어렵기 때문에 각 단계의 로그가 중요합니다.
6. 로컬 Server와 원격 Server는 무엇이 다를까
MCP Server는 내 컴퓨터에서 실행될 수도 있고 네트워크 너머에서 제공될 수도 있습니다. 역할은 같지만 설치, 인증, 데이터 이동 경로와 운영 책임이 달라집니다.

| 구분 | 로컬 Server | 원격 Server |
|---|---|---|
| 실행 위치 | 사용자 PC 또는 같은 실행 환경 | 외부 서버, 클라우드, 사내 네트워크 |
| 대표 통신 | 프로세스 표준 입출력 등 | 네트워크 기반 HTTP 등 |
| 장점 | 로컬 파일·도구 접근, 개인 환경에 적합 | 중앙 운영, 여러 사용자에게 제공 가능 |
| 확인할 점 | 설치 파일 출처, 실행 권한, 업데이트 | 인증, 전송 보안, 서비스 신뢰, 데이터 보관 |
로컬 프로그램도 넓은 파일 권한을 가질 수 있고, 신뢰할 수 있는 원격 서비스는 조직 정책과 감사를 제공할 수 있습니다. 위치보다 출처, 권한, 데이터 범위, 로그와 운영 주체를 함께 확인하세요.
7. 연결이 안 될 때 무엇부터 확인할까
MCP 연결 실패는 이름이 비슷한 구성요소 탓에 엉뚱한 곳을 점검하기 쉽습니다. 아래 순서대로 확인하면 Host 설정, Client 통신, Server 실행과 외부 서비스 권한을 구분할 수 있습니다.

공식 TypeScript SDK v2 문서에 따르면 직접 구성한 Client와 Server는 기본적으로 2025 계열로 통신할 수 있으며, 2026-07-28 방식은 명시적인 버전 협상 설정이 필요할 수 있습니다. 사용 중인 Host와 Server의 실제 설정을 함께 확인해야 합니다.
8. 핵심 정리

Host = 전체 조정 Client = MCP 통신 Server = 기능·데이터 제공 Server는 로컬도 가능 버전·권한·로그 확인
Host, Client, Server는 서로 경쟁하는 제품 이름이 아니라 하나의 연결에서 나뉜 역할입니다. 사용자는 Host를 이용하고, Host 내부의 Client가 MCP 메시지를 주고받으며, Server가 실제 기능과 데이터에 접근합니다. 연결이 쉬워져도 승인과 최소 권한, 결과 검증은 생략할 수 없습니다.
다음 글에서는 이 구조를 바탕으로 AI 에이전트에 Google Drive와 Notion을 연결할 때 어떤 권한을 정하고, 읽기와 쓰기를 어떻게 구분해야 하는지 살펴보겠습니다.
🔗 AI 에이전트 입문 시리즈
참고: MCP TypeScript SDK v2 공식 문서, MCP 2026-07-28 공식 사양 안내, 2026-07-28 프로토콜 지원 가이드