토스페이먼츠 결제 시스템 연동을 돕는 MCP 서버 구현기
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 소프트웨어 개발자(특히 API 연동 및 AI 도구 사용자)
- 난이도: 중간 (API 연동 경험과 기본 서버 구축 지식 필요)
핵심 요약
- MCP 서버는 AI 기반 코딩 도구와 결제 시스템 연동 시 코드 생성 정확도를 30% 이상 향상시킴
- BM25 알고리즘을 활용한 문서 검색 방식으로 Hallucination 문제 해결
- 마크다운 헤더 기반 청크 분할과 unist-util-visit, remark-parse 라이브러리 사용으로 대규모 문서 처리 가능
섹션별 세부 요약
1. MCP 서버 개요
- MCP(Model-Context Protocol): AI 모델이 맥락 정보를 이해할 수 있도록 표준화된 프로토콜
- llms.txt 파일: LLM이 웹사이트 콘텐츠를 이해하는 데 사용되는 표준 파일
- 로컬 기반 MCP 서버 장점:
- SSOT(Single Source of Truth) 달성
- 사용자 증가 시 서버 비용 증가 없음
- NPM 패키지 사용으로 관리 비용 절감
2. MCP 서버 구현 방식
- 4가지 도구 지원:
- get-keywords
: 사전 정의된 키워드 목록 반환
- documents-by-keywords
: 키워드 기반 문서 검색
- documents-by-link
: 링크 기반 문서 탐색
- document-by-id
: ID 기반 문서 조회
- 초기 버전 문제점:
- 문서 길이로 인한 Hallucination 발생
- LLM 호출 빈도 증가
3. BM25 기반 검색 도입
- BM25 알고리즘 특징:
- 질의어 빈도와 역문서 빈도(IDF)를 고려한 관련성 측정
- 검색 엔진, RAG 시스템 등에 활용
- 한국어 처리 방안:
- 형태소 분석 대신 LLM 기반 토큰화 적용
- 정규식을 통한 질의 토큰화 및 BM25 점수 계산
4. 청크 분할 및 처리
- 마크다운 헤더 기반 청크 분할:
- unist-util-visit, remark-parse, unified
라이브러리 사용
- #
, ##
헤더로 문서 분할 후 30단어 이상 청크만 남김
- Document 클래스 구현:
- 청크 관리 및 키워드 기반 점수 계산
- getChunkWithWindow
메서드로 청크 범위 제어
결론
- MCP 서버 구현 시 BM25 알고리즘과 마크다운 청크 분할 전략을 적용하면 대규모 문서 처리와 AI 모델 정확도 향상을 달성할 수 있음.
- 실무 적용 시:
- unist-util-visit
과 remark-parse
라이브러리 활용
- 30단어 이상 청크 기준으로 분할 후 병합
- BM25 점수 계산 시 정규식 기반 토큰화 적용