Mnemo Mcp

io.github.n24q02m由 GitHub 账号 n24q02m 发布v2.19.0更新于 Oct 12, 2026

Persistent AI memory with hybrid search and embedded sync. Open, free, unlimited.

已验证STDIO仅桌面数据库知识与记忆

概览

AI 生成的概览

本地优先的持久化 AI 记忆服务器,提供全文与向量混合检索、重排序以及带时间维度的知识图谱。

可以做什么
  • 新增、捕获、更新、删除、列出以及导出导入记忆,支持类型化上下文分类与重复提醒
  • 以全文加向量混合检索记忆,并结合重排序、时间衰减与重要性加权
  • 查询知识图谱:实体搜索、实体关系图、版本历史与指定时间点快照
  • 归档、恢复与合并记忆,并查看记忆统计
  • 查看和修改服务器设置、预下载嵌入模型、补齐缺失的嵌入向量
  • 以资源形式读取数据库统计,并通过提示词保存摘要或回忆某个主题
适用场景
适合希望助手在本机跨会话记住偏好、决策、事实与约定,并能按语义而非关键词回忆的场景。适用于偏好自托管 SQLite 存储、而非云端记忆服务的本地单用户环境。
运行要求
以本地进程方式运行 PyPI 包 n24q02m-mnemo,通常通过 uvx 或 uv 启动,默认在本机回环地址提供 Streamable HTTP 端点。用户主目录下的配置文件保存服务器认证与各任务的模型设置。可选的云端模型调用需要提供商 API 密钥,可写在配置文件中,或通过 API_KEYS / HULL_ _API_KEY 环境变量提供;本地 ONNX 嵌入无需密钥。
安装前请注意
注册表条目仍标注项目方称已不再支持的 stdio 包;服务器现在只支持 Streamable HTTP,安装前请确认传输方式。提供商 API 密钥属于机密,应只保存在主机侧配置或环境变量中。记忆工具会写入、修改和删除已存数据,导入操作可批量添加记录。使用令牌认证时,任何持有共享令牌的人都能读取同一命名空间。可选的云端模型调用会把记忆内容发送给所配置的提供商。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Mnemo Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Mnemo MCP Server

Distribution & CLI: the repo and CLI are mnemo. The PyPI distribution is n24q02m-mnemo (install pip install n24q02m-mnemo / uvx n24q02m-mnemo). The MCP server remains available: run mnemo (or legacy mnemo-mcp).

mcp-name: io.github.n24q02m/mnemo

Persistent AI memory with hybrid search. Open, free, unlimited.

[CI] [codecov] [PyPI] [License: Apache-2.0] [SafeSkill 91/100]

[Python] [SQLite] [MCP] [semantic-release] [Renovate]

Sister projects from n24q02m (click to expand)
ProjectTaglineTag
better-code-review-graphKnowledge graph for token-efficient code reviews -- semantic search and call-...MCP
better-drive2-way Google Drive sync with .driveignore filter — rclone engine, Windows trayTooling
better-email-mcpIMAP/SMTP email for AI agents -- read, send, organize folders, and manage att...MCP
better-godot-mcpComposite MCP server for Godot Engine -- 17 composite tools for AI-assisted g...MCP
better-notion-mcpMarkdown-first Notion for AI agents -- pages, databases, blocks, and comments...MCP
better-semantic-releaseDrop-in python-semantic-release fork with built-in release-safety guards (orp...Tooling
better-telegram-mcpTelegram for AI agents -- messages, chats, media, and contacts across both bo...MCP
better-workspace-mcpGoogle Workspace MCP server (Docs/Drive/Calendar/Gmail/Sheets/Slides/Tasks/Ch...MCP
claude-pluginsClaude Code plugin marketplace for the n24q02m MCP servers -- install web sea...Marketplace
imagine-mcpImage and video understanding + generation for AI agents -- across Gemini, Op...MCP
jules-task-archiverChrome Extension for bulk operations on Jules tasks via batchexecute API -- a...Tooling
mcp-coreShared foundation for building MCP servers -- Streamable HTTP transport, OAut...MCP
mnemoPersistent AI memory with hybrid search and embedded sync. Open, free, unlimi...MCP
fastretrievalMulti-model retrieval runtime for ONNX/GGUF embeddings and rerankingLibrary
skretSecrets without the server.CLI
tacetA self-distilling neuro-symbolic cascade that amortises LLM cost across knowl...Tooling
web-coreShared web infrastructure package for search, scraping, HTTP security, and st...Library
wet-mcpOpen-source MCP server for AI agents: web search, content extraction, and lib...MCP

Table of contents

[Mnemo MCP server]

Roadmap (current = Phase 3 / v2.x)

Phase rows below describe the pre-de-host design history (v1.x / early v2): multi-provider LLM dispatch, GDrive/S3 passport sync, and Cloudflare deployment were removed in the 2026-09 de-host. Current architecture: one local SQLite store (WAL), per-task [models.*] provider cells (OpenRouter pre-wired default), no embedded sync (backup = rclone).

PhaseVersionStatusHighlights
Phase 1v1.xShippedTyped memory(action="capture") (6 context_types + dedup) -- RRF (k=60) hybrid fusion + cross-encoder rerank + temporal decay -- importance x recency archive policy + restore -- Alembic migrations -- multi-provider LLM dispatch (pre-de-host) -- plugin trinity (recall-context + memory-commit skills, SessionStart + opt-in PostToolUse hooks)
Phase 2v1.x+1Shipped, partially removedLLM-driven compression of older memories (kept, now via [models.chat] cell) + Passport sync (encrypted import/export bundle; removed 2026-09)
Phase 3v2.0.0Shipped (BREAKING)Temporal knowledge graph -- bitemporal valid_from / valid_to columns -- entity resolution via embedding KNN -- entity_search / entity_graph / history actions -- KG_AUTO_ENABLED opt-in auto-extract on capture

Features

  • Hybrid retrieval -- FTS5 + vector search (sqlite-vec), fused via Reciprocal Rank Fusion (k=60), then re-ranked via the [models.rerank] provider cell (OpenRouter pre-wired default) with the local Fastretrieval Qwen3 cross-encoder as fallback, plus temporal decay and importance boost
  • Typed capture -- memory(action="capture") with 6 context_types (conversation/fact/preference/skill/task/decision), embedding-based dedup, and optional [models.chat]-cell compression + importance scoring
  • Knowledge graph -- Automatic entity extraction and relation tracking; top results boosted by graph proximity
  • Importance scoring + archive policy -- LLM-scored 0.0-1.0 importance; soft-archive when recency_factor * (1 - importance) > 1.0; restore action available
  • Auto-archive trigger -- Background sweep every Nth capture (default 100) -- no cron required
  • STM-to-LTM consolidation -- LLM summarization of related memories in a category
  • Duplicate detection -- Warns before adding semantically similar memories
  • Zero config -- Fastretrieval's built-in local registry resolves Qwen3 ONNX embedding + reranking, no API keys needed. Optional cloud calls go through per-task [models.<task>] provider cells (OpenAI-spec; OpenRouter pre-wired default)
  • Local-first storage -- one SQLite file (WAL) under ~/.mnemo/; backup and cross-machine migration = rclone outside the server (no embedded sync)
  • Plugin trinity -- Ships /recall-context + /memory-commit skills and SessionStart + opt-in PostToolUse hooks (see docs/ARCHITECTURE.md)
  • Proactive memory -- Tool descriptions and skills guide AI to save preferences, decisions, facts at the right moment
  • LLM compression -- Per-turn compression through the [models.chat] provider cell targets ~3x token reduction at >=0.9 fact retention; graceful skip when the cell is unconfigured (see docs/compression.md)
  • Temporal knowledge graph -- Bitemporal columns (valid_from / valid_to / superseded_by) on every memory + entity-resolution dedup (embedding KNN at default 0.85 cosine threshold) + audit trail (memory_audit table with prev/new state hashes) + new actions (entity_search / entity_graph / history / as_of) + opt-in KG_AUTO_ENABLED auto-extract on capture. BREAKING for clients that called memory.get expecting historical-inclusive results: pass as_of for time-travel; default now filters to current-state (valid_to IS NULL).

Quick install

bash
# Method 1: Claude Code plugin (skills + hooks; connects to a running# mnemo HTTP instance -- start one per "Self-hosting" below)/plugin marketplace add n24q02m/claude-plugins/plugin install mnemo@n24q02m-plugins
# Method 2: run the HTTP server yourself and register the endpointuvx n24q02m-mnemo                      # serves http://127.0.0.1:8000/mcp by defaultclaude mcp add --transport http mnemo http://127.0.0.1:8000/mcp
# Method 3 (remote): point a client at an existing HTTP deploymentclaude mcp add --transport http mnemo https://<your-host>/mcp

Install matrix (the server speaks Streamable HTTP only — there is no stdio transport post-de-host; see the Setup page for full steps):

ClientInstall
Claude Code (plugin)/plugin marketplace add n24q02m/claude-plugins then /plugin install mnemo@n24q02m-plugins (requires a running instance; see Self-hosting)
Claude Code (HTTP)start the server (uvx n24q02m-mnemo or docker compose), then claude mcp add --transport http mnemo http://127.0.0.1:8000/mcp
Codex / Gemini CLI / Cursor / Windsurfstart the server, then register the http://<host>:<port>/mcp HTTP endpoint in the client's MCP settings
Any MCP clientpoint it at the /mcp endpoint of a running instance (Streamable HTTP)

With auth = "token" or "multi" configured in mnemo-config/config.toml, send the token as a Bearer credential (--header "Authorization: Bearer <token>" or the client's equivalent).

Comparison vs. peers

FeaturemnemoMem0LettaOpenMemory
Hybrid retrieval (FTS + vec)yes (FTS5 + RRF + sqlite-vec)yespartialyes
Cross-encoder rerankyes (Fastretrieval Qwen3 local + [models.rerank] cell)partial (Cohere only)nono
Temporal decay scoringyes (exp half-life)nonono
Importance boost in rankyes (LLM 0.0-1.0)nonono
Soft-archive + restore policyyes (importance x recency)nonono
Self-hostable (single SQLite file)yes (zero ext deps)partial (cloud-first)yes (Postgres)yes (Postgres + Qdrant)
LLM dispatchyes ([models.chat] cell, any OpenAI-spec endpoint)partialyespartial
Plugin trinity (skills + hooks)yes (recall-context + memory-commit)n/an/an/a
Cross-machine migrationyes (rclone backup/restore outside the server)yes (cloud)n/an/a
LLM compression on captureyes ([models.chat] cell, ~3x at >=0.90 retention)nonono
Bitemporal valid_from / valid_to queriesyes (as_of time-travel)nopartial (events only)no
Entity resolution via embedding KNNyes (cosine threshold tunable)nonono
Audit trail with state hashesyes (memory_audit table)nonono

Status

2026-09 -- De-host update

The Cloudflare D1/Vectorize/KV deployment mode, embedded GDrive/S3 passport sync, multi-provider key dispatch (per-provider API-key env vars + model chains), and the stdio transport were removed. mnemo now runs one HTTP MCP endpoint on a local SQLite (WAL) store, and all cloud calls go through per-task [models.*] provider cells (OpenRouter pre-wired default). Backup across machines = rclone outside the server.

If you encountered issues with prior versions, update to the latest release and follow the current setup docs.

MCP registry note (2026-10): registry version 2.20.0 was published with a stdio PyPI package claim (uvx mnemo-mcp) that no longer reflects the product: post-de-host, mnemo speaks Streamable HTTP only — self-hosted, no public URL. Registry versions are immutable, so the stale stdio claim cannot be edited in place; the registry entry stays wrong until the owner de-lists it or republishes as 2.20.1. server.json in this repo now declares the package's true transport (streamable-http, default local endpoint), so the next publish carries correct metadata.

Related plugins from the same author:

All plugins share the same architecture -- install once, learn pattern transfers.

Documentation

Full docs at docs.n24q02m.com/servers/mnemo/setup/:

Install with AI agent -- paste this to your AI coding agent:

Install MCP server mnemo-mcp following the steps at https://raw.githubusercontent.com/n24q02m/claude-plugins/main/plugins/mnemo/setup-with-agent.md

Smithery

mnemo was previously packaged for Smithery via a local stdio start command. Post-de-host the server is HTTP-only, so the local smithery.yaml was removed; publish a running instance's https://<host>/mcp endpoint to Smithery as a remote server instead.

Tools

13 MCP tools, 18 memory actions. The memory surface is exposed as 11 specialized single-purpose tools, the deprecated legacy memory dispatcher (same actions), and config:

ToolActionsDescription
add_memory, search_memory, list_memories, update_memory, delete_memory, export_memories, import_memories, memory_stats, restore_memory, archived_memories, consolidate_memories(one action each)Specialized single-purpose memory tools -- the recommended surface
memory (legacy dispatcher, DEPRECATED -- use the granular tools above instead; will be removed in a future release)add, capture, search, list, as_of, update, delete, export, import, stats, restore, archived, archive_now, consolidate, compress, entity_search, entity_graph, historyCore CRUD + typed capture (6 context_types) + hybrid search (RRF + rerank + temporal decay) + import/export + soft-archive + restore + on-demand archive sweep + LLM consolidation + LLM compression + temporal KG (entity search / graph / history / as_of)
configstatus, set, warmup, backfill_embeddingsServer status, update runtime settings, pre-download embedding model, backfill missing embedding vectors

Plugin trinity (Claude Code marketplace install):

ComponentTriggerPurpose
mnemo:recall-context skillsession start, before significant decisions, "what do I know about X?"Pulls cwd / topic-relevant memories with context_type filtering
mnemo:memory-commit skill"remember this" / "save this" / "ghi nho" / "luu lai"Typed manual capture with context_type decision tree
mnemo:knowledge-audit skillperiodic / "audit memory"Find duplicates, contradictions, stale entries; consolidate
mnemo:session-handoff skillend of sessionCapture decisions / preferences / corrections / conventions / open questions
mnemo:temporal-query skill"as of" / "back in" / "history of" / "what did I think then"Point-in-time snapshots via action="as_of" and version-chain tracing via superseded_by
SessionStart hookevery session initNon-blocking nudge to invoke recall-context
PostToolUse hook (opt-in)CAPTURE_AUTO_ENABLED=trueHint memory-commit after Write/Edit of CLAUDE.md / AGENTS.md / ARCHITECTURE.md / docs/*.md

MCP Resources

URIDescription
mnemo://statsDatabase statistics and server status

MCP Prompts

PromptParametersDescription
save_summarysummaryGenerate prompt to save a conversation summary as memory
recall_contexttopicGenerate prompt to recall relevant memories about a topic

Security

  • Graceful fallbacks -- cloud provider cells degrade to local ONNX; an unconfigured cell never silently selects a paid provider
  • Host-only credentials -- provider keys live in the host-owned config.toml or HULL_<TASK>_API_KEY env vars; end users never see them
  • Auth-gated HTTP -- auth = "no-auth" refuses non-loopback binds; token / multi require credential checks
  • Error sanitization -- No credentials in error messages

Build from Source

bash
git clone https://github.com/n24q02m/mnemo.gitcd mnemouv syncuv run n24q02m-mnemo

CLI

The package ships two distinct console scripts:

  • mnemo -- CLI-first memory surface (primary for scripts/agents; it never starts a server): capture, recall, reflect, fetch, and the standing-* family operate directly on a SQLite memory DB. mnemo-pilot is a legacy alias of the same entry point.
  • n24q02m-mnemo (legacy alias mnemo-mcp) -- the MCP server plus one-shot operator subcommands. A bare invocation starts the HTTP server; a leading subcommand (config-init, warmup, token-hash, token-verify) runs an action and exits.

CLI-first memory surface (mnemo; every subcommand takes --db <path>, prints a JSON envelope, and exits with a taxonomy-mapped code):

bash
uvx --from n24q02m-mnemo mnemo recall --db ./mem.db "package naming" --k 3   # try without a persistent install
mnemo capture --db ./mem.db "keep PyPI name n24q02m-mnemo; repo is mnemo" --tags decision --category decisionmnemo recall --db ./mem.db "release ladder" --k 5        # search a subject's memoriesmnemo reflect --db ./mem.db "why keep the alias?" --k 5  # bounded cited reflect over retrievalmnemo fetch --db ./mem.db <memory_id>                    # fetch one memory by idmnemo standing-refresh --db ./mem.db onboarding "how do releases cut?" --k 5   # materialize a standing pagemnemo standing-read --db ./mem.db onboarding             # cheap read with staleness info

Server operator CLI (n24q02m-mnemo; a bare invocation starts the HTTP server):

bash
n24q02m-mnemo                       # start the Streamable HTTP MCP server                                # (bind host/port from config.toml or MNEMO_HOST/MNEMO_PORT)
n24q02m-mnemo config-init [--force] # write ~/.mnemo/config.toml from the templaten24q02m-mnemo warmup                # pre-download local embedding model / probe cellsn24q02m-mnemo token-hash            # print a scrypt$ hash for [server] token_hash                                # (reads MNEMO_AUTH_TOKEN or prompts)n24q02m-mnemo token-verify <token> <scrypt$...>   # verify a token against a hash
SubcommandPurpose
config-init [--force]Write the default instance config.toml (server auth + [models.*] provider cells)
warmupPre-download the Fastretrieval-managed local ONNX embedding model so first use works offline
token-hashMint a scrypt$ hash for [server] token_hash (shared-token auth)
token-verifyVerify a candidate token against a stored scrypt$ hash

Self-hosting (local HTTP instance)

Two ways to run the server for MCP clients on your machine.

Dev: start with uv (no-auth, loopback only)

bash
uv run n24q02m-mnemo               # binds 127.0.0.1:8000, auth = "no-auth" by default

no-auth refuses non-loopback binds, so this is localhost-only by construction — fine for trying the server locally. The MCP endpoint is http://127.0.0.1:8000/mcp. For a real config, bootstrap one and edit it:

bash
uv run n24q02m-mnemo config-init   # writes ~/.mnemo/config.toml from the template

Always-on: docker compose (token auth, loopback-published port)

docker-compose.http.yml is self-contained (builds the image, persists state in the mnemo-data volume) and publishes only on loopback:

bash
cp mnemo-config/config.example.toml mnemo-config/config.toml   # then edit:#   auth = "token"; set token_hash per the comments at the top of the exampledocker compose -f docker-compose.http.yml up --build -d# MCP endpoint: http://127.0.0.1:8771/mcp   (override the host port: MNEMO_PORT=9000 ...)

Token setup (also documented in the example config):

bash
python -c "import secrets; print(secrets.token_urlsafe(32))"     # 1. mint tokenMNEMO_AUTH_TOKEN=<token> uv run n24q02m-mnemo token-hash              # 2. print scrypt$ hash# 3. paste the hash into token_hash in mnemo-config/config.toml; give clients the token

For auth = "multi" (per-user namespaces) also mount users.toml — see the commented line in docker-compose.http.yml.

CLI consumer (no server needed)

The mnemo surface talks straight to the memory DB — handy for scripts and agents:

bash
mnemo capture --db ./mem.db "keep PyPI name n24q02m-mnemo; repo is mnemo" --tags decision --category decisionmnemo recall  --db ./mem.db "release ladder" --k 5mnemo fetch   --db ./mem.db <memory_id>

Every subcommand prints a JSON envelope and takes --db <path>. See CLI for the full surface (reflect, standing-*, …).

Pointing an MCP client at the instance

Register the HTTP endpoint (Streamable HTTP transport):

  • Claude Code: claude mcp add --transport http mnemo http://127.0.0.1:8771/mcp
  • Any OpenAI-spec MCP client: server URL http://127.0.0.1:8771/mcp; with auth = "token" send the shared token as the Bearer credential.

Config: local vs cloud, per task

Each task cell in mnemo-config/config.toml ([models.embed], rerank, chat, jev_score) is independent: base_url + api_key + model, OpenAI-spec HTTP. Mix freely — e.g. cloud OpenRouter for chat while embed/rerank point at a local OpenAI-spec server, or all cloud. Keys are host-only (end users never see them) and may alternatively come from the HULL_<TASK>_API_KEY env vars.

Remote (HTTP mode)

mnemo speaks Streamable HTTP on a single /mcp endpoint — remote access is a self-hosted instance on a reachable host, fronted by whatever TLS proxy you choose (the server itself binds plain HTTP). Auth is configured in mnemo-config/config.toml under [server]: auth = "token" (one shared Bearer token) or auth = "multi" (per-user tokens + namespaces via users.toml). auth = "no-auth" refuses non-loopback binds.

Public OCI image publication is discontinued. Existing historical registry tags remain untouched; new container deployments build from source (docker build --target http) or use docker-compose.http.yml.

Trust Model

mnemo is TC-Local (machine-bound): every storage artifact lives under ~/.mnemo/ owned by your OS user, and provider keys are host-only config (config.toml / HULL_<TASK>_API_KEY), never visible to MCP clients.

[server] authBind allowedStorageWho can read your data?
no-auth (default)loopback only (non-loopback bind refused)~/.mnemo/memories.db + config.tomlOnly your OS user
tokenanysame, one shared default namespaceAnyone holding the shared token
multianyper-namespace ~/.mnemo/subs/<ns>/memories.db (via users.toml)Each token holder sees only their own namespace

License

Apache-2.0 -- See LICENSE.

来源:README.md,提交 4256afb

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

17
  1. v2.19.0最新Oct 5, 2026
  2. v2.18.12Sep 30, 2026
  3. v2.18.11Sep 29, 2026
  4. v2.18.10Sep 28, 2026
  5. v2.18.9Sep 27, 2026
  6. v2.18.8Sep 27, 2026
  7. v2.18.6Sep 27, 2026
  8. v2.18.3Sep 27, 2026
  9. v2.18.2Sep 27, 2026
  10. v2.18.0Sep 26, 2026
  11. v2.16.1Sep 26, 2026
  12. v2.16.0Sep 22, 2026
  13. v2.15.16Sep 21, 2026
  14. v2.15.15Sep 21, 2026
  15. v2.15.13Sep 17, 2026
  16. v2.15.11Sep 17, 2026
  17. v2.15.7Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分