MCP-Memory: OKF 및 SQLite FTS5를 활용한 빠른 에이전트 메모리

Quick Take

MCP-Memory는 AI 에이전트에게 로컬 SQLite FTS5 데이터베이스에 인덱싱된 OKF‑v0.2 준수 지속성 메모리를 제공하여, 사람이 브라우징 가능한 마크다운 디렉토리를 유지하면서도 20ms 미만의 키 조회와 즉각적인 전체 텍스트 검색을 실현합니다.


MCP-Memory란 무엇인가

MCP-Memory는 Claude Desktop, Cursor, Antigravity, Windsurf 또는 Codex와 같은 에이전트에게 장기적이고 검색 가능한 메모리를 제공하는 Model Context Protocol (MCP) 서버입니다. 각 메모리 레코드는 풍부한 YAML front-matter를 포함한 OKF v0.2 마크다운 문서로 저장되며, 동일한 데이터는 빠른 검색을 위해 SQLite FTS5에 인덱싱됩니다.


핵심 설계 선택

이중 레이어 아키텍처

  • 사람이 브라우징 가능한 OKF 디렉토리 – 모든 메모리는 계층적 index.md 파일을 가진 .md 파일 형태로 memory/에 저장되어, 버전 관리가 가능하고 읽기 쉬운 지식 베이스를 제공합니다.
  • 고성능 SQLite 인덱스 – FTS5 트리거가 포함된 SQLite 데이터베이스를 통해 20ms 미만의 키-값 조회를 지원하며, 키, front-matter 및 콘텐츠 전반에 걸친 키워드 검색이 가능합니다.

네임스페이스 격리

메모리는 네임스페이스(예: user/preferences, project/architecture, default)별로 분할할 수 있어 프로젝트 간 데이터 혼선을 방지합니다.

제로 보일러플레이트 설정

python3 setup.py를 실행하면 지원되는 에이전트를 자동으로 감지하고 memory MCP 서버를 등록하므로, 에이전트가 영구적인 터미널 프로세스 없이도 자동으로 서버를 실행합니다.


에이전트에게 제공되는 MCP 도구

도구 목적 주요 매개변수
memory_store 메모리 레코드 생성 또는 업데이트 key, content, project_root, 선택적 tags, namespace, concept_type, title, description, resource, status, stale_after, sources, verified, generated_by
memory_retrieve 키를 통해 단일 레코드 가져오기 key, project_root, 선택적 namespace
memory_search 전체 텍스트 또는 태그 기반 검색 project_root, 선택적 query, tags, namespace, limit
memory_get_last 시작 시 세션 체크포인트(system/last_memory) 가져오기 project_root, 선택적 namespace
memory_update_last 마일스톤 달성 후 체크포인트 업데이트 content, project_root, 선택적 namespace, summary

실제 OKF v0.2 사양 적용

각 메모리는 다음과 같이 OKF front-matter 스키마를 따릅니다:

---
type: Agent Memory
title: Coding Style
key: user/preferences/coding_style
namespace: default
tags:
  - preferences
  - style
status: stable
generated:
  by: mcp-memory/0.2.0
  at: '2026-08-12T19:23:35Z'
created_at: '2026-08-12T19:23:35Z'
updated_at: '2026-08-12T19:23:35Z'
---
User prefers functional programming style with explicit type annotations.

동일한 파일이 memory/에 저장되는 동시에, 검색 가능한 표현은 .mcp_memory/memories.db에 저장됩니다.


설치 및 빠른 시작

  1. 저장소 클론:
    git clone https://github.com/fellowgeek/mcp-memory
    cd mcp-memory
    
  2. 설정 마법사 실행을 통해 지원되는 에이전트에 서버를 자동 등록합니다:
    python3 setup.py
    
    완료 후 에이전트가 필요 시 mcp-memory를 실행합니다.
  3. 디버깅을 위한 선택적 수동 시작:
    /run.sh
    

수동 클라이언트 설정

명시적인 설정을 선호하는 경우, run.sh를 가리키는 memory 항목을 추가합니다:

JSON (Antigravity, Claude Desktop, Cursor, Windsurf)

{
  "mcpServers": {
    "memory": {
      "command": "/ABSOLUTE/PATH/TO/run.sh"
    }
  }
}

TOML (Codex Desktop)

[mcp_servers.memory]
command = "/ABSOLUTE/PATH/TO/run.sh"

CLI 예시

claude mcp add --scope user memory -- /ABSOLUTE/PATH/TO/run.sh
codex mcp add memory -- /ABSOLUTE/PATH/TO/run.sh

저장소 레이아웃 및 환경 변수

  • OKF 마크다운 – 프로젝트 루트 내부의 memory/ 디렉토리.
  • SQLite 인덱스.mcp_memory/memories.db (숨김).
  • 환경 변수를 통해 사용자 지정 위치를 지정할 수 있습니다:
    • MCP_MEMORY_PROJECT_ROOT – 기본값은 현재 작업 디렉토리.
    • MCP_MEMORY_DB_PATH – 기본값은 .mcp_memory/memories.db.
    • MCP_MEMORY_DIR – 기본값은 memory.
  • 여러 프로젝트에서 단일 저장소를 공유하려면 MCP_MEMORY_DB_PATH=~/.mcp_memory/memories.dbMCP_MEMORY_DIR=~/.mcp_memory/memory로 설정하십시오.

커뮤니티 피드백 하이라이트

@myshapeprotocol – “빠른 에이전트 메모리를 위해 SQLite FTS5를 사용하는 것은 매우 실용적인 아키텍처 선택입니다. 훌륭한 Show HN 프로젝트네요.”

@bearjaws – “또 한 주가 지나갔고, memory/ 디렉토리의 grep과 다를 바 없는 또 다른 에이전트 메모리 시스템이 나왔군요.”

@healthycoder – “이게 기존의 다른 메모리 기능들(mem0 등)과 무엇이 다른가요?”

@jrflo – “단순히 마크다운 파일을 사용하고 에이전트가 grep을 허용하는 것보다 왜 이게 더 유익한가요? MCP 도구가 에이전트의 속도를 늦추고 토큰을 낭비할 수 있다는 것을 알고 있습니다.”

@FitchApps – “초보자를 위해 왜 일반 MD 파일이 아닌 Google의 OKF 형식을 사용하는지 설명해 주실 수 있나요?”

@rcarmo – “더 많은 OKF 기반 접근 방식을 보게 되어 기쁩니다. 제 프로젝트는 https://rcarmo.github.io/projects/memento/ 입니다.”

이 댓글들은 두 가지 반복되는 주제를 보여줍니다: 일반 마크다운 대비 구조화된 OKF 메타데이터의 가치, 그리고 단순 grep 대비 SQLite 인덱스의 성능 트레이드오프입니다.


MCP-Memory가 기존 솔루션과 다른 점

  • 표준화된 메타데이터 – OKF v0.2는 일반 마크다운에는 없는 균일한 스키마(type, tags, status, provenance)를 강제하여, 더 풍부한 필터링과 자동화된 라이프사이클 관리를 가능하게 합니다.
  • 20ms 미만의 인덱싱된 조회 – SQLite FTS5는 결정론적 지연 시간을 제공하는 반면, grep은 파일 크기에 따라 선형적으로 확장되어 대규모 프로젝트에서 병목 현상이 될 수 있습니다.
  • 이중 지속성 – 에이전트는 데이터베이스를 통해 즉각적인 기계 판독 가능 액세스를 얻는 동시에, 개발자는 검토 및 버전 관리를 위해 사람이 읽을 수 있는 마크다운 아카이브를 유지할 수 있습니다.
  • 네임스페이스 격리 – 별도의 지식 도메인을 위한 내장 지원을 통해 관련 없는 프로젝트 간의 의도치 않은 간섭을 방지합니다.

MCP-Memory를 사용해야 할 때

  • 수십 개에서 수천 개의 지식 스니펫에 대한 빠르고 결정론적인 검색이 필요한 프로젝트.
  • **감사 가능성(auditability)**을 원하는 팀: 마크다운 디렉토리는 버전 관리가 가능하며, 데이터베이스는 에이전트를 구동합니다.
  • 컴플라이언스 또는 문서화를 위해 구조화된 출처(provenance)(소스, 검증, 상태)의 이점이 있는 워크플로우.

한계 및 미해결 과제

  • 내장된 벡터 검색 기능 없음; 메모리는 정확한 키, 태그 또는 전체 텍스트 일치로만 검색됩니다.
  • 성능 이득은 SQLite의 FTS5 설정에 따라 달라집니다; 매우 큰 코퍼스는 여전히 샤딩이 필요할 수 있습니다.
  • 일부 사용자는 에이전트가 서버에 반복적으로 쿼리를 보낼 경우 MCP 도구가 토큰 사용량을 증가시킬 수 있다고 보고합니다; 신중한 프롬프트 설계가 필요합니다.

결론

MCP-Memory는 Google의 Open Knowledge FormatSQLite FTS5를 결합하여 사람이 읽을 수 있는 지식 베이스와 고성능 에이전트 메모리 사이의 간극을 메웁니다. 이중 레이어 설계, 네임스페이스 격리 및 제로 보일러플레이트 설정은 AI 에이전트를 위한 구조화되고 빠르며 지속적인 컨텍스트를 찾는 개발자에게 매력적인 옵션이 됩니다.

Sources

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트