MCP 툴

memex가 Model Context Protocol을 통해 Claude에 제공하는 도구들.

memex를 Claude에 연결하면, Claude는 13개의 도구에 접근할 수 있습니다. 이 도구들은 자동으로 사용됩니다, 별도로 요청할 필요가 없습니다.

도구 목록

도구설명
save_note노트 저장. layer 필수. 유사 노트가 있으면 경고, 플래시백 함께 반환.
search_notes하이브리드 시맨틱 검색. top 결과에 대한 플래시백을 응답 하단에 부착.
list_notes최근 노트를 생성일 순으로 나열합니다.
list_tags노트 수가 포함된 전체 태그 목록.
list_folders노트 수가 포함된 전체 폴더 목록.
get_noteID로 노트 전체 내용 + 백링크 조회.
update_note제목·내용·태그 수정. past는 거부([Amendment] 노트 제안), rule은 거부(사용자만 수정).
delete_noteID로 노트를 삭제합니다.
get_signals결정론적 미종합 패턴 (hidden_arc / stale_state / dangling_link / tag_burst).
update_signal_status신호 triage, 노이즈 dismiss 또는 snooze.
list_inferences종합된 가설 목록 (먼저 staleness 재확인).
get_inference추론 1개를 출처 전체와 함께 (변경/삭제 마커 포함).
mint_inference승인된 가설 저장. 명시적 확인 필요.

search_notes 파라미터

파라미터타입설명
querystring검색 쿼리 (자연어)
limitnumber최대 결과 수 (기본값 10)
categorystring특정 폴더로 필터링
tagstring태그로 필터링
date_fromstringISO 8601 날짜, 해당 날짜 이후 노트만
date_tostringISO 8601 날짜, 해당 날짜 이전 노트만

예시: "지난 4월에 auth에 대해 어떤 결정을 했었지?" → Claude가 query="auth decision", date_from="2025-04-01", date_to="2025-04-30"으로 search_notes를 호출합니다.

save_note 동작 방식

save_notelayer 파라미터가 필수입니다, past, state, rule 중 하나. 분류 규칙이 도구 설명에 포함돼 있어서 Claude가 자동으로 적절한 layer를 선택합니다: 일어난 일의 기록은 past (모호하면 기본), 현재 계획은 state, Claude 행동 가이드는 사용자가 명시할 때만 rule.

저장 전에 Claude는 다음을 수행하도록 지시받습니다:

  1. list_tagslist_folders를 호출해 기존 분류 체계 확인
  2. 새로운 태그/폴더를 만들지 않고 기존 것 중에서 선택
  3. 사람, 프로젝트, 개념에 대한 참조는 [[Title]] 위키링크 문법 사용

save_note가 ⚠️ 유사 노트 경고를 반환하면, Claude는 새 노트를 만들지 않고 가장 관련 있는 기존 노트에 update_note를 사용합니다.

응답에는 플래시백도 함께 포함됩니다, 아래 도구 응답의 플래시백 참조.

update_note의 레이어 가드

update_note는 layer-aware로 동작합니다:

  • pasterror: 'PAST_IMMUTABLE'로 거부. 원본 노트로 위키링크하는 [Amendment] 새 노트 저장을 제안. Claude는 이 제안을 자동으로 따릅니다.
  • ruleerror: 'RULE_USER_ONLY'로 거부. Claude는 직접 수정하지 않고 대화에 제안만 띄웁니다.
  • state → 정상 수정.

과거 기록의 무결성을 유지하고, Claude가 자신의 행동 규칙을 몰래 다시 쓰는 일을 방지합니다.

House Rules 자동 주입

layer = 'rule'인 노트는 MCP 서버 부팅 시 instructions 끝부분에 ## House Rules 섹션으로 append됩니다. Claude가 모든 대화 시작부터 인지하므로 search_notes 호출이 필요 없습니다. 코딩 스타일 가이드, 개인 선호, 정책 노트가 여기에 적합합니다.

환경 변수기본값동작
MEMEX_INJECT_RULESenabled0으로 설정 시 주입 비활성화
MEMEX_RULES_MAX_CHARS8000바이트 예산. 초과 시 console.warn과 함께 truncate

변경 사항은 Claude Desktop / Claude Code 재시작 시 반영됩니다.

도구 응답의 플래시백

save_notesearch_notes 둘 다, 다른 폴더에 있는 과거 노트가 현재 컨텍스트와 매칭되면 🔗 Flashback 섹션을 응답 하단에 부착합니다:

Saved note #142: "Auth 접근 재검토"

🔗 Flashback, older notes from a different context:
- 124 days ago: #48 "Auth Architecture Decision" (82% match)

search_notes의 경우 top 결과를 앵커로 삼습니다. Claude는 관련성 있어 보이면 이 플래시백을 사용자에게 직접 surface하도록 지시받습니다, "3개월 전 다른 프로젝트에서 이걸 다뤘었네" 같은 연결이 실제로 보이게 되는 메커니즘입니다.

환경 변수로 조정:

환경 변수기본값의미
MEMEX_FLASHBACK_DAYS90최소 시간 갭 (일)
MEMEX_FLASHBACK_DIST0.4최대 벡터 거리 (낮을수록 엄격)
MEMEX_FLASHBACK_LIMIT3surface당 최대 추천 수

get_note + 백링크

get_note는 노트 전체 내용과 함께 "Referenced by" 섹션을 반환합니다. 이 섹션에는 [[Title]] 문법으로 이 노트를 참조하는 모든 노트가 나열됩니다. 백링크는 저장/수정 시점에 해석됩니다.

추론 엔진 도구

추론 엔진을 Claude에 노출하는 도구들입니다. 탐지와 무효화는 memex 안에서 결정론적으로 유지되고, 유일한 LLM 단계인 추론 요약 종합은 Claude가 합니다, memex는 절대 하지 않습니다.

  • get_signals(type?, status?), 미종합 패턴을 나열. 기본 new이고 탐지를 다시 돌립니다(dirty-flag라 정적 코퍼스에선 공짜). "내 노트에 어떤 스레드가 있나", "아직 종합 안 한 게 뭔가", "뭘 쓸까" 같은 질문에 사용.
  • update_signal_status(id, status), 노이즈를 dismiss해 다시 안 뜨게 하거나 snooze. Claude는 dismiss 전에 확인합니다.
  • list_inferences(status?) / get_inference(id), 저장된 가설을 읽습니다. 먼저 staleness를 재확인하므로, 바뀐 출처는 stale로 표시됩니다.
  • mint_inference(...), 가설을 저장합니다.

신뢰할 수 있게 하는 가드레일 두 가지:

  1. 추론은 pull-only, 절대 주입 안 됨. search_notes에서 제외되고 Claude 컨텍스트에 자동 로드되지 않습니다. Claude가 의도적으로 꺼내 와서 가설로 인용합니다 ([Inference #42, conf 0.78, from notes #1, #2]) 당신이 "아는 사실"처럼 제시하지 않습니다. 브레인이 자기 과거 추측을 사실로 되받아 메아리치는 걸 막습니다.
  2. 자동 mint 금지. mint_inferenceconfirmed: true를 요구하고, Claude는 당신이 명시적으로 승인할 때만 이를 설정합니다. 가설을 먼저 채팅에 제시하며, 백그라운드 mint는 지침이 아니라 코드 레벨에서 거부됩니다.

연결 시 서버 greeting에는 새 신호·stale 추론의 startup 개수만 포함됩니다(보라는 nudge), 내용은 절대 포함되지 않습니다.

Claude의 자동 동작

Claude는 다음을 수행하도록 설정되어 있습니다:

  • 항상 검색 먼저, 과거 대화, 결정, 프로젝트와 관련될 수 있는 질문에는 반드시 먼저 검색
  • 대화 종료 시 저장, 기술적 결정이 이루어졌거나, 중요한 인사이트가 생겼거나, "기억해"라고 말했을 때
  • 저장보다 수정 선호, 새 내용이 기존 노트에 속할 때는 새로 만들지 않고 수정