데브허브 | DEVHUB | DIY MCP Part 1: MCP ServerDIY MCP Part 1: MCP Server
- MCP 서버는 JSON RPC 2.0 메시지를 사용하여 클라이언트와 통신하며, 표준 IO 또는 HTTP 전송 계층을 통해 메시지를 교환합니다. 🔄
- MCP 통신은
initialize 메시지로 시작하여 서버의 기능(프로토콜 버전, 도구 등)을 확인하고, initialized 알림으로 세션을 활성화합니다. 🚀
- JSON RPC 메시지는
jsonrpc, id, method, params (요청) 또는 result (응답)의 핵심 요소를 포함합니다. 📝
- 클라이언트는
tools/list 메서드를 통해 서버가 제공하는 도구 목록(이름, 설명, 입력 스키마 포함)을 요청할 수 있습니다. 🛠️
tools/call 메서드를 사용하여 특정 도구(예: fetch)를 이름과 인수로 호출하고, 서버로부터 실행 결과를 받을 수 있습니다. 📞
- DIY MCP 서버는
stdin, stdout을 활용하는 표준 IO를 기반으로 구축되며, 이는 모든 현대 프로그래밍 언어에서 지원되어 언어 독립적인 구현을 가능하게 합니다. 💻
- TypeScript로 직접 MCP 서버를 구현하여
initialize, tools/list, tools/call 메서드를 처리하고, 각 도구에 대한 실행 로직과 응답 형식을 정의합니다. ☕
- MCP Inspector와 같은 클라이언트 도구를 사용하여 개발 중인 DIY MCP 서버가 프로토콜을 올바르게 따르는지 쉽게 테스트하고 검증할 수 있습니다. ✅
- 서버는
resources 기능을 통해 동적으로 변경될 수 있는 리소스 목록을 클라이언트에 제공할 수 있으며, 변경 시 알림을 보낼 수 있습니다. 🌳
- 외부 라이브러리 없이 MCP 서버와 클라이언트를 직접 구축함으로써, MCP 프로토콜의 핵심 개념과 동작 방식을 깊이 이해할 수 있습니다. 🧠