LLM으로 MCP 만들기
이 가이드는 LLM을 활용해 커스텀 Model Context Protocol(MCP) 서버와 클라이언트를 만드는 방법을 안내합니다. 이 튜토리얼에서는 Claude를 기준으로 설명하지만, 다른 최신 LLM으로도 동일한 접근을 적용할 수 있습니다.
문서 준비
시작하기 전에 Claude가 MCP를 정확히 이해할 수 있도록 필요한 문서를 준비하세요:
- https://modelcontextprotocol.info/llms-full.txt 에 접속해 전체 문서 텍스트를 복사합니다.
- MCP TypeScript SDK 또는 Python SDK 저장소로 이동합니다.
- README와 기타 관련 문서를 복사합니다.
- 이 문서들을 Claude와의 대화에 붙여넣습니다.
서버 요구사항 설명하기
문서를 제공한 뒤, 만들고 싶은 서버가 무엇인지 Claude에게 명확히 설명하세요. 특히 아래 항목을 구체화하는 것이 중요합니다:
- 서버가 노출할 리소스(resources)
- 제공할 도구(tools)
- 제공할 프롬프트(prompts)
- 연동해야 하는 외부 시스템
예시:
다음 조건을 만족하는 MCP 서버를 만들어줘:
- 회사 PostgreSQL 데이터베이스에 연결
- 테이블 스키마를 리소스로 노출
- 읽기 전용 SQL 쿼리를 실행하는 도구 제공
- 자주 쓰는 데이터 분석 작업을 위한 프롬프트 포함Claude와 함께 작업하기
Claude와 MCP 서버를 만들 때는 다음 흐름이 효과적입니다:
- 핵심 기능부터 구현한 뒤 점진적으로 기능을 추가합니다.
- 이해가 안 되는 코드 부분은 Claude에게 설명을 요청합니다.
- 필요할 때 수정/개선을 구체적으로 요청합니다.
- 테스트와 엣지 케이스 처리까지 함께 점검합니다.
Claude는 MCP의 핵심 기능 구현 전반을 도울 수 있습니다:
- 리소스 관리 및 노출
- 도구 정의 및 구현
- 프롬프트 템플릿 및 핸들러
- 오류 처리 및 로깅
- 연결 및 전송(transport) 설정
모범 사례
Claude와 함께 MCP 서버를 만들 때는:
- 복잡한 서버는 작은 단위로 쪼개서 설계합니다.
- 각 컴포넌트를 충분히 테스트한 뒤 다음으로 넘어갑니다.
- 보안을 항상 고려하세요(입력 검증, 접근 제한 등).
- 유지보수를 위해 코드와 동작을 잘 문서화합니다.
- MCP 프로토콜 사양을 꼼꼼히 준수합니다.
다음 단계
Claude가 서버를 만들어 준 뒤에는:
- 생성된 코드를 꼼꼼히 리뷰합니다.
- MCP 인스펙터(Inspector)로 서버를 테스트합니다.
- Claude.app 또는 다른 MCP 클라이언트에 연결합니다.
- 실제 사용과 피드백을 기반으로 반복 개선합니다.
요구사항이 바뀌는 과정에서도 Claude는 서버 수정과 개선을 계속 도울 수 있습니다.
추가 도움이 필요하신가요? MCP 기능 구현 방법이나 발생한 문제의 트러블슈팅을 Claude에게 구체적으로 질문해 보세요.