io.github.michael-denyer/hot-memory-mcp
PYPI · HOT-MEMORY-MCP
Two-tier memory: hot cache (0ms) + semantic search. Self-organizing.
Available components
Last scanned (3 hours ago)
Scores higher than 62% of PyPI servers
Category Memory and Knowledge
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security49
- Malware scan not yet available for this package.Unverified
- Known CVEs were checked across the 107 of 108 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
- Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- Dependency health was assessed across the 107 of 108 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to michael-denyer/memory-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 126 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability83
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 4902 tokens (~83/item across 59 items; 56 tools + 3 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management3
- Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "forget" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 57 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- 4 Nov 26 +32
- Injection markers: unverified → pass ▲ security
- First check of Judged manipulation: pass security
- Tool coverage: unverified → 100 ▲ functional
- Stability: unverified → 0.00 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → 100 ▲ functional
- First check of Schema quality: fail functional
- First check of Destructive annotations: 0 functional
- First check of Schema quality: pass functional
- First check of Schema quality: good functional
- First check of Tool coverage: 100 functional
- First check of Tool coverage: 100 functional
- 30 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 27 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- 26 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 13 Oct 26 +11
- Known CVEs: unverified → partial ▲ security
- Dependency health: unverified → partial ▲ functional
- 12 Oct 26 −11
- Known CVEs: partial → unverified ▼ security
- Dependency health: partial → unverified ▼ functional
- 3 Oct 26 −10
- Malware scan: pass → unverified ▼ security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed pypi/hot-memory-mcp@0.8.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | michael-denyer/memory-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/michael-denyer/memory-mcp/.github/workflows/publish.yml@refs/tags/v0.8.0 |
| Rekor log index | 2043462112 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:f1d2585d4c3316d06f94bf8f369f645d2c8306f0f24a81fa82cfa1179cf97a03 |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 107 packages
| Packages resolved | 107 |
|---|---|
| Stale | 5 |
| No linked repository | 1 |
| Tree resolution | Partial |
The dependency tree was only partially resolved, so these counts may be incomplete.
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
access_patterns ~87
Get learned access patterns for predictive caching. When memory_id is provided, shows patterns from that specific memory. Otherwise, shows all learned patterns across all memories. Requires MEMORY_MCP_PREDICTIVE_CACHE_ENABLED=true.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum patterns to return |
| memory_id | – | – | Memory ID to get patterns for |
| min_count | integer | – | Minimum access count to include |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
approve_candidate ~59
Approve a mined pattern, storing it as a memory and optionally promoting to hot cache.
| Name | Type | Req | Description |
|---|---|---|---|
| memory_type | string | – | Type to assign |
| pattern_id | integer | yes | ID of mined pattern to approve |
| tags | – | – | Tags to assign |
Structured output declared, but exposes no named fields.
No examples provided.
audit_history ~118
Get recent audit log entries for destructive operations. Shows history of operations like delete_memory, demote, maintenance, unlink_memories, etc. Useful for understanding what changed and when.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum entries to return (default 50, max 500). |
| operation | – | – | Filter by operation type (e.g., "delete_memory", "demote_memory"). Available types: delete_memory, demote_memory, demote_stale, delete_pattern, expire_patterns, cleanup_memories, mainte… |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | – |
| entries | array | yes | – |
No examples provided.
bootstrap_project ~237
Bootstrap hot cache from project documentation files. Scans for common project documentation files (README.md, CLAUDE.md, etc.), parses them into memories, and optionally promotes to hot cache. This is ideal for quickly populating the hot cache when starting work on a new codebase. Edge cases handled gracefully: - Empty repo: Returns success with files_found=0 and helpful message - No markdown files: Returns success with message - File read errors: Logged in errors list, continues with other files - Empty files: Skipped silently - Binary files: Skipped with warning - All content already exists: Returns memories_skipped count
| Name | Type | Req | Description |
|---|---|---|---|
| file_patterns | – | – | Specific files to seed. If not provided, auto-detects: CLAUDE.md, README.md, CONTRIBUTING.md, ARCHITECTURE.md |
| memory_type | string | – | Memory type for all content |
| promote_to_hot | boolean | – | Promote all bootstrapped memories to hot cache |
| root_path | string | – | Project root directory (default: current directory) |
| tags | – | – | Tags to apply to all memories |
| Name | Type | Req | Description |
|---|---|---|---|
| errors | array | – | – |
| files_found | integer | – | – |
| files_processed | integer | – | – |
| hot_cache_promoted | integer | – | – |
| memories_created | integer | – | – |
| memories_skipped | integer | – | – |
| message | string | – | – |
| success | boolean | yes | – |
No examples provided.
bulk_reject_candidates ~89
Bulk reject multiple mining candidates at once. Provide either pattern_ids (list of specific IDs) OR pattern_type_prefix (e.g., 'entity_' to reject all entity extractions).
| Name | Type | Req | Description |
|---|---|---|---|
| pattern_ids | – | – | List of pattern IDs to reject |
| pattern_type_prefix | – | – | Reject patterns whose type starts with this prefix (e.g., 'entity_' matches entity_misc, entity_person, entity_org) |
Structured output declared, but exposes no named fields.
No examples provided.
cross_session_patterns ~71
Find content patterns appearing across multiple conversation sessions. Useful for identifying frequently-discussed topics that might warrant promotion to hot cache. Patterns appearing in many sessions are likely important project knowledge. Returns patterns sorted by session count and total accesses.
| Name | Type | Req | Description |
|---|---|---|---|
| min_sessions | integer | – | Minimum sessions a pattern must appear in |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
db_info ~17
Get database information including schema version and size.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
db_maintenance ~52
Run database maintenance (vacuum, analyze, auto-demote stale). Compacts the database to reclaim unused space, updates query planner statistics, and demotes stale hot memories (if auto_demote is enabled).
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_demoted_count | integer | – | – |
| auto_demoted_ids | array | – | – |
| bytes_reclaimed | integer | yes | – |
| memory_count | integer | yes | – |
| schema_version | integer | yes | – |
| size_after_bytes | integer | yes | – |
| size_before_bytes | integer | yes | – |
| vector_count | integer | yes | – |
No examples provided.
db_rebuild_vectors ~114
Rebuild all memory vectors with the current embedding model. Use this when: - Switching to a different embedding model - Fixing dimension mismatch errors - Recovering from corrupted vector data This operation: 1. Clears all existing vectors (memories are preserved) 2. Re-embeds every memory with the current model 3. Updates stored model info Warning: This can take time for large databases. Progress is logged.
| Name | Type | Req | Description |
|---|---|---|---|
| batch_size | integer | – | Memories to embed per batch (default 100) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
demote ~37
Remove a memory from hot cache (keeps in cold storage).
| Name | Type | Req | Description |
|---|---|---|---|
| memory_id | integer | yes | ID of memory to remove from hot cache |
Structured output declared, but exposes no named fields.
No examples provided.
embedding_info ~15
Get embedding provider and cache information.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
end_session ~149
End a session and consolidate episodic memories. Mirrors human memory consolidation: short-term (episodic) memories that prove valuable get promoted to long-term (semantic) storage. Top episodic memories are selected by salience score (combining importance, trust, access count, and recency). Only memories above the threshold are promoted. Use this at the end of a conversation to preserve valuable learnings.
| Name | Type | Req | Description |
|---|---|---|---|
| promote_top | boolean | – | Promote top episodic memories to long-term storage (default: true) |
| promote_type | – | – | Memory type for promoted memories: 'project' or 'pattern' (default: project) |
| session_id | string | yes | Session ID to end |
Structured output declared, but exposes no named fields.
No examples provided.
find_contradictions ~105
Find memories that may contradict a given memory. Searches for semantically similar memories that could contain conflicting information. High similarity means same topic area, which is where contradictions are likely. Use this after storing a new memory or when validating existing ones.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum contradictions to return |
| memory_id | integer | yes | Memory ID to check for contradictions |
| similarity_threshold | number | – | Minimum similarity to consider (0.75 = same topic) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
forget ~25
Delete a memory permanently.
| Name | Type | Req | Description |
|---|---|---|---|
| memory_id | integer | yes | ID of memory to delete |
Structured output declared, but exposes no named fields.
No examples provided.
get_contradictions ~39
Get all memory pairs marked as contradictions. Returns pairs that have been flagged as containing conflicting information. Use resolve_contradiction to handle these.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
get_related_memories ~95
Get memories related to a given memory. Returns related memories along with their relationship information. Use this to explore the knowledge graph around a specific concept.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | – | Direction: 'outgoing' (from this memory), 'incoming' (to this memory), or 'both' (default) |
| memory_id | integer | yes | Memory ID to find relationships for |
| relation_type | – | – | Filter by relation type |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
get_session ~27
Get details for a specific session.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | string | yes | Session ID to retrieve |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
get_session_memories ~56
Get all memories from a specific conversation session. Use this to explore what was learned during a particular conversation.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum memories to return |
| session_id | string | yes | Session ID to get memories from |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
get_sessions ~57
Get recent conversation sessions. Sessions track which conversations memories originated from. Use this to see conversation history and navigate to specific sessions.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum sessions to return |
| project_path | – | – | Filter to sessions from this project path |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
get_trust_history ~76
Get the trust adjustment history for a memory. Shows all trust changes with reasons, timestamps, and context. Useful for understanding why a memory's trust score evolved.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of history entries to return (default 20) |
| memory_id | integer | yes | ID of memory to get trust history for |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
hot_cache_status ~120
Show current hot cache contents, stats, and observability metrics. Returns items sorted by hot_score (highest first), along with: - metrics.hits: Times hot cache resource was read with content - metrics.misses: Times hot cache resource was empty - metrics.evictions: Items removed to make space for new ones - metrics.promotions: Items added to hot cache - effectiveness: Value metrics (hit rate, tool calls saved, most/least used) - avg_hot_score: Average hot score of items (for LRU ranking)
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| avg_hot_score | number | yes | – |
| current_count | integer | yes | – |
| effectiveness | object | yes | Effectiveness metrics showing hot cache value. |
| items | array | yes | – |
| max_items | integer | yes | – |
| metrics | object | yes | Metrics for hot cache observability. |
| pinned_count | integer | yes | – |
No examples provided.
invalidate_memory ~278
Mark a memory as incorrect or outdated. Decreases the memory's trust score and records the reason in the trust history. Use this when you discover that a recalled memory contains inaccurate or outdated information. Reasons and their default penalties: - outdated: -0.10 (information is stale but was once correct) - partially_incorrect: -0.15 (some details are wrong) - factually_wrong: -0.30 (fundamentally incorrect) - superseded: -0.05 (replaced by newer information) - low_utility: -0.05 (not useful in practice) Trust score is floored at 0.0. Memories with very low trust will rank lower in recall results due to trust-weighted scoring.
| Name | Type | Req | Description |
|---|---|---|---|
| memory_id | integer | yes | ID of memory found to be incorrect/outdated |
| note | – | – | Optional note explaining the invalidation context |
| penalty | – | – | Custom trust penalty (overrides reason default). If None, uses reason's default. |
| reason | – | – | Reason for invalidation: 'outdated' (info is stale), 'partially_incorrect' (some details wrong), 'factually_wrong' (fundamentally incorrect), 'superseded' (replaced by newer info), 'low_utility' (not… |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
link_memories ~208
Create a typed relationship between two memories. Use this to build a knowledge graph connecting related concepts. Relationships are directional: from_memory -[relation_type]-> to_memory. Examples: - "Python 3.12 features" -[supersedes]-> "Python 3.11 features" - "Auth implementation" -[depends_on]-> "Database schema" - "API endpoint details" -[elaborates]-> "API overview" - "Project notes" -[mentions]-> "PostgreSQL" (entity extraction)
| Name | Type | Req | Description |
|---|---|---|---|
| from_memory_id | integer | yes | Source memory ID |
| relation_type | string | yes | Relationship type: 'relates_to' (general), 'depends_on' (prerequisite), 'supersedes' (replaces), 'refines' (more specific), 'contradicts' (conflict), 'elaborates' (more detail), 'mentions' (reference… |
| to_memory_id | integer | yes | Target memory ID |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
list_memories ~44
List stored memories with pagination.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum results |
| memory_type | – | – | Filter by type |
| offset | integer | – | Skip first N results |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
log_output ~45
Log an output for pattern mining. Called automatically or manually.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | Output content to log for pattern mining |
| session_id | – | – | Session ID for provenance tracking |
Structured output declared, but exposes no named fields.
No examples provided.
mark_contradiction ~68
Mark two memories as contradicting each other. Creates a CONTRADICTS relationship. Use this when you discover that two memories contain conflicting information about the same topic.
| Name | Type | Req | Description |
|---|---|---|---|
| memory_id_a | integer | yes | First memory ID |
| memory_id_b | integer | yes | Second memory ID |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
mark_memory_used ~78
Mark a memory as actually used/helpful after recall. Call this when a recalled memory was useful in your response. Helps improve ranking by tracking which memories are valuable.
| Name | Type | Req | Description |
|---|---|---|---|
| feedback | – | – | Optional feedback (e.g., "helpful", "partially_helpful") |
| memory_id | integer | yes | ID of the memory that was useful |
Structured output declared, but exposes no named fields.
No examples provided.
memory_stats ~12
Get memory statistics.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| by_source | object | yes | – |
| by_type | object | yes | – |
| hot_cache_count | integer | yes | – |
| total_memories | integer | yes | – |
No examples provided.
metrics_status ~94
Get observability metrics for monitoring and debugging. Returns counters and gauges for key operations: - recall: queries, results returned/gated, hot hits, empty results - store: total stores, by type, merges, contradictions - mining: runs, patterns found/new/updated - hot_cache: promotions, demotions, evictions, utilization Useful for debugging performance issues, monitoring usage patterns, and understanding system behavior.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
mining_status ~13
Show pattern mining statistics.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
pin ~57
Pin a hot cache memory to prevent auto-eviction. Pinned memories stay in hot cache even when space is needed for new items. Only works on memories already in hot cache.
| Name | Type | Req | Description |
|---|---|---|---|
| memory_id | integer | yes | ID of hot memory to pin |
Structured output declared, but exposes no named fields.
No examples provided.
predict_next ~82
Predict which memories might be needed next based on access patterns. Uses learned Markov chain of access sequences to predict what memories typically follow after accessing the given memory. Requires MEMORY_MCP_PREDICTIVE_CACHE_ENABLED=true.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | – | – | Maximum predictions |
| memory_id | integer | yes | Memory ID to predict from |
| threshold | – | – | Minimum probability threshold |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
predictive_cache_status ~32
Get status of the predictive hot cache system. Shows whether predictive caching is enabled, configuration, and learned pattern statistics.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
preview_consolidation ~53
Preview memory consolidation without making changes. Shows clusters of similar memories that could be merged. Use this before running actual consolidation to review changes.
| Name | Type | Req | Description |
|---|---|---|---|
| memory_type | – | – | Filter by type (project/pattern/reference/conversation) |
Structured output declared, but exposes no named fields.
No examples provided.
promote ~35
Manually promote a memory to hot cache for instant recall.
| Name | Type | Req | Description |
|---|---|---|---|
| memory_id | integer | yes | ID of memory to promote to hot cache |
Structured output declared, but exposes no named fields.
No examples provided.
recall ~218
Semantic search with confidence gating and composite ranking. Modes: - 'precision': High threshold (0.8), few results (3), prioritizes similarity - 'balanced': Default settings, good for general use - 'exploratory': Low threshold (0.5), more results (10), diverse ranking Returns memories with confidence level and hallucination-prevention guidance.
| Name | Type | Req | Description |
|---|---|---|---|
| expand_relations | – | – | Expand results via knowledge graph (Engram-style associative recall). Related memories are added with decayed scores. None uses config default. |
| include_related | boolean | – | Include related memories from knowledge graph for top results |
| limit | – | – | Max results (overrides mode default) |
| memory_type | – | – | Filter by type: project, pattern, reference |
| mode | – | – | Recall mode: 'precision' (high threshold, few results), 'balanced' (default), 'exploratory' (low threshold, more results) |
| query | string | yes | Search query for semantic similarity |
| threshold | – | – | Min similarity (overrides mode default) |
| Name | Type | Req | Description |
|---|---|---|---|
| confidence | string | yes | – |
| context_summary | – | – | – |
| formatted_context | – | – | – |
| gated_count | integer | yes | – |
| guidance | string | yes | – |
| memories | array | yes | – |
| mode | string | yes | – |
| promotion_suggestions | – | – | – |
| ranking_factors | string | yes | – |
| related_memories | – | – | – |
No examples provided.
recall_by_tag ~36
Get memories with a specific tag.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum results |
| tag | string | yes | Tag to filter by |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
recall_with_fallback ~99
Recall with automatic fallback through memory types. Tries searching in order: patterns -> project facts -> all types. Stops when min_results are found with medium+ confidence. Use this when you're unsure which memory type contains the answer.
| Name | Type | Req | Description |
|---|---|---|---|
| min_results | integer | – | Minimum results before trying next fallback |
| mode | – | – | Recall mode: 'precision', 'balanced', 'exploratory' |
| query | string | yes | Search query for semantic similarity |
| Name | Type | Req | Description |
|---|---|---|---|
| confidence | string | yes | – |
| context_summary | – | – | – |
| formatted_context | – | – | – |
| gated_count | integer | yes | – |
| guidance | string | yes | – |
| memories | array | yes | – |
| mode | string | yes | – |
| promotion_suggestions | – | – | – |
| ranking_factors | string | yes | – |
| related_memories | – | – | – |
No examples provided.
reject_candidate ~32
Reject a mined pattern, removing it from candidates.
| Name | Type | Req | Description |
|---|---|---|---|
| pattern_id | integer | yes | ID of mined pattern to reject |
Structured output declared, but exposes no named fields.
No examples provided.
relationship_stats ~18
Get statistics about memory relationships in the knowledge graph.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| by_type | object | yes | – |
| linked_memories | integer | yes | – |
| total_relationships | integer | yes | – |
No examples provided.
remember ~131
Store a new memory. Returns the memory ID.
| Name | Type | Req | Description |
|---|---|---|---|
| category | – | – | Subcategory within type (e.g., 'decision', 'architecture', 'import', 'command', 'api', 'config'). Helps organize memories. |
| content | string | yes | The content to remember |
| memory_type | string | – | Type: 'project' (project facts), 'pattern' (code patterns), 'reference' (docs), 'conversation' (discussion facts), 'episodic' (session-bound short-term context) |
| session_id | – | – | Session ID for conversation provenance tracking |
| tags | – | – | Tags for categorization |
Structured output declared, but exposes no named fields.
No examples provided.
resolve_contradiction ~159
Resolve a contradiction by keeping one memory and handling the other. After resolving: - 'supersedes': Creates SUPERSEDES relationship, weakens trust in discarded - 'delete': Removes the discarded memory entirely - 'weaken': Reduces trust in discarded memory but keeps it
| Name | Type | Req | Description |
|---|---|---|---|
| keep_id | integer | yes | ID of memory to keep (must be one of the two) |
| memory_id_a | integer | yes | First memory in contradiction |
| memory_id_b | integer | yes | Second memory in contradiction |
| resolution | string | – | How to handle the discarded memory: 'supersedes' (kept memory replaces other), 'delete' (remove the other memory), 'weaken' (reduce trust in other memory) |
Structured output declared, but exposes no named fields.
No examples provided.
retrieval_quality_stats ~67
Get retrieval quality statistics. Shows which memories are frequently retrieved and actually used. Helps identify high-value and low-utility memories.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | How many days back to analyze (default 30) |
| memory_id | – | – | Get stats for specific memory (None for global) |
Structured output declared, but exposes no named fields.
No examples provided.
review_candidates ~17
Review mined patterns that are ready for promotion.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
run_cleanup ~98
Run comprehensive cleanup of stale data. Performs all cleanup operations in one call: - Demotes stale hot memories (not accessed in demotion_days) - Expires old pending mining patterns (30+ days without activity) - Deletes old output logs (based on log_retention_days) - Deletes stale memories by type-specific retention policies Use this periodically to keep the database lean. For just database compaction, use db_maintenance() instead.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
run_consolidation ~76
Consolidate similar memories by merging near-duplicates. Finds clusters of semantically similar memories and merges them, keeping the most accessed/valuable one as representative.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | If True (default), only preview without making changes |
| memory_type | – | – | Filter by type (project/pattern/reference/conversation) |
Structured output declared, but exposes no named fields.
No examples provided.
run_mining ~70
Run pattern mining on recent output logs. Extracts patterns (imports, facts, commands, code) from logged outputs and updates the mined_patterns table with occurrence counts. Mining is project-scoped: only logs from the current project are processed.
| Name | Type | Req | Description |
|---|---|---|---|
| hours | integer | – | Hours of logs to process |
Structured output declared, but exposes no named fields.
No examples provided.
seed_from_file ~93
Seed memories from a file. Reads the file and extracts memories based on content structure. Supports markdown files (splits on headers and lists) and plain text. Common use: Import from project CLAUDE.md or documentation files.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to file to import |
| memory_type | string | – | Memory type for content |
| promote_to_hot | boolean | – | Promote to hot cache |
| Name | Type | Req | Description |
|---|---|---|---|
| errors | array | yes | – |
| memories_created | integer | yes | – |
| memories_skipped | integer | yes | – |
No examples provided.
seed_from_text ~126
Seed memories from text content. Parses the content into individual memories (one per paragraph or list item) and stores them. Useful for initial setup or bulk import. Content is split on: - Double newlines (paragraphs) - Lines starting with '- ' or '* ' (list items) - Lines starting with numbers like '1. ' (numbered lists)
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | Text content to parse and seed memories from |
| memory_type | string | – | Memory type for all extracted items |
| promote_to_hot | boolean | – | Promote all to hot cache |
| Name | Type | Req | Description |
|---|---|---|---|
| errors | array | yes | – |
| memories_created | integer | yes | – |
| memories_skipped | integer | yes | – |
No examples provided.
set_session_topic ~65
Set or update the topic for a conversation session. Topics help identify what conversations were about when reviewing session history. Can be auto-detected or manually set.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | string | yes | Session ID to update |
| topic | string | yes | Topic description for the session |
Structured output declared, but exposes no named fields.
No examples provided.
How do I install the io.github.michael-denyer/hot-memory-mcp server?
io.github.michael-denyer/hot-memory-mcp runs locally as a PyPI package, launched with uvx hot-memory-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · hot-memory-mcp
claude mcp add michael-denyer-hot-memory-mcp -- uvx hot-memory-mcp
What is the io.github.michael-denyer/hot-memory-mcp server?
io.github.michael-denyer/hot-memory-mcp is listed in the public MCP registry as io.github.michael-denyer/hot-memory-mcp. Two-tier memory: hot cache (0ms) + semantic search. Self-organizing. This page covers its PyPI package (hot-memory-mcp).
Is the io.github.michael-denyer/hot-memory-mcp server safe to use?
io.github.michael-denyer/hot-memory-mcp scores 66 out of 100 on VerifyMCP. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.michael-denyer/hot-memory-mcp server expose?
io.github.michael-denyer/hot-memory-mcp exposes 56 tools: remember, recall, recall_with_fallback, recall_by_tag, forget, and 51 more. Their descriptions and schemas cost roughly 4,615 tokens of context every time the server is loaded.
Is the io.github.michael-denyer/hot-memory-mcp server still maintained?
io.github.michael-denyer/hot-memory-mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.michael-denyer/hot-memory-mcp server under?
io.github.michael-denyer/hot-memory-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.