MCP 서버는 Elixir와 Anubis 라이브러리를 활용하여 구축되었습니다.
1. MCP 서버 및 도구(Tool) 정의
-
MCP 서버는
TIL서버로 정의되며,Tilex.MCP.NewPost와 같은 도구 컴포넌트를 포함합니다. -
새 게시물 생성 도구(
NewPost)::tool타입으로 구현되며,title,body,channel필드를 포함하는 스키마를 가집니다. AI가 올바르게 사용하도록 각 필드에 상세한 설명을 제공해야 합니다.
2. 데이터 제공을 위한 리소스(Resource) 추가
- 채널 목록 리소스(
ListChannels): AI가 사용할 채널 목록을 제공하는:resource타입 컴포넌트입니다.NewPost도구의channel필드 설명은 AI가ListChannels리소스에서 정보를 얻도록 유도합니다.
3. MCP 서버 인증 구현
- 사용자 간 공유 서버 인스턴스 문제를 해결하기 위해, 각 도구/리소스 실행 시 요청 헤더(
x-api-key)에서 현재 사용자를 직접 가져와 인증하는 방식을 채택했습니다.
4. 토큰 생성 및 AI 도구 연동
- 사용자 프로필 페이지에서 MCP 토큰을 생성하고, 이를 Cursor나 Claude Code 같은 AI 도구에 설정하여 연동합니다.
5. 실제 작동 과정
- AI에 TIL 게시물 작성을 요청하면, AI는
list_channels리소스를 조회하고new_post도구를 호출하여 게시물을 생성합니다. 서버는 생성된 게시물 링크를 반환하여 사용자가 검토하고 게시할 수 있도록 안내합니다.