{"name":"io.github.AdelElo13/neuromcp","slug":"adelelo13-neuromcp","title":null,"description":"Semantic memory for AI agents with hybrid search, knowledge graph, and consolidation","url":"https://mcp.market/server/adelelo13-neuromcp","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":33,"stars":4,"forks":0,"downloads_week":191,"last_push_at":"2026-10-15T09:05:38.000Z","license":"NOASSERTION"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/AdelElo13/neuromcp","website":null,"version":"0.30.2","remotes":[],"packages":[{"registryType":"npm","identifier":"neuromcp","version":"0.30.2","runtimeHint":"npx","transport":{"type":"stdio"}}],"tools":[{"name":"agent_conflicts","description":"Find conflicting knowledge between different agents on the same topic.","write_action":false,"price_micros":0,"input_schema":null},{"name":"backfill_embeddings","description":"Recompute embeddings for all memories missing from the vector store. Also syncs FTS index.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cite_memories","description":"Attach a late verdict to a previously-logged retrieval event. Use when the agent answers first and a critic scores the answer afterward. Updates the memory_usefulness prior based on which retrieved memories were cited + outcome.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cluster_memories","description":"Run k-means clustering on memories in a namespace. Groups semantically related memories into clusters. Returns cluster labels, sizes, and assignments.","write_action":true,"price_micros":0,"input_schema":null},{"name":"compress_memories","description":"Compress old similar memories into digest memories. Reduces DB size while preserving knowledge. Hard-deletes ancient zero-access tombstones.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compute_centrality","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"consolidate","description":"Run consolidation: merge near-duplicates, decay stale memories, prune low-value, sweep expired, purge old tombstones. Set commit=true to apply.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_entity","description":"Create or update an entity in the knowledge graph. Entities represent concepts, people, tools, or any named thing.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_relation","description":"Create a typed relation between two entities in the knowledge graph. Supports temporal validity.","write_action":true,"price_micros":0,"input_schema":null},{"name":"end_episode","description":"End an active episode. Optionally provide a summary, or one will be auto-generated from the most important memories in the episode.","write_action":false,"price_micros":0,"input_schema":null},{"name":"export_memories","description":"Export memories as JSONL or JSON for backup or migration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_expert","description":"Find agents with expertise matching a query topic.","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_transferable","description":"Find memories in a source namespace that could be useful in a target namespace. Scores by transferability (universal vs project-specific).","write_action":false,"price_micros":0,"input_schema":null},{"name":"forget_memory","description":"Tombstone (soft-delete) memories matching the given filters. At least one filter is required.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_reflection","description":"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 \\u2014 no speculation on unvalidated content. Stored as category=reflection so downstream searches can include or exclude meta-memories explicitly.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_cluster_memories","description":"Get all memories in a specific cluster, ordered by distance from centroid.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_episode","description":"Get details of a specific episode including memory count.","write_action":false,"price_micros":0,"input_schema":null},{"name":"import_memories","description":"Import memories from JSONL or JSON data. Deduplicates by content hash.","write_action":false,"price_micros":0,"input_schema":null},{"name":"init_reviews","description":"Initialize spaced repetition for important memories that do not have a review schedule yet.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_clusters","description":"List all clusters in a namespace with their labels and memory counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_episodes","description":"List episodes in a namespace. Shows memory count per episode.","write_action":false,"price_micros":0,"input_schema":null},{"name":"log_retrieval","description":"Log a retrieval event so future searches can learn which memories are actually helpful. Call right after search_memory. Pass retrieved_ids (all top-K), cited_ids (those actually used in the answer, if known), and an outcome label (helpful/neutral/harmful). Usefulness scores are applied as a prior in future rankings.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_stats","description":"Get statistics about stored memories: counts, categories, trust levels, importance, and database size.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_timeline","description":"Track how knowledge about a topic evolved over time. Follows supersession chains and shows full revision history.","write_action":false,"price_micros":0,"input_schema":null},{"name":"query_graph","description":"Traverse the knowledge graph starting from an entity. Returns connected nodes and edges up to max_depth hops. Supports temporal queries. Without entity_id/entity_name it returns an OVERVIEW: the top-N entities of the namespace ranked by number of relations (contradicts edges not counted), with the relations among them; internal memory_proxy entities that only back contradicts edges are excluded fr","write_action":false,"price_micros":0,"input_schema":null},{"name":"recall_answer","description":"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 \\u2014 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 nee","write_action":false,"price_micros":0,"input_schema":null},{"name":"recall_memory","description":"Recall memories by ID, namespace, category, or tags without semantic search.","write_action":false,"price_micros":0,"input_schema":null},{"name":"register_agent","description":"Register or update an agent profile with expertise topics. Auto-counts memories.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_memory","description":"Record a review of a memory. Quality 0-5 (SM-2 scale: 0=forgot, 5=perfect). Updates interval and schedules next review.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_queue","description":"Get memories due for spaced repetition review. Returns overdue memories ordered by urgency + importance.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_all","description":"Unified search across both extracted memories and verbatim text. Returns results with source labels and per-source quotas.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_claims","description":"Search atomic claims extracted from memories. Claims are verifiable facts with subject-predicate-object structure.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_memory","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_verbatim","description":"Search raw verbatim text using full-text search. Returns exact matches from stored conversations. Use for literal recall.","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_episode","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"store_memory","description":"Store a new memory with semantic deduplication, contradiction detection, surprise scoring, and entity extraction. Returns the memory ID, contradictions found (resolution supersede/coexist are claim-backed and recorded as graph edges; flag is heuristic-only and reported here but never stored in the graph), surprise score, and extracted entities.","write_action":false,"price_micros":0,"input_schema":null},{"name":"store_verbatim","description":"Store raw conversation text verbatim \\u2014 no summarization, no consolidation, never pruned. Use for exact recall of what was said.","write_action":false,"price_micros":0,"input_schema":null},{"name":"summarize_cluster","description":"Generate an extractive summary of a cluster. Selects the most central, representative sentences from cluster memories using embedding centrality.","write_action":false,"price_micros":0,"input_schema":null},{"name":"summarize_episode","description":"Generate an extractive summary of an episode. Selects the most central, representative sentences from episode memories.","write_action":false,"price_micros":0,"input_schema":null},{"name":"transfer_memories","description":"Copy memories from source to target namespace. Optionally adapts content by stripping project-specific references.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_importance","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"usefulness_stats","description":"List memories ranked by observed usefulness (helpful vs harmful citation ratio). Use to inspect which memories the agent actually leans on, or to pick high-confidence source material for reflection.","write_action":false,"price_micros":0,"input_schema":null},{"name":"verbatim_stats","description":"Get statistics about verbatim storage: total entries, size, and distribution by namespace.","write_action":false,"price_micros":0,"input_schema":null},{"name":"wiki_briefing","description":"Generate a structured briefing from the wiki: active projects, unprocessed sources, recent changelog entries, stale pages needing attention. Use for morning status checks.","write_action":false,"price_micros":0,"input_schema":null},{"name":"wiki_ingest","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"wiki_lint","description":"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.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":77,"grade":"B","scanned_at":"2026-10-15T11:59:07.576Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-15T11:59:07.607Z","components":{"code":{"score":15,"max":25,"notes":["150 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 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present"},{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present","evidence":"package.json: … eval/runner.ts --update-baseline\", \"postinstall\": \"node scripts/download-model.mjs || tru…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"neuromcp","version":"0.30.2","found":true,"license":"AGPL-3.0-only","hasInstallScripts":true,"dependencyCount":5,"publishedAt":"2026-10-15T09:07:59.355Z","repositoryUrl":"git+https://github.com/AdelElo13/neuromcp.git","weeklyDownloads":191}],"repo":{"found":true,"owner":"AdelElo13","repo":"neuromcp","archived":false,"pushedAt":"2026-10-15T09:05:38Z","stars":4,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/123841129?v=4","ownerCreatedAt":"2023-01-28T21:45:37Z","license":"NOASSERTION"},"icon":{"url":"https://avatars.githubusercontent.com/u/123841129?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":4,"forks":0,"downloadsWeek":191,"license":"NOASSERTION","lastPushAt":"2026-10-15T09:05:38.000Z","score":33}}}},"grade_history":[{"kind":"restore","fromGrade":"D","toGrade":"B","reason":"score 77: npm install lifecycle script present; npm install lifecycle script present","createdAt":"2026-09-19T21:03:53.427Z"}],"reviews":[]}