피드로 돌아가기
Build an MCP server that gives any LLM long-term memory
Dev.toDev.to
Backend

MCP 프로토콜과 VelesDB를 활용해 60줄의 Python 코드로 LLM에 장기 메모리 기능 추가

Build an MCP server that gives any LLM long-term memory

Julien L2026년 3월 28일7intermediate

Context

LLM은 각 세션이 끝나면 모든 정보를 잊어버리므로, 사용자는 매번 이전 대화 내용을 수동으로 복사-붙여넣기하거나 컨텍스트 윈도우에 과거 대화를 채워야 한다. 기존 메모리 솔루션은 Pinecone/Weaviate 같은 외부 API, Redis, PostgreSQL 등 여러 인프라 서비스를 요구한다.

Technical Solution

  • MCP(Model Context Protocol) 표준을 통해 LLM이 외부 도구를 발견하고 호출하도록 설계: Claude, GPT, Gemini 등 대부분의 LLM이 지원
  • 3개의 MCP 도구 구현: remember_fact()로 의미론적 메모리 저장, recall_facts()로 유사도 검색, record_event()로 타임스탬프가 있는 에피소드 메모리 기록
  • all-MiniLM-L6-v2 sentence transformer 모델(384차원)을 로컬에서 실행하여 텍스트를 벡터로 변환하고 비용 제거
  • VelesDB embedded engine(3MB)을 사용하여 벡터와 타임스탬프 데이터를 디스크에 자동 저장: 별도 데이터베이스 클러스터, Redis, 백그라운드 서비스 불필요
  • FastMCP 라이브러리의 @mcp.tool 데코레이터로 각 함수를 자동으로 MCP 도구로 등록
  • Claude Desktop의 claude_desktop_config.json에 memory_server.py 경로를 지정하여 연결

Impact

구성 요소 비교(from scratch vs VelesDB): 벡터 저장소는 Pinecone/Weaviate + API 키 vs db.agent_memory(384), 임베딩은 OpenAI API 또는 로컬 모델 초기 설정 vs sentence-transformers 직접 사용, 타임스탬프 이벤트는 PostgreSQL + 스키마 설계 vs memory.episodic.record(), 인프라는 3개 이상의 서비스 + 500MB 이상 Docker 이미지 vs 하나의 Python 파일 + 3MB embedded engine.

Key Takeaway

별도의 인프라 없이 embedded 벡터 엔진과 MCP 표준을 조합하면 LLM에 즉시 장기 메모리를 부여할 수 있으며, 이는 LLM을 새로운 도구의 "USB 포트"로 취급하여 다양한 기능을 플러그 앤 플레이 방식으로 확장 가능함을 보여준다.


Claude, GPT 등 MCP를 지원하는 LLM을 사용하는 개발자는 60줄의 Python 코드와 pip install velesdb fastmcp sentence-transformers만으로 사용자 선호도, 프로젝트 상태, 의사 결정 기록을 장기 메모리로 저장하고, 새로운 대화에서 자동으로 recall_facts()를 호출하여 컨텍스트를 로드함으로써 수동 컨텍스트 관리 오버헤드를 제거할 수 있다.

원문 읽기