Skip to main content
Glama

Claude가 당신을 더 잘 알게 하세요.

로컬 우선(Local-first) 방식의 세컨드 브레인으로, MCP를 통해 Claude에 연결됩니다. 메모는 일반 Markdown으로 저장되고 로컬 ML 모델로 인덱싱됩니다. 완전히 오프라인으로 동작하며, API 키가 필요 없고, 어떤 데이터도 사용자의 기기를 벗어나지 않습니다.


문제

Claude는 대화에 담긴 내용만큼만 똑똑합니다. 당신의 결정, 맥락, 생각은 매번 직접 붙여넣지 않으면 보이지 않습니다.

You:    What did we decide about the auth approach last sprint?
Claude: I don't have context from previous conversations...

Related MCP server: Memsolus MCP Server

해결책

You:    What did we decide about the auth approach last sprint?

Claude: [memex · search_notes · "auth approach decision"]

        Found 2 notes:

        Auth Architecture Decision  Apr 14  #auth #backend
        ─────────────────────────────────────────────────────
        Chose JWT + refresh tokens over sessions. Rationale:
        stateless design fits horizontal scaling plan.

        Based on your April 14th note: you went with JWT +
        refresh tokens. Tom also flagged keeping auth decoupled
        from payment logic, separate bounded contexts.

Claude는 답변하기 전에 메모를 검색하고, 매 대화가 끝나면 통찰을 저장합니다. 요청받지 않아도 자동으로요.


설치

npm install -g @evan-moon/memex

Claude Code에 연결:

memex mcp install

이렇게 하면 memex가 Claude Code와 Codex 양쪽에 등록됩니다. 설치 후 클라이언트를 다시 시작하세요. 클라이언트 중 하나를 수동으로 등록하려면:

claude mcp add memex -- node "$(memex mcp path)"
codex mcp add memex -- node "$(memex mcp path)"

그게 전부입니다. 최초 실행 시 임베딩 모델(~450MB)이 ~/.memex/models/에 한 번 다운로드됩니다.

자동 회상(선택 사항)

memex recall install

검색을 Claude가 결정해야 하는 작업에서 그냥 일어나는 일로 바꿉니다. 입력하는 모든 프롬프트는 메모와 의미적으로 검색되고, 상위 3개 제목이 Claude가 답변하기 전에 컨텍스트로 주입됩니다 — 기본 메모리(native memory)가 동작하는 것과 같은 방식입니다. 그런 다음 Claude는 제목이 관련 있어 보이면 get_note로 전체 메모를 가져옵니다.

백그라운드 데몬이 임베딩 모델을 warm 상태로 유지하므로(~/.memex/recall.sock), 조회에 드는 비용은 ~30ms입니다. 콜드 CLI 검색이 모델을 로드하는 데 쓰는 ~1.5초와 대비됩니다. 2시간 후에는 유휴 상태로 종료됩니다.

비용: warm 상태에서 상주 메모리 ~200MB, 그리고 프롬프트당 최대 3개의 메모 제목이 컨텍스트로 추가됩니다. memex recall uninstall로 제거할 수 있습니다.


기능

  • 의미 기반 검색, 키워드뿐만 아니라 의미로도 메모를 찾습니다. 다국어 지원(한국어 + 영어), multilingual-e5-base를 통해 완전히 오프라인으로 동작합니다.

  • 하이브리드 검색, 벡터 검색 + BM25 전문 검색 + 태그 매칭을 Reciprocal Rank Fusion으로 융합합니다.

  • 청크 단위 임베딩, 긴 메모는 ~340토큰 구절로 나뉘어 개별적으로 임베딩되므로, 3페이지에 묻힌 답도 도입부 문단의 답만큼 쉽게 찾을 수 있습니다. 검색은 메모의 첫 줄이 아니라 매칭된 구절을 반환합니다.

  • 크로스-인코더 재랭킹(Cross-encoder reranking) (옵트인, MEMEX_RERANK=1), 두 배 많은 후보를 검색하여 bge-reranker-v2-m3로 재정렬합니다. 골든 세트에서 hit@1이 ~+20pp 개선되지만 검색당 ~1.8s가 걸립니다 — 자동 회상과 CLI가 즉시 조회 기반으로 설계되어 기본적으로 꺼져 있습니다.

  • 날짜 필터, --from / --to로 검색을 기간으로 좁힙니다.

  • 메모 레이어, 모든 메모는 past(불변 기록), state(변경 가능한 계획), 또는 rule(Claude 행동 가이드) 중 하나입니다. past 메모는 업데이트를 거부하고, rule 메모는 Claude의 시스템 프롬프트에 자동 주입됩니다.

  • Flashback, 저장과 검색 시 다른 폴더에 있는 의미적으로 관련된 오래된 메모를 자동으로 표시합니다. "124일 전에 다른 맥락에서 이 주제에 대해 썼었죠"라는 식으로요.

  • 추론 엔진, 결정론적 시그널이 아직 종합되지 않은 패턴(연도에 걸친 흐름, 오래된 state 메모, 태그 부활)을 표면화합니다. 좋은 시그널은 추론(출처가 있는 가설)으로 승격할 수 있으며, 원본 메모가 변경되면 자동으로 무효화됩니다. 코어에 LLM이 없습니다.

  • MCP 서버, Claude가 자동으로 검색하고 저장합니다. 별도의 CLAUDE.md 설정이 필요 없습니다.

  • 자동 회상(Auto-recall), 모든 프롬프트에서 메모를 검색하고 Claude가 답변하기 전에 결과를 주입하는 옵트인 훅입니다. 회상이 결코 Claude가 찾아봐야 기억하는 일에 의존하지 않습니다.

  • 중복 감지, 의미상 유사한 메모가 이미 있으면 save_note가 경고하여, 새로 만들기보다 업데이트하도록 Claude를 유도합니다.

  • 백링크, [[Title]] 구문으로 메모를 연결합니다. get_note는 해당 메모를 참조하는 메모를 보여줍니다.

  • 시리즈 접기, 날짜가 있는 작업 로그("… 2026-07-20", "… 2026-07-23")는 결과 페이지에서 최대 두 개의 자리만 차지하며, 검색은 얼마나 더 보류했는지 알려줍니다.

  • 수정(Amendment), 정정은 무엇을 고치는지 기록하므로(amends), 검색은 대체된 메모를 표시하고 이미 틀렸다고 아는 주장을 반환하는 대신 가장 최신 수정을 가리킵니다.

  • 다이제스트(Digest), memex digest는 최근 N일 동안 저장된 메모를 폴더별로 그룹화하여 요약합니다.

  • CLI, 터미널에서 메모를 추가, 검색, 태그, 탐색, 인덱싱할 수 있습니다.

  • Obsidian 호환, 메모가 .md 파일로 저장됩니다. 기존 볼트와 함께 동작합니다.

  • 로컬 DB, ~/.memex/memex.db의 SQLite + sqlite-vec


CLI

# Add notes
memex add                                    # interactive prompt (asks for layer)
memex add --title "Note title" --content "..." --layer past
memex add --title "Note title" --file ./note.md --layer state
memex add --title "Note title" --content "..." --folder work/people/tom --layer past
memex add --title "Note title" --content "..." -T typescript -T architecture --layer past

# Layers
memex layer                               # distribution of past / state / rule
memex layer <id> state                     # move a note to a different layer

# Search
memex search "semantic search query"         # multilingual
memex search "knowledge management" --limit 10    # multilingual: matches Korean/Japanese notes too
memex search "query" --tag typescript        # filter by tag
memex search "query" --from 2026-04-01       # notes since a date
memex search "query" --from 2026-04-01 --to 2026-04-30

# Browse
memex list                                   # recent 10 notes
memex list --limit 20
memex show <id>
memex tags                                   # all tags with counts
memex related <id>                           # semantically related notes
memex digest                                 # last 7 days + signals + inferences
memex digest --days 30                       # summary of last 30 days

# Insights (inference engine)
memex signals                                # detect un-synthesized patterns
memex signals --type hidden_arc              # one type only
memex signals dismiss <id>                   # triage (also: snooze)
memex signals mint <signalId>                        # print evidence bundle to synthesize
memex signals mint <signalId> --title "..." --summary "..." --confidence 0.7
memex inferences                             # list inferences (auto-flags stale)
memex schedule                               # print cron/launchd snippet (no daemon)

# Edit / delete
memex edit <id>
memex delete <id>
memex delete --yes <id>                      # skip confirmation

# Index external directories
memex source add ~/Documents/My\ Notes       # register a vault
memex source list
memex source remove ~/Documents/My\ Notes
memex index                                  # scan vault + all sources
memex index --force                          # re-index everything
memex reembed                                # re-embed with current model

# Config
memex config show
memex config set vault-path ~/Documents/Second\ Brain

# MCP
memex mcp install                            # register with Claude Code and Codex

# Auto-recall
memex recall install                         # search notes on every prompt, inject hits
memex recall uninstall                       # remove the hook
memex mcp path                               # print MCP binary path

MCP 서버

Claude Code 및 Codex

memex mcp install

또는 Claude Code의 경우 수동으로:

claude mcp add memex -- node "$(memex mcp path)"

Codex의 경우:

codex mcp add memex -- node "$(memex mcp path)"

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json에 추가하세요:

{
  "mcpServers": {
    "memex": {
      "command": "node",
      "args": ["<path from `memex mcp path`>"]
    }
  }
}

사용 가능한 도구

도구

설명

save_note

메모 저장, layer 필요, 유사한 메모가 이미 있으면 경고, 플래시백 표시

search_notes

의미 기반 검색; category, tag, date_from, date_to 필터 지원; 상위 결과에 플래시백 추가

list_notes

최근 메모 목록

list_tags

메모 수와 함께 모든 태그 목록

list_folders

메모 수와 함께 모든 폴더 목록

get_note

ID로 메모의 전체 내용과 백링크 가져오기

update_note

제목 또는 내용 업데이트. past 메모([Amendment] 제안과 함께)와 rule 메모(사용자 전용)는 거부

delete_note

ID로 메모 삭제

get_signals

결정론적 비종합 패턴 (hidden_arc / stale_state / dangling_link / tag_burst)

update_signal_status

시그널 분류, 해제(dismiss) 또는 snooze 처리

list_inferences

종합된 가설 목록(먼저 오래된 항목인지 재확인)

get_inference

전체 출처 + 변경/삭제 마커가 포함된 추론 하나

mint_inference

승인된 가설 저장, 명시적 확인 필요

추론은 메모와 분리되어 유지되며(검색에서 제외), 가설로 인용될 뿐 결코 사실로 취급되지 않습니다. 탐지는 결정론적으로 유지됩니다. 유일한 LLM 단계는 추론 요약을 종합하는 것이며, 이는 memex가 아닌 Claude가 수행합니다.

메모 레이어

모든 메모는 변경 가능성(mutability)에 따라 다음 세 가지 레이어 중 하나로 분류됩니다:

레이어

의미

Claude의 권한

past

일어난 일의 기록: 회고, 회의, 의사 결정 근거, 디버깅 세션

추가 전용. update_note는 거부하고 대신 [Amendment] 메모를 제안

state

현재 상태 또는 계획: 프로젝트 진행 상황, 로드맵, 특정 인물의 현재 역할

자유롭게 업데이트 가능

rule

Claude의 행동 가이드: 코딩 스타일, 검색 정책

Claude는 읽기 전용. 오직 사용자만 작성 가능

CLI는 list, search, show에서 각 메모 옆에 색상으로 구분된 [past] / [state] / [rule] 배지를 표시합니다.

  • save_note(MCP)와 memex add(CLI)는 명시적인 layer를 요구합니다. 분류 규칙은 도구 설명에 문서화되어 있어 Claude가 올바르게 선택할 수 있습니다.

  • 최초 실행 시 기존 메모는 폴더 기반 백필을 거칩니다: projects/dev/heraldstate, codingrule, 그 외 전부 → past. 마이그레이션은 멱등적입니다.

  • rule 메모는 MCP 서버의 지침에도 자동 주입됩니다. 아래의 Rule 레이어 자동 주입을 참조하세요.

Flashback

메모를 저장하거나 검색하면 memex는 다른 폴더에 있는 의미적으로 유사한 오래된 메모를 자동으로 표시합니다. "124일 전에 다른 맥락에서 이 주제에 대해 썼었죠." 이는 시스템 생성 백링크(note_links.source = 'flashback')로 저장되며, 사용자의 [[wikilinks]](source = 'wiki')와 분리됩니다.

환경 변수로 조정할 수 있습니다:

환경 변수

기본값

동작

MEMEX_FLASHBACK_DAYS

90

최소 연령 차이(일)

MEMEX_FLASHBACK_DIST

0.4

최대 벡터 거리(낮을수록 더 엄격한 매칭)

MEMEX_FLASHBACK_LIMIT

3

노출 1회당 최대 제안 수

Rule 레이어 자동 주입

layer = 'rule'인 메모는 시작 시 MCP 서버 지침의 ## House Rules 섹션 아래에 추가됩니다. Claude는 모든 대화 시작 시 이를 볼 수 있으며 search_notes 호출이 필요 없습니다. 코딩 스타일 가이드나 기타 행동 지침을 두기에 적합한 곳입니다.

환경 변수

기본값

동작

MEMEX_INJECT_RULES

enabled

0으로 설정하면 주입을 완전히 비활성화

MEMEX_RULES_MAX_CHARS

8000

주입 섹션의 바이트 예산. 초과분은 console.warn으로 잘림

rule 메모에 대한 업데이트는 다음 Claude Desktop / Claude Code 재시작 시 반영됩니다.


설정

설정 파일은 ~/.memex/config.json에 저장됩니다.

기본값

설명

vault_path

~/Documents/Second Brain

.md 파일이 저장되는 디렉터리

sources

[]

추가로 인덱싱할 디렉터리 (예: 기존 Obsidian 볼트)

aliases

{}

검색 별칭 맵, 예: { "js": ["javascript", "ecmascript"] }, 값은 어떤 언어든 될 수 있어 서로 다른 문자 체계 간을 연결합니다

memex config set vault-path ~/my-vault

아키텍처

~/.memex/
  config.json, vault path, sources, and aliases
  memex.db, SQLite DB (notes + note/chunk vec embeddings + FTS5 index)
  models/, cached embedding model

<vault>/
  *.md, notes (Obsidian-compatible)

Package

역할

@memex/db

SQLite 스키마, drizzle 쿼리, sqlite-vec + FTS5 통합

@memex/embed

@huggingface/transformers를 통한 로컬 임베더

@memex/rerank

로컬 크로스-인코더 리랭커(선택)

@memex/core

CLI와 MCP가 공유하는 노트 서비스: 저장, 편집, 검색, 벡터 인덱싱

@memex/utils

설정, 경로 헬퍼, 공용 유틸리티

@memex/mcp

MCP 서버(CLI dist에 번들됨)


생태계

memex는 하나의 원칙을 공유하는 세 가지 로컬 우선(local-first) 도구 중 하나입니다. 여러분의 데이터는 여러분의 기기에 머물며, AI가 그 기기로 직접 찾아옵니다. 이 세 도구는 어떤 MCP 클라이언트를 통해서든 상호 운용되며, 서로에 의존하지 않습니다.

flowchart TB
    U([You])
    subgraph I["Interfaces, talk to your tools"]
        direction LR
        CD[Claude Desktop]
        CC[Claude Code]
        H["Herald · voice"]
    end
    subgraph T["Local-first tools, each owns its data, on your machine"]
        direction LR
        F["firma · money<br/>~/.firma"]
        M["memex · memory<br/>~/.memex"]
        S["skope · news<br/>~/.skope"]
    end
    U --> I
    I -- MCP --> F & M & S
    F <-. never call each other .-> M
    M <-.-> S
  • firma · 돈, 포트폴리오, 순자산, 현금 흐름

  • memex · 세션을 아우르는 메모리, 노트와 그 배경 맥락

  • skope · 뉴스, 세상을 보는 맞춤형 렌즈

Claude Desktop, Claude Code, Cursor 또는 음성 인터페이스인 Herald 를 통해 접근할 수 있습니다. 도구들은 서로를 직접 호출하지 않고 모델을 통해 조합됩니다.


llms.txt

llms.txt는 문서 링크가 포함된 간결한 설명으로, llms.txt 표준을 따르는 LLM 에이전트용 기계 판독 가능 프로젝트 요약입니다.


라이선스

MIT

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
2wRelease cycle
9Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with persistent, searchable memory that survives across conversations using semantic search, temporal versioning, and smart organization. Enables long-term context retention and cross-session continuity for AI assistants.
    14
  • A
    license
    A
    quality
    D
    maintenance
    Provides persistent long-term memory for AI agents through semantic search and automated knowledge graph extraction. It enables agents to store, recall, and reason over facts, preferences, and relationships across multiple conversations and sessions.
    14
    8
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A production-grade persistent memory service for AI agents. Agents forget everything between sessions by default — memex fixes that. It stores, retrieves, and ranks conversation memory using semantic search with recency decay, so agents surface what's relevant and recent, not just what's semantically closest.
    4
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Persistent memory for AI agents — verbatim conversations, searchable by meaning.

  • Universal memory for AI agents and tools. Save, organize and search context anywhere.

  • Persistent memory for AI agents. Search, store, and recall across sessions.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/evan-moon/memex'

If you have feedback or need assistance with the MCP directory API, please join our Discord server