프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Nan Forget

제작자: NaNMesh버전 0.6.8i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.NaNMesh/nan-forget

설치

개요

제작자가 쓴 설명(영어 원문)

AI that remembers. Local-first cross-session, cross-project long-term memory for coding tools.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 검색 및 AI 기억
  • 입력해야 할 값: OPENAI_API_KEY

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: OPENAI_API_KEY, NAN_FORGET_EMBEDDING_PROVIDER, NAN_FORGET_USER_ID, NAN_FORGET_PROJECT_ROOT

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

  • npmNode.js 설치(npx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "nan-forget": {
      "command": "npx",
      "args": [
        "-y",
        "nan-forget"
      ],
      "env": {
        "OPENAI_API_KEY": "your-value",
        "NAN_FORGET_EMBEDDING_PROVIDER": "your-value",
        "NAN_FORGET_USER_ID": "your-value",
        "NAN_FORGET_PROJECT_ROOT": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add nan-forget --env OPENAI_API_KEY=your-value --env NAN_FORGET_EMBEDDING_PROVIDER=your-value --env NAN_FORGET_USER_ID=your-value --env NAN_FORGET_PROJECT_ROOT=your-value -- npx -y nan-forget

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "nan-forget": {
      "command": "npx",
      "args": [
        "-y",
        "nan-forget"
      ],
      "env": {
        "OPENAI_API_KEY": "your-value",
        "NAN_FORGET_EMBEDDING_PROVIDER": "your-value",
        "NAN_FORGET_USER_ID": "your-value",
        "NAN_FORGET_PROJECT_ROOT": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "nan-forget": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "nan-forget"
      ],
      "env": {
        "OPENAI_API_KEY": "your-value",
        "NAN_FORGET_EMBEDDING_PROVIDER": "your-value",
        "NAN_FORGET_USER_ID": "your-value",
        "NAN_FORGET_PROJECT_ROOT": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • OPENAI_API_KEY 비밀 env
    OpenAI API key for embeddings. If not set, falls back to local Ollama.
  • NAN_FORGET_EMBEDDING_PROVIDER env
    Embedding provider: openai or ollama
  • NAN_FORGET_USER_ID env
    User identifier for multi-user setups
  • NAN_FORGET_PROJECT_ROOT env
    Project root used for local memory file sync and cleanup

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 NaNMesh 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

검색 및 AI 기억 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 7264개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 7264개 중 8%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 7264개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Nan Forget, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: OPENAI_API_KEY

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.6.8)은 7개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Context7, Codebase Memory, Exa

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Context7

제작자: upstash

Up-to-date docs for AI agents

컴퓨터 또는 클라우드★ 64,224MIT어제 업데이트
설치

Codebase Memory

제작자: DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

내 컴퓨터에서 실행★ 48,148MIT20일 전 업데이트
설치

Exa

제작자: exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

클라우드에서 실행★ 5,213MIT지난달 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

NaN Forget

Long-term memory for AI coding tools.

Your AI forgets everything when the session ends. NaN Forget fixes that.


Install (3 steps)

npx nan-forget setup

That's it. The wizard installs Ollama, embeddings, Claude hooks, MCP config, and a project AGENTS.md for Codex-style agents. Restart Claude Code or reopen Codex. Your AI now remembers.

No API keys needed. No Docker needed. Runs locally. Free forever.


How It Works

flowchart LR

A["You talk to your AI tool"] --> B["It learns things"] B --> C["nan-forget saves to SQLite"] C --> D["Session ends"] D --> E["New session starts"] E --> F["nan-forget loads context"] F --> G["Your AI remembers"]

  1. You work normally. Your agent saves decisions, preferences, and facts to a local SQLite memory database as you go.
  2. Session ends. Memories persist in ~/.nan-forget/memories.db. Aging memories get automatically compacted into long-term entries.
  3. New session starts. nan-forget loads context from past sessions. Auth decisions from 3 months ago on Project A surface when you work on Project B today.

Automatic Memory Handling

You never call save or search manually. Here's what happens behind the scenes:

Claude Code (fully automatic)
EventWhat firesWhat happens
Session startsmemory_syncLightweight handshake — checks health, loads stats, lists projects. No heavy search.
You send a messageUserPromptSubmit hooknan-forget recall auto-searches memory for relevant context and injects it into the conversation.
You discuss a topicmemory_searchClaude searches the DB dynamically whenever relevant context might exist — like how you recall things on-demand.
Claude learns somethingmemory_saveClaude saves decisions, preferences, and facts immediately. Tool descriptions tell Claude "you MUST call this."
Claude writes a .md filePostToolUse hookmemory-sync.js intercepts the write, parses frontmatter, and auto-saves it to SQLite via nan-forget add.
Session endsSessionEnd hooksession-end.js scans the conversation transcript for unsaved decisions/facts and saves the top 5 to the DB.
Every 10 saves or 24hAuto-consolidateAging memories get clustered and compacted into long-term entries. Originals are archived.

Four layers of protection ensure nothing is lost:

  1. Auto-recall on every message (UserPromptSubmit hook)
  2. Claude saves proactively (directive tool descriptions)
  3. Hook catches .md writes (PostToolUse intercept)
  4. End-of-session sweep (SessionEnd transcript scan)
Codex, Cursor, and other tools

Codex and similar agents work well with nan-forget, but they usually need instruction files or shell/API fallbacks instead of Claude's hook model:

  1. Run setup: npx nan-forget setup
  2. Use the generated `AGENTS.md` in your repo. It tells Codex-style agents to sync, search, save, and checkpoint automatically.
  3. Use REST or CLI fallback during conversation. Agents can call the REST API on localhost:3456 or local commands like nan-forget sync, nan-forget search, nan-forget add, and nan-forget checkpoint.

The REST API and CLI now mirror the important memory workflows closely enough that memories saved by Claude are searchable from Codex and vice versa.

# Start the REST API

nan-forget api

The system prompt tells your agent exactly what endpoints to call

nan-forget prompt


Slash Commands

Type these in Claude Code:

CommandWhat it does
/nan-forgetLoad context from past sessions
/nan-forget statsShow memory health
/nan-forget cleanRun garbage collection
/nan-forget compactForce memory consolidation
/nan-forget healthCheck if services are running
/nan-forget startStart all services

Works with Any LLM

Claude uses MCP. Codex can use AGENTS.md plus CLI/REST fallback:

# Start the API

nan-forget api

Get the system prompt for your agent

nan-forget prompt

Codex, Cursor, and Claude all share the same memory database.

curl http://localhost:3456/memories/search?q=auth

curl -X POST http://localhost:3456/memories/sync -d '{"project":"my-app"}' curl -X POST http://localhost:3456/memories/checkpoint \ -H 'content-type: application/json' \ -d '{"task_summary":"Fixed auth regression","problem":"Expired tokens were not refreshed","solution":"Added refresh handling in middleware","files":["src/auth.ts"],"concepts":["auth","jwt"],"project":"my-app"}'


Quick Start (CLI)

nan-forget add "We use FastAPI, not Django. Railway deploys faster."

nan-forget add --type decision "Auth is Clerk, not custom JWT" nan-forget search "what auth system" nan-forget stats


Architecture (Expert Section)

Everything below is for developers who want to understand how nan-forget works under the hood.


The Problem

LLMs have no memory between sessions. Every conversation starts from zero. You re-explain your stack, Claude contradicts decisions from last month, and context disappears when the session ends.

Existing solutions (Mem0) target app developers embedding memory into products. We target you — the developer using AI tools daily who wants AI that just remembers.

Design: Brain-Inspired Two-Layer Memory

flowchart TB

subgraph Short["Short-Term Memory"] MD[".md files Current session context Disposable scratch paper"] end subgraph Long["Long-Term Memory"] DB["SQLite + sqlite-vec ~/.nan-forget/memories.db Semantic search + decay"] end subgraph Auto["Automatic Processes"] Hook["Hooks (3) PostToolUse: .md → DB UserPromptSubmit: auto-recall SessionEnd: transcript sweep"] Consolidate["Consolidation Engine Clusters + summarizes aging memories"] GC["Garbage Collection Decay, dedup, expiry"] end MD -->|"hook intercepts"| Hook Hook -->|"nan-forget add"| DB DB --> Consolidate Consolidate --> DB DB --> GC

Short-term memory = Claude's built-in .md files. Disposable. Current session only.

Long-term memory = SQLite database with sqlite-vec vector search. Single file. Permanent. Searchable across all sessions, all projects, all LLM tools.

Three hooks handle memory automatically:

  • PostToolUse intercepts .md file writes and saves them to the DB.
  • UserPromptSubmit runs nan-forget recall on every user message, auto-searching memory for relevant context.
  • SessionEnd scans the conversation transcript for unsaved decisions and saves the top 5.

Three-Stage Retrieval Pipeline

Memory search follows the same path as human recall:

flowchart LR

Q["Query"] --> S1["Stage 1: Recognition Fast vector match Returns summaries only"] S1 --> S2["Stage 2: Recall Full content fetch Cross-project expansion"] S2 --> S3["Stage 3: Association Spreading activation Related memories surface"] S3 --> R["Results ranked by similarity x decay x frequency x confidence"]

StageWhat happensCost
Recognition (blur)Prefetch 50 candidates, return top 5 summaries. Cheap.1 vector search
Recall (clarity)Fetch full content. Expand search cross-project (no project filter).N point lookups
AssociationCentroid-based related-memory search over sqlite-vec. Spreading activation from positive IDs.1 vector search

Scoring formula:

final_score = vector_similarity * decay_weight * frequency_boost * confidence_boost

decay_weight = (0.5 ^ (days / 30)) ^ (1 - confidence) frequency_boost = log2(access_count + 1) / 10 + 1 confidence_boost = 0.5 + 0.5 * confidence

High-confidence memories (debate-validated, human-approved) decay much slower and rank higher. A core memory at 0.85 confidence decays at ~15% of normal rate — effectively permanent unless superseded. Cross-project search means auth decisions from Project A surface when you work on Project B.

Consolidation Engine

Aging memories don't just get deleted — they get compacted into long-term entries:

flowchart TB

A["10+ aging memories about the same topic"] --> B["Cluster by project + type

  • vector similarity > 0.8"] B --> C{"OpenAI key

available?"} C -->|"Yes"| D["LLM summarizes cluster into 1-2 sentences"] C -->|"No"| E["Deterministic merge concatenate + deduplicate"] D --> F["Save consolidated entry with fresh vector embedding"] E --> F F --> G["Archive originals with backlink"]

Triggers automatically after every 10 saves or 24 hours. No user action needed.

13 MCP Tools

ToolPurpose
memory_syncLightweight session handshake: health check + stats + project list
memory_saveSave a memory (auto-called by Claude, proactively)
memory_searchSemantic search with 3-stage retrieval (depth 1-3)
memory_getFetch a specific memory by ID
memory_updateChange content, type, or tags
memory_archiveSoft-delete (hidden from search, never truly deleted)
memory_consolidateForce consolidation of aging memories
memory_cleanGarbage collection (decay, dedup, expiry, MEMORY.md sync)
memory_statsMemory health dashboard
memory_healthCheck if Ollama, REST API are running
memory_startBoot Ollama + REST API
memory_checkpointSave full problem→solution context after completing a task
memory_compressCompress persisted .md memory files to minimal stubs

Structured Memories

memory_save accepts structured fields for richer vector representation:

FieldTypePurpose
contentstringFull description (required)
typestringfact, decision, preference, task, context
projectstringProject name
problemstringWhat was the challenge
solutionstringHow it was solved
conceptsstring[]Searchable tags (["auth", "jwt", "middleware"])
filesstring[]Files involved (["src/auth.ts"])
confidencenumberTrust level 0.0–1.0 (default based on provenance)
provenancestringsave, checkpoint, debate, human
tierstringregular or core (auto-derived from provenance)

All fields are embedded together into a single vector. Searches for "JWT auth bug" find memories tagged with those concepts even if the content text doesn't match literally.

Memory Tiers

Not all memories are equal. Debate-validated and human-approved memories are core — they decay slower, rank higher in search, and survive garbage collection longer.

ProvenanceDefault ConfidenceAuto TierDecay Rate
save0.5regularNormal (30-day half-life)
checkpoint0.65regular~35% slower
debate0.85core~85% slower
human0.95core~95% slower

Core memories are designed for the upcoming nan-debate system — multi-AI debate results validated by human approval get persisted as high-trust knowledge that almost never fades.

Checkpoint Workflow

After completing a task, call memory_checkpoint with task_summary, problem, solution, files, concepts, and project. Saves the full problem→solution context to long-term memory. Every completed task = one checkpoint.

Memory Compression

memory_compress scans .claude/projects/*/memory/ for .md files already persisted to the DB. Persisted files are replaced with minimal stubs. Reduces context window bloat.

REST API (for non-MCP LLMs)

Shares the same SQLite database as the MCP server — memories saved by Claude are searchab

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기