{"name":"io.github.michael-denyer/hot-memory-mcp","slug":"michael-denyer-hot-memory-mcp","title":null,"description":"Two-tier memory: hot cache (0ms) + semantic search. Self-organizing.","url":"https://mcp.market/server/michael-denyer-hot-memory-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":36,"stars":9,"forks":2,"downloads_week":201,"last_push_at":"2026-09-16T06:06:48.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/michael-denyer/memory-mcp","website":null,"version":"0.8.0","remotes":[],"packages":[{"registryType":"pypi","identifier":"hot-memory-mcp","version":"0.8.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Path to SQLite database file","format":"string","name":"MEMORY_MCP_DB_PATH"},{"description":"Embedding model to use (default: all-MiniLM-L6-v2)","format":"string","name":"MEMORY_MCP_EMBEDDING_MODEL"}]}],"tools":[{"name":"access_patterns","description":"Get learned access patterns for predictive caching.","write_action":false,"price_micros":0,"input_schema":null},{"name":"approve_candidate","description":"Approve a mined pattern, storing it as a memory and optionally promoting to hot cache.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audit_history","description":"Get recent audit log entries for destructive operations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bootstrap_project","description":"Bootstrap hot cache from project documentation files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bulk_reject_candidates","description":"Bulk reject multiple mining candidates at once.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cross_session_patterns","description":"Find content patterns appearing across multiple conversation sessions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_info","description":"Get database information including schema version and size.","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_maintenance","description":"Run database maintenance (vacuum, analyze, auto-demote stale).","write_action":true,"price_micros":0,"input_schema":null},{"name":"db_rebuild_vectors","description":"Rebuild all memory vectors with the current embedding model.","write_action":false,"price_micros":0,"input_schema":null},{"name":"demote","description":"Remove a memory from hot cache (keeps in cold storage).","write_action":true,"price_micros":0,"input_schema":null},{"name":"embedding_info","description":"Get embedding provider and cache information.","write_action":false,"price_micros":0,"input_schema":null},{"name":"end_session","description":"End a session and consolidate episodic memories.","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_contradictions","description":"Find memories that may contradict a given memory.","write_action":false,"price_micros":0,"input_schema":null},{"name":"forget","description":"Delete a memory permanently.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_contradictions","description":"Get all memory pairs marked as contradictions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_related_memories","description":"Get memories related to a given memory.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_session","description":"Get details for a specific session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_session_memories","description":"Get all memories from a specific conversation session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_sessions","description":"Get recent conversation sessions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_trust_history","description":"Get the trust adjustment history for a memory.","write_action":false,"price_micros":0,"input_schema":null},{"name":"hot_cache_status","description":"Show current hot cache contents, stats, and observability metrics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"invalidate_memory","description":"Mark a memory as incorrect or outdated.","write_action":false,"price_micros":0,"input_schema":null},{"name":"link_memories","description":"Create a typed relationship between two memories.","write_action":true,"price_micros":0,"input_schema":null},{"name":"list_memories","description":"List stored memories with pagination.","write_action":false,"price_micros":0,"input_schema":null},{"name":"log_output","description":"Log an output for pattern mining. Called automatically or manually.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mark_contradiction","description":"Mark two memories as contradicting each other.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mark_memory_used","description":"Mark a memory as actually used/helpful after recall.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_stats","description":"Get memory statistics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"metrics_status","description":"Get observability metrics for monitoring and debugging.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mining_status","description":"Show pattern mining statistics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pin","description":"Pin a hot cache memory to prevent auto-eviction.","write_action":false,"price_micros":0,"input_schema":null},{"name":"predict_next","description":"Predict which memories might be needed next based on access patterns.","write_action":false,"price_micros":0,"input_schema":null},{"name":"predictive_cache_status","description":"Get status of the predictive hot cache system.","write_action":false,"price_micros":0,"input_schema":null},{"name":"preview_consolidation","description":"Preview memory consolidation without making changes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"promote","description":"Manually promote a memory to hot cache for instant recall.","write_action":false,"price_micros":0,"input_schema":null},{"name":"recall","description":"Semantic search with confidence gating and composite ranking.","write_action":false,"price_micros":0,"input_schema":null},{"name":"recall_by_tag","description":"Get memories with a specific tag.","write_action":false,"price_micros":0,"input_schema":null},{"name":"recall_with_fallback","description":"Recall with automatic fallback through memory types.","write_action":false,"price_micros":0,"input_schema":null},{"name":"reject_candidate","description":"Reject a mined pattern, removing it from candidates.","write_action":false,"price_micros":0,"input_schema":null},{"name":"relationship_stats","description":"Get statistics about memory relationships in the knowledge graph.","write_action":false,"price_micros":0,"input_schema":null},{"name":"remember","description":"Store a new memory. Returns the memory ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"resolve_contradiction","description":"Resolve a contradiction by keeping one memory and handling the other.","write_action":false,"price_micros":0,"input_schema":null},{"name":"retrieval_quality_stats","description":"Get retrieval quality statistics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_candidates","description":"Review mined patterns that are ready for promotion.","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_cleanup","description":"Run comprehensive cleanup of stale data.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_consolidation","description":"Consolidate similar memories by merging near-duplicates.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_mining","description":"Run pattern mining on recent output logs.","write_action":true,"price_micros":0,"input_schema":null},{"name":"seed_from_file","description":"Seed memories from a file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"seed_from_text","description":"Seed memories from text content.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_session_topic","description":"Set or update the topic for a conversation session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"summarize_session","description":"Summarize a session's key decisions, insights, and action items.","write_action":false,"price_micros":0,"input_schema":null},{"name":"unlink_memories","description":"Remove relationship(s) between two memories.","write_action":true,"price_micros":0,"input_schema":null},{"name":"unpin","description":"Unpin a memory, making it eligible for auto-eviction from hot cache.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate_embeddings","description":"Check if the embedding model has changed since database was created.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate_memory","description":"Mark a memory as validated/confirmed useful.","write_action":false,"price_micros":0,"input_schema":null},{"name":"warm_cache","description":"Pre-warm hot cache with predicted next memories.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-26T11:38:33.135Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T11:38:33.146Z","components":{"code":{"score":25,"max":25,"notes":["58 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 10 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"hot-memory-mcp","version":"0.8.0","found":true,"weeklyDownloads":201,"license":"MIT","dependencyCount":14,"publishedAt":"2026-07-02T01:14:21.581994Z","repositoryUrl":"https://github.com/michael-denyer/memory-mcp"}],"repo":{"found":true,"owner":"michael-denyer","repo":"memory-mcp","archived":false,"pushedAt":"2026-09-16T06:06:48Z","stars":9,"forks":2,"openIssues":6,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/97485362?v=4","ownerCreatedAt":"2022-01-10T23:51:37Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/97485362?v=4&s=128","source":"github"},"presence":{"stars":9,"forks":2,"downloadsWeek":201,"license":"MIT","lastPushAt":"2026-09-16T06:06:48.000Z","score":36}}}},"grade_history":[],"reviews":[]}