memory-mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited memory-mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Give your AI assistant a second brain that persists across sessions.
| Tier | Latency | How it works |
|---|---|---|
| Hot Cache | 0ms | Auto-injected into context before Claude thinks |
| Cold Storage | ~50ms | Semantic search via recall() tool call |
The system learns what you use and automatically promotes frequently-accessed memories to the hot cache.
remember("FastAPI with async endpoints for all APIs", memory_type="project", tags=["tech-stack"])recall("what framework for backend") # Finds FastAPI memoryhot_cache_status() # See what's instantly available| Tool | Purpose |
|---|---|
remember(content, memory_type, tags) | Store new memory |
recall(query, mode, limit) | Semantic search |
recall_by_tag(tag) | Find by tag |
forget(memory_id) | Delete memory |
list_memories(limit, offset) | Browse all |
Memory types: project, pattern, reference, episodic, conversation
Recall modes: precision (few, high-confidence), balanced (default), exploratory (many results)
| Tool | Purpose |
|---|---|
promote(memory_id) | Add to hot cache |
demote(memory_id) | Remove from hot cache |
pin(memory_id) | Prevent auto-eviction |
unpin(memory_id) | Allow auto-eviction |
hot_cache_status() | View hot cache contents |
| Tool | Purpose |
|---|---|
link_memories(from_id, to_id, relation) | Connect memories |
unlink_memories(from_id, to_id) | Remove connection |
get_related_memories(memory_id) | Find connected |
relationship_stats() | Graph overview |
Relation types: relates_to, depends_on, supersedes, refines, contradicts, elaborates
| Tool | Purpose |
|---|---|
validate_memory(id, reason) | Increase trust |
invalidate_memory(id, reason) | Decrease trust |
get_trust_history(memory_id) | View changes |
| Tool | Purpose |
|---|---|
get_sessions() | List sessions |
summarize_session(session_id) | Structured summary |
end_session(session_id) | Promote top memories |
| Tool | Purpose |
|---|---|
mining_status() | View mining stats |
review_candidates() | See patterns found |
approve_candidate(id) | Promote to memory |
reject_candidate(id) | Discard pattern |
| Tool | Purpose |
|---|---|
memory_stats() | Overview stats |
db_info() | Database details |
run_cleanup() | Clean stale data |
preview_consolidation() | Find duplicates |
These are auto-injected into Claude's context:
| Resource | Contents |
|---|---|
memory://hot-cache | All promoted memories |
memory://working-set | Session-aware context (~10 items) |
memory://project-context | Current project memories |
Memories are auto-promoted to hot cache when:
Memories are auto-demoted after 14 days without access.
# Bootstrap from project docs (CLAUDE.md, README.md, etc.)
bootstrap_project(promote_to_hot=true)# Store decisions and patterns as you work
remember("Decided to use PostgreSQL for main DB", memory_type="project", tags=["decision", "database"])
# Recall when needed
recall("database decision")# Review what you learned
summarize_session(session_id)
# Promote valuable memories to long-term storage
end_session(session_id, promote_top=true)# Connect related concepts
link_memories(postgres_id, pgvector_id, "depends_on")
# Recall with graph expansion
recall("PostgreSQL", expand_relations=true)decision, convention, tech-stack, gotchahot_cache_status() shows what's instantly available~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.