Skip to main content
Glama
jee1
by jee1

๐Ÿง  Memento

๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด | ๐Ÿ‡บ๐Ÿ‡ธ English

License: MIT


LLM์€ ๋Œ€ํ™”๊ฐ€ ๋๋‚˜๋ฉด ๋ชจ๋“  ๊ฒƒ์„ ์žŠ์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„๋„, ๊ฒฐ์ •๋„, ์ง€๋‚œ์ฃผ์— ์Œ“์ธ ๋งฅ๋ฝ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋ธ์˜ ํ•œ๊ณ„๊ฐ€ ์•„๋‹ˆ๋ผ ๊ธฐ์–ต ์ธํ”„๋ผ์˜ ๋ถ€์žฌ์ž…๋‹ˆ๋‹ค.

Memento๋Š” ๊ทธ ์ธํ”„๋ผ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœ ์ €์žฅ์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ธฐ์–ต์ด ์ƒ์„ฑยท๋ถ„๋ฅ˜ยท๊ฐ•ํ™”ยท๋ง๊ฐ๋˜๋Š” MCP ๊ธฐ๋ฐ˜ ๊ธฐ์–ต ์šด์˜ ์ฒด์ œ์ž…๋‹ˆ๋‹ค.

์ž‘์—…๊ธฐ์–ตยท์ผํ™”๊ธฐ์–ตยท์˜๋ฏธ๊ธฐ์–ตยท์ ˆ์ฐจ๊ธฐ์–ต์€ remember์˜ type์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์“ฐ์ธ ๊ธฐ์–ต์€ ๊ฐ•ํ™”๋˜๊ณ , ์“ธ๋ชจ์—†์–ด์ง„ ๊ธฐ์–ต์€ ๋ง๊ฐ ์ •์ฑ…์œผ๋กœ ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋น„์Šทํ•œ ๊ธฐ์–ต์€ ๋ฒกํ„ฐ๋กœ ์—ฐ๊ฒฐ๋˜๋ฉฐ, ํ•ต์‹ฌ ๋งฅ๋ฝ์€ ์•ต์ปค๋กœ ๋‹ค์Œ ๋Œ€ํ™”์— ๋ฐ”๋กœ ๋ณต์›๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋…ธ๋ ˆํฌยทํŒจํ‚ค์ง€ ๊ตฌ์กฐยท๋นŒ๋“œ ๋ช…๋ น์€ AGENTS.md๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

๋น ๋ฅธ ์‹œ์ž‘

ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋Š” npm๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค (pnpm/yarn์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

์—ญํ• ์— ๋งž๋Š” ๊ธฐ๋ณธ ๊ฒฝ๋กœ ํ•˜๋‚˜๋งŒ ๊ณ ๋ฅด์„ธ์š”. Dockerยท์†Œ์Šค ํด๋ก ยท๋‹ค์ค‘ ์—์ด์ „ํŠธ HTTPยท์›ํด๋ฆญ ์Šคํฌ๋ฆฝํŠธ๋Š” INSTALL.md์— ์žˆ์Šต๋‹ˆ๋‹ค.

Claude Code โ†’ ํ”Œ๋Ÿฌ๊ทธ์ธ

/plugin marketplace add jee1/memento
/plugin install memento@memento

๊ธฐ์–ต DB๋Š” ${CLAUDE_PLUGIN_DATA}/memory.db์— ๋‘์–ด ํ”Œ๋Ÿฌ๊ทธ์ธ ์—…๋ฐ์ดํŠธ ํ›„์—๋„ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. /plugin ํŒจ๋„์—์„œ memento MCP๊ฐ€ ์—ฐ๊ฒฐ๋๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.

Cursorยท๊ธฐํƒ€ MCP โ†’ npx + mcp.json

npx memento-mcp-server@latest
{
  "mcpServers": {
    "memento": {
      "command": "npx",
      "args": ["memento-mcp-server@latest"],
      "env": {
        "DB_PATH": "/absolute/path/to/data/memory.db"
      }
    }
  }
}

์„ค์ • ํŒŒ์ผ ์œ„์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Cursor๋Š” .cursor/mcp.json ๋˜๋Š” ~/.cursor/mcp.json์ž…๋‹ˆ๋‹ค. Claude DesktopยทClaude Code๋Š” INSTALL.md์™€ Cursor MCP ์„ค์ • ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

์ž์ฃผ ์“ด๋‹ค๋ฉด npm i -g memento-mcp-server๋กœ ๊ธ€๋กœ๋ฒŒ ์„ค์น˜ํ•˜๋Š” ํŽธ์ด ๋‚ซ์Šต๋‹ˆ๋‹ค. ๊ณต์‹ MCP ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ด๋ฆ„์€ io.github.jee1/memento-mcp-server์ž…๋‹ˆ๋‹ค (server.json).

์šด์˜ยท์ž์ฒด ํ˜ธ์ŠคํŒ… โ†’ INSTALL.md

Docker, ์†Œ์Šค ๋นŒ๋“œ, HTTP MCP(๋‹ค์ค‘ ์—์ด์ „ํŠธ), ํ™˜๊ฒฝ ์˜ค๋ฒ„๋ ˆ์ด๋Š” INSTALL.md๋ฅผ ๋”ฐ๋ผ ์ฃผ์„ธ์š”.

Related MCP server: mcp-memory

๊ธฐ๋ณธ์œผ๋กœ ๋ณด์ด๋Š” ๋„๊ตฌ

์„œ๋ฒ„์—๋Š” ๋„๊ตฌ 22๊ฐœ๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ์ง€๋งŒ, tools/list์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ recall ยท remember ยท memory_injection ยท feedback 4๊ฐœ๋งŒ ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค(v1.18+). ๋‚˜๋จธ์ง€๋Š” ๋“ฑ๋ก๋œ ์ฑ„ ํ˜ธ์ถœ์€ ๊ฐ€๋Šฅํ•˜๊ณ , ๋ชฉ๋ก์—์„œ๋งŒ ๋น ์ง‘๋‹ˆ๋‹ค. ์ „๋ถ€ ๋‚˜์—ดํ•˜๋ ค๋ฉด MEMENTO_TOOLSET=full์„ ์„ค์ •ํ•˜์„ธ์š”.

์‚ฌ์šฉ ์˜ˆ์‹œ

await client.callTool({
  name: "remember",
  arguments: {
    content: "์‚ฌ์šฉ์ž๋Š” React Hook์„ ํ•™์Šตํ–ˆ์Šต๋‹ˆ๋‹ค. useState๋Š” ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , useEffect๋Š” ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.",
    type: "episodic",
    tags: ["react", "hooks", "javascript"],
    importance: 0.8
  }
});

const results = await client.callTool({
  name: "recall",
  arguments: {
    query: "React Hook์€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋‚˜์š”?",
    limit: 5
  }
});

๋” ๋งŽ์€ ์—ฐ๊ฒฐ ๋ฐฉ์‹(MCP SDK, @jee1/memento-client, ์™ธ๋ถ€ ๋น„์„œ SDK)์€ docs/README.md์™€ docs/integrations/๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  • 4์ข… ๊ธฐ์–ต: working ยท episodic ยท semantic ยท procedural

  • ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰: FTS5 + ๋ฒกํ„ฐ, ํƒœ๊ทธ ํ•„ํ„ฐ

  • ์‚ด์•„์žˆ๋Š” ๊ธฐ์–ต: ๊ฐ•ํ™”ยท๋ง๊ฐยท์ด์›ƒ ํƒ์ƒ‰ยท์•ต์ปค

  • ์ ˆ์ฐจ ๋ฒ„์ „: procedural_diff / procedural_rollback

  • ๊ทธ๋ž˜ํ”„ยท๋Œ€์‹œ๋ณด๋“œ: HTTP ์„œ๋ฒ„ ๊ธฐ๋™ ํ›„ ์ „์ฒด ๊ด€๋ฆฌ ํ๋ฆ„์€ /dashboard์—์„œ ์—ฌ๋Š” ํŽธ์ด ๊ฐ€์žฅ ์•ˆ์ „ํ•˜๋ฉฐ, /graph๋ฅผ ์ง์ ‘ ์—ด์–ด๋„ ๋™์ผํ•œ /auth/session ๊ธฐ๋ฐ˜ ์žฌ์ธ์ฆ ํŒจ๋„๋กœ ์„ธ์…˜์„ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ง๊ฐ TTLยท์ž„๋ฒ ๋”ฉยท๋ณด์•ˆ ๋“ฑ ์„ค์ •๊ฐ’์€ README์— ์ˆซ์ž๋ฅผ ๋‘์ง€ ์•Š์Šต๋‹ˆ๋‹ค. env.example๊ฐ€ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.

HTTP ๋ณด์•ˆ (๊ด€๋ฆฌ ์„œ๋ฒ„)

HTTP ์„œ๋ฒ„๋Š” ๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜๊ณผ ํ—ค๋” ๊ธฐ๋ฐ˜ ์‹ ๋ขฐ ๊ฒฝ๊ณ„๋ฅผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. /auth/session์€ ์ฟ ํ‚ค ๊ธฐ๋ฐ˜ ๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜์„ ์‹œ์ž‘ํ•˜๊ณ , /admin๊ณผ /api๋Š” ๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜์ด ํ•„์š”ํ•˜๋ฉฐ, /api/v1/quality, /api/v1/maintenance, /tools, /mcp๋Š” Authorization: Bearer ๋˜๋Š” X-API-Key๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ: docs/reference/ko/security.md.

HTTP ์ „์šฉ (MCP์— ์—†์Œ): restore_anchors, migrate_embeddings, convert_episodic_to_semantic, get_meta_memory_stats โ€” HTTP ๊ด€๋ฆฌ API ์ฐธ์กฐ.

๐Ÿง  ํ•ต์‹ฌ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ (MCP ํด๋ผ์ด์–ธํŠธ)

์ฐธ๊ณ : ๋„๊ตฌ 22๊ฐœ๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ๊ณ , tools/list๋Š” ๊ธฐ๋ณธ 4๊ฐœ๋งŒ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค(MEMENTO_TOOLSET=full๋กœ ์ „์ฒด). ์šด์˜ยท๊ด€๋ฆฌ ๊ธฐ๋Šฅ์€ HTTP API๋กœ๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ

๋กœ๋“œ๋งต (์š”์•ฝ)

  • M1 ๊ฐœ์ธ์šฉ (ํ˜„์žฌ): ๋กœ์ปฌ SQLite, MCP + HTTP ๊ด€๋ฆฌ API. ์ธ์ฆ: ๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜ + ํ—ค๋” ๊ธฐ๋ฐ˜ ๋ถ„๋ฆฌ ์‹ ๋ขฐ ๋ชจ๋ธ(/auth/session ์ฟ ํ‚ค ์„ธ์…˜, /adminยท/api ๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜ ์š”๊ตฌ, /toolsยท/mcp๋Š” Bearer/API-Key ์š”๊ตฌ).

  • M2 ํŒ€ (๊ณ„ํš): ๊ณต์œ  ๋ฐฑ์—”๋“œ, API Key, Docker

  • M3 ์กฐ์ง (๊ณ„ํš): PostgreSQL + pgvector, JWT

๊ธฐ์—ฌ ยท ๋ผ์ด์„ ์Šค ยท ์ง€์›

๊ธฐ์—ฌ๋Š” CONTRIBUTING.md๋ฅผ ๋”ฐ๋ผ ์ฃผ์„ธ์š”. ๋ผ์ด์„ ์Šค๋Š” MIT์ž…๋‹ˆ๋‹ค.

Related MCP Connectors

Related MCP Servers