LLM으로 MCP 만들기

이 가이드는 LLM을 활용해 커스텀 Model Context Protocol(MCP) 서버와 클라이언트를 만드는 방법을 안내합니다. 이 튜토리얼에서는 Claude를 기준으로 설명하지만, 다른 최신 LLM으로도 동일한 접근을 적용할 수 있습니다.

문서 준비

시작하기 전에 Claude가 MCP를 정확히 이해할 수 있도록 필요한 문서를 준비하세요:

  1. https://modelcontextprotocol.info/llms-full.txt 에 접속해 전체 문서 텍스트를 복사합니다.
  2. MCP TypeScript SDK 또는 Python SDK 저장소로 이동합니다.
  3. README와 기타 관련 문서를 복사합니다.
  4. 이 문서들을 Claude와의 대화에 붙여넣습니다.

서버 요구사항 설명하기

문서를 제공한 뒤, 만들고 싶은 서버가 무엇인지 Claude에게 명확히 설명하세요. 특히 아래 항목을 구체화하는 것이 중요합니다:

  • 서버가 노출할 리소스(resources)
  • 제공할 도구(tools)
  • 제공할 프롬프트(prompts)
  • 연동해야 하는 외부 시스템

예시:

다음 조건을 만족하는 MCP 서버를 만들어줘:
- 회사 PostgreSQL 데이터베이스에 연결
- 테이블 스키마를 리소스로 노출
- 읽기 전용 SQL 쿼리를 실행하는 도구 제공
- 자주 쓰는 데이터 분석 작업을 위한 프롬프트 포함

Claude와 함께 작업하기

Claude와 MCP 서버를 만들 때는 다음 흐름이 효과적입니다:

  1. 핵심 기능부터 구현한 뒤 점진적으로 기능을 추가합니다.
  2. 이해가 안 되는 코드 부분은 Claude에게 설명을 요청합니다.
  3. 필요할 때 수정/개선을 구체적으로 요청합니다.
  4. 테스트와 엣지 케이스 처리까지 함께 점검합니다.

Claude는 MCP의 핵심 기능 구현 전반을 도울 수 있습니다:

  • 리소스 관리 및 노출
  • 도구 정의 및 구현
  • 프롬프트 템플릿 및 핸들러
  • 오류 처리 및 로깅
  • 연결 및 전송(transport) 설정

모범 사례

Claude와 함께 MCP 서버를 만들 때는:

  • 복잡한 서버는 작은 단위로 쪼개서 설계합니다.
  • 각 컴포넌트를 충분히 테스트한 뒤 다음으로 넘어갑니다.
  • 보안을 항상 고려하세요(입력 검증, 접근 제한 등).
  • 유지보수를 위해 코드와 동작을 잘 문서화합니다.
  • MCP 프로토콜 사양을 꼼꼼히 준수합니다.

다음 단계

Claude가 서버를 만들어 준 뒤에는:

  1. 생성된 코드를 꼼꼼히 리뷰합니다.
  2. MCP 인스펙터(Inspector)로 서버를 테스트합니다.
  3. Claude.app 또는 다른 MCP 클라이언트에 연결합니다.
  4. 실제 사용과 피드백을 기반으로 반복 개선합니다.

요구사항이 바뀌는 과정에서도 Claude는 서버 수정과 개선을 계속 도울 수 있습니다.

추가 도움이 필요하신가요? MCP 기능 구현 방법이나 발생한 문제의 트러블슈팅을 Claude에게 구체적으로 질문해 보세요.