io.github.AdelElo13/neuromcp
Semantic memory for AI agents — local-first MCP server with hybrid search, governance, and consolidation
Versions
0.29.2latest0.29.10.29.00.28.10.28.0+ show 72 moreshow less
0.26.00.25.10.25.00.24.00.23.00.22.10.22.00.21.00.20.10.20.00.19.10.19.00.18.30.18.20.18.10.18.00.17.70.17.60.17.50.17.40.17.30.17.20.17.00.16.90.16.80.16.70.16.60.16.50.16.40.16.30.16.20.16.10.16.00.15.00.14.20.14.10.14.00.13.00.12.00.11.10.11.00.10.00.9.60.9.50.9.40.9.30.9.20.9.10.9.00.8.30.8.20.8.10.8.00.7.80.7.70.7.60.7.50.7.40.7.30.7.20.7.10.7.00.6.10.6.00.5.10.5.00.4.20.4.10.4.00.3.00.1.10.1.0Tools 46
find_transferable Find memories in a source namespace that could be useful in a target namespace. Scores by transferability (universal vs project-specific).
register_agent Register or update an agent profile with expertise topics. Auto-counts memories.
find_expert Find agents with expertise matching a query topic.
agent_conflicts Find conflicting knowledge between different agents on the same topic.
review_queue Get memories due for spaced repetition review. Returns overdue memories ordered by urgency + importance.
review_memory Record a review of a memory. Quality 0-5 (SM-2 scale: 0=forgot, 5=perfect). Updates interval and schedules next review.
init_reviews Initialize spaced repetition for important memories that do not have a review schedule yet.
compress_memories Compress old similar memories into digest memories. Reduces DB size while preserving knowledge. Hard-deletes ancient zero-access tombstones.
transfer_memories Copy memories from source to target namespace. Optionally adapts content by stripping project-specific references.
log_retrieval Log a retrieval event so future searches can learn which memories are actually helpful.
cite_memories Attach a late verdict to a previously-logged retrieval event. Use when the agent answers first and a critic scores the answer afterward.
usefulness_stats List memories ranked by observed usefulness (helpful vs harmful citation ratio).
generate_reflection Synthesise a meta-reflection memory from memories that have been proven helpful (helpful_count >= min_helpful). Safeguarded: only touches memories with explicit positive critic signal — no speculation on unvalidated content. Stored as category=reflection so downstream searches can include or exclude meta-memories explicitly.
wiki_ingest Read a file from the wiki raw-sources/ directory and extract structured metadata (title, type, key concepts, related pages). Returns analysis the LLM uses to decide which wiki pages to create or update. Does NOT write pages itself.
wiki_lint Scan all wiki pages and check for health issues: missing frontmatter, pages not in index.md, stale pages (>30 days), thin pages (<5 lines), unprocessed raw sources, broken related links. Writes lint-report.md.
wiki_briefing Generate a structured briefing from the wiki: active projects, unprocessed sources, recent changelog entries, stale pages needing attention. Use for morning status checks.
create_entity Create or update an entity in the knowledge graph. Entities represent concepts, people, tools, or any named thing.
create_relation Create a typed relation between two entities in the knowledge graph. Supports temporal validity.
query_graph Traverse the knowledge graph starting from an entity. Returns connected nodes and edges up to max_depth hops. Supports temporal queries.
search_claims Search atomic claims extracted from memories. Claims are verifiable facts with subject-predicate-object structure.
compute_centrality Run weighted PageRank over the knowledge graph to compute entity centrality scores. Entities with more connections and higher-weight edges rank higher. Persists results for search boosting.
update_importance Recalculate adaptive importance for all memories in a namespace. Boosts frequently accessed, recently relevant, and graph-central memories. Run after clustering and PageRank for best results.
start_episode Start a new episode (session/task context). Memories stored with this episode_id will be grouped together. Use to track what happened during a session.
end_episode End an active episode. Optionally provide a summary, or one will be auto-generated from the most important memories in the episode.
list_episodes List episodes in a namespace. Shows memory count per episode.
get_episode Get details of a specific episode including memory count.
cluster_memories Run k-means clustering on memories in a namespace. Groups semantically related memories into clusters. Returns cluster labels, sizes, and assignments.
list_clusters List all clusters in a namespace with their labels and memory counts.
get_cluster_memories Get all memories in a specific cluster, ordered by distance from centroid.
summarize_cluster Generate an extractive summary of a cluster. Selects the most central, representative sentences from cluster memories using embedding centrality.
summarize_episode Generate an extractive summary of an episode. Selects the most central, representative sentences from episode memories.
memory_timeline Track how knowledge about a topic evolved over time. Follows supersession chains and shows full revision history.
store_verbatim Store raw conversation text verbatim — no summarization, no consolidation, never pruned. Use for exact recall of what was said.
search_verbatim Search raw verbatim text using full-text search. Returns exact matches from stored conversations. Use for literal recall.
verbatim_stats Get statistics about verbatim storage: total entries, size, and distribution by namespace.
store_memory Store a new memory with semantic deduplication, contradiction detection, surprise scoring, and entity extraction. Returns the memory ID, contradictions found, surprise score, and extracted entities.
search_memory Search memories using hybrid vector + full-text search with RRF ranking, graph boost, and cognitive priming. Supports temporal queries (valid_at) to find what was true at a specific time.
recall_answer Answer a question FROM memory: runs hybrid retrieval, then returns a synthesized, CITED extractive answer (every sentence traces to a stored memory id) PLUS an explicit gap-analysis — what memory does NOT cover and the freshness boundary (stale_since). Returns status "not_in_memory" instead of fabricating when nothing matches. Deterministic, no LLM. Prefer this over search_memory when you need a grounded answer rather than raw chunks.
recall_memory Recall memories by ID, namespace, category, or tags without semantic search.
forget_memory Tombstone (soft-delete) memories matching the given filters. At least one filter is required.
consolidate Run consolidation: merge near-duplicates, decay stale memories, prune low-value, sweep expired, purge old tombstones. Set commit=true to apply.
memory_stats Get statistics about stored memories: counts, categories, trust levels, importance, and database size.
export_memories Export memories as JSONL or JSON for backup or migration.
import_memories Import memories from JSONL or JSON data. Deduplicates by content hash.
backfill_embeddings Recompute embeddings for all memories missing from the vector store. Also syncs FTS index.
search_all Unified search across both extracted memories and verbatim text. Returns results with source labels and per-source quotas.
Permissions 5
network medium filesystem low shell high database medium env_vars low