๐Ÿš€ Offline ยท Protokol MCP ยท Tanpa API

mcp-rag-memory

Memori jangka panjang untuk AI kamu ๐Ÿง 
RAG + manajemen konteks โ€” offline penuh, tanpa API key!
Nodejs
TS TypeScript
SQL SQLite
18 Tools
Bisa offline

๐ŸฆธSiapa bosnya?

The Coder โ€” "I'm The Coder, Selamat datang dan Semoga perjalanan mu menyenangkan"

Disimpan sebagai memori importance-1.0, tag identity โ€” tiap sesi menyapa The Coder lebih dulu ๐Ÿ‘‹

โœจFungsi utama

๐Ÿง 
Memori Konteks

Ingat fakta, keputusan, preferensi. Panggil lagi kapan saja. Rating pentingnya, satukan yang dobel!

๐Ÿ“š
RAG Dokumen

Kasih dokumen โ†’ dipecah & di-embed & disimpan di SQLite โ†’ tanya apa saja, dapat bagian yang tepat.

โšก
Tanpa API

Embedder hash lokal 1024-dim, node:sqlite bawaan. Tanpa cloud, tanpa key, tanpa tagihan ๐Ÿ’ธ

๐Ÿ”Ž
Cari Hybrid

BM25 (FTS5) + vektor digabung pakai RRF. Presisi kata kunci, paham makna โ€” dua-duanya!

๐Ÿ”Œ
MCP Universal

Mendukung opencode, Claude Desktop, Cursor, VS Code โ€” satu memori untuk semua teman MCP.

๐Ÿ›ก๏ธ
Input Aman

File gede ditolak (RAG_MAX_FILE_MB), path bisa di-batasi (RAG_ALLOWED_DIRS), dokumen dobel dideteksi.

โšกMulai cepat

3 perintah mudah, langsung jalan! ๐ŸŽฉ
npm install
npm test                 # 92 cek: unit + round-trip MCP
npm run build            # kompilasi ke dist/
npm run cli -- stats     # playground CLI
npx mcp-rag-memory       # langsung jalan dari npm

๐ŸŒSatu memori, semua agent

โšก
opencode

Config MCP global โ€” ingat kamu di semua project.

๐ŸŸฃ
Claude Desktop

claude_desktop_config.json โ†’ mcpServers.

๐Ÿ”ต
Cursor / Windsurf

Settings โ†’ MCP โ†’ Add server. Trik yang sama jalan!

๐ŸŸฆ
VS Code

.vscode/mcp.json dengan "type": "stdio".

๐Ÿงฉ Tips: perintah sama di mana saja โ€” npx mcp-rag-memory setelah `npm install -g` / publish, atau node --import tsx <path>/src/mcp/rag-server.ts buat dev lokal. Ingat sekali, panggil di mana saja!

๐Ÿงฐ18 Tools MCP

GrupToolFungsi
Sistemsystem_statsLokasi DB, backend embedding, jumlah dok/memori
RAG Inputrag_ingest_textSimpan teks mentah (deteksi dobel otomatis)
rag_ingest_fileSimpan sebuah file
rag_ingest_dirInput satu folder penuh!
RAG Carirag_searchCari hybrid (BM25 + vektor), chunk terurut
rag_retrieveBlok konteks siap-suntik
RAG Dokumenrag_list_documentsInventaris dokumen
rag_delete_documentHapus dokumen + chunk
Memorimemory_rememberSimpan memori jangka panjang
memory_recallCari memori semantik
memory_contextBlok ringkas untuk prompt
memory_list/get/update/forgetCRUD lengkap
memory_consolidateDedupe + promosi memori panas
memory_statsJumlah, token, rata-rata penting

๐Ÿ—๏ธArsitektur

database.ts
node:sqlite โ€” dok, chunk, memori, chunks_fts, meta
embedder.ts
Hash lokal 1024-dim (FNV-1a + n-gram)
embeddings.ts
Lapisan provider: local | transformers (opsional)
chunker.ts
Chunking sadar paragraf/kode + overlap
vector-search.ts
Cache vektor + FTS5 BM25 + gabung RRF
pipeline.ts
Ingest async / dedup / guard / kelola dok
memory.ts
Remember / recall (decay) / consolidate / prune
rag-server.ts
Server MCP โ€” 18 tools, transport stdio

๐Ÿช Data tersimpan di .rag-data/rag.sqlite (di-gitignore, memori tidak pernah ter-push!)

๐ŸŽ›๏ธKonfigurasi

๐Ÿ”ฅ opencode (global)

{
  "mcp": {
    "rag-memory": {
      "type": "local",
      "command": ["node", "--import", "tsx", "src/mcp/rag-server.ts"],
      "cwd": "D:/Project/mcp-server",
      "environment": { "RAG_DB_DIR": "D:/Project/mcp-server/.rag-data" }
    }
  }
}

๐ŸŸฃ Claude Desktop

{
  "mcpServers": {
    "rag-memory": {
      "command": "node",
      "args": ["--import", "tsx", "D:/Project/mcp-server/src/mcp/rag-server.ts"],
      "env": { "RAG_DB_DIR": "D:/Project/mcp-server/.rag-data" }
    }
  }
}

๐Ÿ”ง Variabel lingkungan penting

VariabelDefaultGuna
RAG_DB_DIR.rag-dataLokasi penyimpanan SQLite
SEARCH_MODEhybridhybrid | vector | keyword
EMBEDDING_PROVIDERlocallocal (tanpa deps) | transformers
RAG_MAX_FILE_MB10Batas ukuran file yang boleh di-ingest
RAG_ALLOWED_DIRS(bebas)Daftar folder yang diizinkan: ; | ,
RAG_PRUNE01 = konsolidasi boleh hapus memori basi

๐ŸŽฌAlurnya

1
Simpan

rag_ingest_*
memory_remember

2
Panggil

memory_context
rag_retrieve

3
Eksekusi

Suntik konteks โ†’ biar AI kamu makin cemerlang โœจ