Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Sign in

MCP 클라이언트와 서버가 어떻게 함께 작동하는지 더 잘 이해하기 위해 CLI 기반 챗봇을 구축해 보겠습니다. 이 실습 프로젝트는 MCP 아키텍처의 양쪽 측면 모두에 대한 실질적인 경험을 제공합니다.

설정이 완료되면, 클라이언트가 무엇을 하고 서버가 무엇을 하는지 설명할 수 있어야 하며, 응답이 도구를 통해 왔는지 아니면 모델에서 직접 왔는지 구분할 수 있어야 합니다.

우리가 만들 것

우리의 챗봇은 사용자가 명령줄 인터페이스를 통해 문서 모음과 상호작용할 수 있게 해줍니다. 이 시스템은 두 가지 주요 구성 요소로 이루어져 있습니다:

  • 사용자 상호작용을 처리하는 MCP 클라이언트
  • 문서 작업을 관리하는 맞춤형 MCP 서버

서버는 두 가지 필수 도구를 제공합니다: 하나는 문서 내용을 읽는 도구이고, 다른 하나는 문서를 업데이트하는 도구입니다. 모든 문서는 단순성을 위해 메모리에 저장되며, 데이터베이스는 필요하지 않습니다.

중요한 아키텍처 참고 사항

실제 프로젝트에서는 일반적으로 MCP 클라이언트나 MCP 서버 중 하나만 구현하며, 둘 다 구현하지는 않습니다. 다음과 같은 것을 만들 수 있습니다:

  • 다른 개발자에게 서비스를 노출하기 위한 MCP 서버
  • 기존 MCP 서버에 연결하기 위한 MCP 클라이언트

이 프로젝트에서는 순전히 교육적인 목적으로 두 구성 요소를 모두 구축합니다 - 이들이 어떻게 통신하고 함께 작동하는지 이해하기 위해서입니다.

프로젝트 설정

이 레슨에 첨부된 cli_project.zip 파일을 다운로드하여 원하는 개발 디렉터리에 압축을 풉니다. 프로젝트 폴더에서 코드 에디터를 엽니다.

프로젝트에는 설정 지침이 포함된 상세한 README 파일이 있습니다. 다음 단계를 따르세요:

  1. .env 파일에 Anthropic API 키를 추가하세요
  2. UV(권장) 또는 pip를 사용하여 종속성을 설치하세요
  3. 스타터 애플리케이션을 실행하여 모든 것이 제대로 작동하는지 확인하세요

애플리케이션 실행

터미널에서 프로젝트 디렉터리로 이동합니다. main.py, mcp_client.py, mcp_server.py를 포함한 주요 프로젝트 파일들을 볼 수 있습니다.

애플리케이션을 시작하려면 다음 명령 중 하나를 사용하세요:

bash
# UV를 사용하는 경우(권장)
uv run main.py

# 표준 Python을 사용하는 경우
python main.py

애플리케이션이 성공적으로 시작되면 채팅 프롬프트가 표시됩니다.

직접 기준선을 확인하세요. 눈으로 바로 확인할 수 있는 질문을 입력해 보세요. 예를 들어 "1+1은 뭐야?" 같은 질문입니다. 응답이 나타나는 것만으로 만족하지 마세요: 답이 실제로 2인지 확인하세요. 올바른 응답은 API 키, 종속성, 채팅 루프가 모두 제대로 작동한다는 것을 증명합니다.

그런 다음 "문서에는 뭐라고 적혀 있어?" 같은 두 번째 질문을 입력해 보세요. 어떤 응답이 돌아오든, 아직 문서 도구를 만들지 않았기 때문에 그 도구에서 나온 것일 수는 없습니다. 이 응답은 모델이 스스로 답변한 것입니다. 이 작업이 존재하게 되면 어떤 구성 요소가 그 작업을 담당할지 주목하세요: 서버는 문서 작업을 관리하고, 클라이언트는 대화의 사용자 측을 처리합니다.

이 확인 뒤에 있는 습관은 이렇습니다: 틀렸을 때의 비용에 맞춰 얼마나 신중하게 확인할지를 조정하는 것입니다. 여기서 설정이 잘못되면 이후 이 위에 구축되는 모든 레슨에 비용이 발생하지만, 확인하는 데는 두 가지 질문만 들 뿐입니다.

계속 유지할 가치가 있는 확인

이 프로젝트를 넘어서도 계속 가져가야 할 행동은 다음과 같습니다: API 프로젝트에 새로운 레이어를 추가할 때마다 - 도구든, 데이터 소스든, MCP 서버든 - 다음 레이어를 구축하기 전에 이미 답을 알고 있는 질문 하나를 실행 중인 시스템에 던져보세요. 검증된 기준선만이 디버깅할 수 있는 유일한 기준선입니다.

기본 설정이 완료되었으니, 이제 MCP 기능을 구현하고 클라이언트와 서버가 Model Context Protocol을 통해 어떻게 통신하는지 탐구할 준비가 되었습니다.