From mnemo-mcp
Captures user-specified preceding context into typed persistent memory (decision, preference, fact, skill, task, conversation) with rationale when they say 'remember this', 'save this', etc.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mnemo-mcp:memory-commit [context_type or auto][context_type or auto]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manual capture of a single decision, preference, fact, skill, task, or
Manual capture of a single decision, preference, fact, skill, task, or
conversation snippet into mnemo. Enforces the "WHY not just WHAT" rule
and chooses the correct context_type so retrieval is precise.
Trigger on explicit user signals:
Do NOT trigger on incidental mentions or speculative options not yet chosen.
Identify the content the user wants to remember:
Determine context_type via this decision tree:
| Signal | context_type |
|---|---|
| "we decided", "we picked X over Y", "going with" | decision |
| "I prefer", "I always want", "default to" | preference |
| "X is at version Y", env vars, API shapes, file locations | fact |
| "to do X you run Y then Z", procedure, how-to | skill |
| "todo", "remember to", deadline, "by Friday" | task |
| none of the above (general context) | conversation |
When ambiguous, ask the user one short question. Do not silently
default to conversation for high-signal content.
Compose the capture text with WHY included:
Capture via the typed action:
memory(action="capture",
text="<composed text>",
context_type="<chosen type>",
category="<project-name or topic>",
tags=["<topic>", "<scope>"])
Confirm to the user:
Saved as <context_type>. Memory ID: <id>.
(Deduplicated against existing similar memory: <existing_id>.) # if applicable
If the response includes deduplicated: true, surface the existing
memory ID so the user can decide whether to update it instead.
Verify retrieval for high-stakes captures (decisions, corrections):
memory(action="search", query="<the keywords a future agent would use>", limit=3)
If the just-captured memory does not appear in top-3 results, rewrite with better keywords and re-capture (delete the original first).
User: "Remember that we always use ruff format, not black."
memory(action="capture",
text="Use ruff format (not black) for Python formatting because ruff is the project standard - faster, single-binary, and configured in pyproject.toml.",
context_type="preference",
category="tooling",
tags=["python", "formatting"])
User: "Ghi nho: deploy len VM dung make up-, khong dung docker compose truc tiep."
memory(action="capture",
text="VM deployment: dung make up-<service> / make down-<service> de inject secrets tu skret SSM qua RUN macro. KHONG chay docker compose truc tiep tren VM (mat secret injection).",
context_type="skill",
category="deployment",
tags=["vm", "make", "skret"])
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub n24q02m/mnemo-mcp