# Enhanced Knowledge Graph Memory Server MCP server

Agent View of the PolicyLayer registry record for Enhanced Knowledge Graph Memory Server: identity, probed posture, risk grade, and all 225 tools classified. HTML page: https://policylayer.com/tools/danielsimonjr-memory-mcp

## Facts

- Server id: `danielsimonjr/memory-mcp`
- Homepage: https://github.com/danielsimonjr/memory-mcp
- Registry record: grade F, identity unverified
- Lifecycle: active
- Rate-limited: no
- Tools: 225
- Tool categories present: Destructive, Execute, Read, Write
- Tags: danielsimonjr memory mcp, admin, automation
- Record last modified: 2026-07-16T14:03:00.276Z

## Tools (225)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `adaptive_reduce_memories` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/adaptive-reduce-memories.md |
| `cache_clear` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/cache-clear.md |
| `clear_expired_memories` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/clear-expired-memories.md |
| `clear_heuristics` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/clear-heuristics.md |
| `clear_project_context` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/clear-project-context.md |
| `delete_entities` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/delete-entities.md |
| `delete_observations` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/delete-observations.md |
| `delete_relations` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/delete-relations.md |
| `delete_saved_search` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/delete-saved-search.md |
| `deregister_ref` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/deregister-ref.md |
| `forget_memory` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/forget-memory.md |
| `forget_weak_memories` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/forget-weak-memories.md |
| `invalidate_entity` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/invalidate-entity.md |
| `rbac_revoke_role` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/rbac-revoke-role.md |
| `remove_exclusion_rule` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/remove-exclusion-rule.md |
| `remove_heuristic` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/remove-heuristic.md |
| `remove_project_command` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/remove-project-command.md |
| `remove_project_convention` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/remove-project-convention.md |
| `remove_project_fact` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/remove-project-fact.md |
| `remove_project_glossary_term` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/remove-project-glossary-term.md |
| `remove_tag_alias` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/remove-tag-alias.md |
| `remove_tool_affordance` | Destructive | Critical | https://policylayer.com/tools/danielsimonjr-memory-mcp/remove-tool-affordance.md |
| `consolidate_session` | Execute | High | https://policylayer.com/tools/danielsimonjr-memory-mcp/consolidate-session.md |
| `dream_run_now` | Execute | High | https://policylayer.com/tools/danielsimonjr-memory-mcp/dream-run-now.md |
| `dream_start` | Execute | High | https://policylayer.com/tools/danielsimonjr-memory-mcp/dream-start.md |
| `dream_stop` | Execute | High | https://policylayer.com/tools/danielsimonjr-memory-mcp/dream-stop.md |
| `end_session` | Execute | High | https://policylayer.com/tools/danielsimonjr-memory-mcp/end-session.md |
| `parse_adr_markdown` | Execute | High | https://policylayer.com/tools/danielsimonjr-memory-mcp/parse-adr-markdown.md |
| `run_consolidation_now` | Execute | High | https://policylayer.com/tools/danielsimonjr-memory-mcp/run-consolidation-now.md |
| `run_decay_cycle` | Execute | High | https://policylayer.com/tools/danielsimonjr-memory-mcp/run-decay-cycle.md |
| `start_consolidation` | Execute | High | https://policylayer.com/tools/danielsimonjr-memory-mcp/start-consolidation.md |
| `stop_consolidation` | Execute | High | https://policylayer.com/tools/danielsimonjr-memory-mcp/stop-consolidation.md |
| `adaptive_retrieve` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/adaptive-retrieve.md |
| `analyze_cognitive_load` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/analyze-cognitive-load.md |
| `analyze_query` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/analyze-query.md |
| `append_project_command` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/append-project-command.md |
| `append_project_convention` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/append-project-convention.md |
| `append_project_fact` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/append-project-fact.md |
| `append_project_glossary_term` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/append-project-glossary-term.md |
| `audit_history` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/audit-history.md |
| `audit_query` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/audit-query.md |
| `auto_link_observations` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/auto-link-observations.md |
| `boolean_search` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/boolean-search.md |
| `cache_stats` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/cache-stats.md |
| `check_exclusion` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/check-exclusion.md |
| `check_freshness` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/check-freshness.md |
| `check_graph` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/check-graph.md |
| `compress_context` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/compress-context.md |
| `compute_entropy` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/compute-entropy.md |
| `confirm_memory` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/confirm-memory.md |
| `counterfactual_query` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/counterfactual-query.md |
| `detect_causal_cycles` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/detect-causal-cycles.md |
| `detect_contradictions` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/detect-contradictions.md |
| `detect_heuristic_conflicts` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/detect-heuristic-conflicts.md |
| `detect_patterns` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/detect-patterns.md |
| `diag` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/diag.md |
| `diary_read` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/diary-read.md |
| `entity_as_of` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/entity-as-of.md |
| `entity_neighbors` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/entity-neighbors.md |
| `entity_timeline` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/entity-timeline.md |
| `estimate_query_cost` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/estimate-query-cost.md |
| `execute_saved_search` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/execute-saved-search.md |
| `extract_facts` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/extract-facts.md |
| `find_all_paths` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/find-all-paths.md |
| `find_causes` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/find-causes.md |
| `find_decisions_by_context` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/find-decisions-by-context.md |
| `find_duplicate_observations` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/find-duplicate-observations.md |
| `find_duplicates` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/find-duplicates.md |
| `find_effects` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/find-effects.md |
| `find_jaccard_duplicate_observations` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/find-jaccard-duplicate-observations.md |
| `find_matching_memories_for_rule` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/find-matching-memories-for-rule.md |
| `find_shortest_path` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/find-shortest-path.md |
| `find_similar_entities` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/find-similar-entities.md |
| `format_project_context_for_llm` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/format-project-context-for-llm.md |
| `format_with_salience_budget` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/format-with-salience-budget.md |
| `freshness_report` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/freshness-report.md |
| `fuzzy_search` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/fuzzy-search.md |
| `get_aliases_for_tag` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-aliases-for-tag.md |
| `get_ancestors` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-ancestors.md |
| `get_artifact` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-artifact.md |
| `get_centrality` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-centrality.md |
| `get_children` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-children.md |
| `get_connected_components` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-connected-components.md |
| `get_context_profile` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-context-profile.md |
| `get_decayed_memories` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-decayed-memories.md |
| `get_decision` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-decision.md |
| `get_decision_chain` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-decision-chain.md |
| `get_descendants` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-descendants.md |
| `get_entity_depth` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-entity-depth.md |
| `get_entity_versions` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-entity-versions.md |
| `get_expired_entities` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-expired-entities.md |
| `get_graph_stats` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-graph-stats.md |
| `get_heuristic` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-heuristic.md |
| `get_parent` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-parent.md |
| `get_procedure` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-procedure.md |
| `get_procedure_step` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-procedure-step.md |
| `get_profile` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-profile.md |
| `get_project_context` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-project-context.md |
| `get_project_scope` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-project-scope.md |
| `get_root_entities` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-root-entities.md |
| `get_search_suggestions` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-search-suggestions.md |
| `get_stale_entities` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-stale-entities.md |
| `get_subtree` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-subtree.md |
| `get_tool_affordance_stats` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-tool-affordance-stats.md |
| `get_version_chain` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-version-chain.md |
| `get_visible_memories` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-visible-memories.md |
| `get_world_state` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/get-world-state.md |
| `graph_size` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/graph-size.md |
| `health` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/health.md |
| `heuristic_count` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/heuristic-count.md |
| `hierarchy_tree` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/hierarchy-tree.md |
| `hybrid_search` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/hybrid-search.md |
| `index_embeddings` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/index-embeddings.md |
| `inspect_entity` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/inspect-entity.md |
| `invalidate_observation` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/invalidate-observation.md |
| `list_artifacts` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/list-artifacts.md |
| `list_decisions` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/list-decisions.md |
| `list_exclusion_rules` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/list-exclusion-rules.md |
| `list_heuristics` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/list-heuristics.md |
| `list_projects` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/list-projects.md |
| `list_refs` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/list-refs.md |
| `list_role_profiles` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/list-role-profiles.md |
| `list_saved_searches` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/list-saved-searches.md |
| `list_tag_aliases` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/list-tag-aliases.md |
| `list_tool_affordances` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/list-tool-affordances.md |
| `match_heuristics` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/match-heuristics.md |
| `match_procedure` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/match-procedure.md |
| `observations_as_of` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/observations-as-of.md |
| `observe_tool_cancel` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/observe-tool-cancel.md |
| `observe_tool_complete` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/observe-tool-complete.md |
| `observe_tool_error` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/observe-tool-error.md |
| `observe_tool_partial` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/observe-tool-partial.md |
| `observe_tool_start` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/observe-tool-start.md |
| `open_nodes` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/open-nodes.md |
| `predict_outcome` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/predict-outcome.md |
| `priority_dedup` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/priority-dedup.md |
| `propose_decision` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/propose-decision.md |
| `query_as_of` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/query-as-of.md |
| `query_natural_language` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/query-natural-language.md |
| `rbac_check_permission` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/rbac-check-permission.md |
| `rbac_list_assignments` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/rbac-list-assignments.md |
| `read_graph` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/read-graph.md |
| `record_heuristic_contradiction` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/record-heuristic-contradiction.md |
| `record_tool_outcome` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/record-tool-outcome.md |
| `refine_procedure` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/refine-procedure.md |
| `reindex` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/reindex.md |
| `reinforce_heuristic` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/reinforce-heuristic.md |
| `reinforce_memory` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/reinforce-memory.md |
| `resolve_ref` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/resolve-ref.md |
| `resolve_tag` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/resolve-tag.md |
| `score_salience` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/score-salience.md |
| `search_auto` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/search-auto.md |
| `search_by_date_range` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/search-by-date-range.md |
| `search_by_time` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/search-by-time.md |
| `search_cross_agent` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/search-cross-agent.md |
| `search_nodes` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/search-nodes.md |
| `search_nodes_ranked` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/search-nodes-ranked.md |
| `semantic_search` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/semantic-search.md |
| `smart_search` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/smart-search.md |
| `spell_rebuild_vocabulary` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/spell-rebuild-vocabulary.md |
| `spell_suggest` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/spell-suggest.md |
| `spell_vocabulary_size` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/spell-vocabulary-size.md |
| `split_transcript` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/split-transcript.md |
| `suggest_tool` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/suggest-tool.md |
| `supersede_decision` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/supersede-decision.md |
| `synthesize_collaborative_context` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/synthesize-collaborative-context.md |
| `timeline` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/timeline.md |
| `tool_observer_in_flight_count` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/tool-observer-in-flight-count.md |
| `validate_fact_against_world` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/validate-fact-against-world.md |
| `validate_graph` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/validate-graph.md |
| `visualize_graph` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/visualize-graph.md |
| `wake_up` | Read | Low | https://policylayer.com/tools/danielsimonjr-memory-mcp/wake-up.md |
| `accept_decision` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/accept-decision.md |
| `add_exclusion_rule` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/add-exclusion-rule.md |
| `add_heuristic` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/add-heuristic.md |
| `add_observations` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/add-observations.md |
| `add_procedure` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/add-procedure.md |
| `add_tag_alias` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/add-tag-alias.md |
| `add_tags` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/add-tags.md |
| `add_tags_to_multiple_entities` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/add-tags-to-multiple-entities.md |
| `add_working_memory` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/add-working-memory.md |
| `archive_entities` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/archive-entities.md |
| `compress_graph` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/compress-graph.md |
| `configure_distillation` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/configure-distillation.md |
| `create_artifact` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/create-artifact.md |
| `create_entities` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/create-entities.md |
| `create_relations` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/create-relations.md |
| `diary_write` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/diary-write.md |
| `distill_failure` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/distill-failure.md |
| `enable_entropy_filter` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/enable-entropy-filter.md |
| `export_decision_as_adr_markdown` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/export-decision-as-adr-markdown.md |
| `export_graph` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/export-graph.md |
| `import_graph` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/import-graph.md |
| `ingest` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/ingest.md |
| `invalidate_relation` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/invalidate-relation.md |
| `merge_entities` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/merge-entities.md |
| `merge_tags` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/merge-tags.md |
| `move_entity` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/move-entity.md |
| `normalize_observations` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/normalize-observations.md |
| `promote_working_memory` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/promote-working-memory.md |
| `rbac_assign_role` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/rbac-assign-role.md |
| `refresh_entity` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/refresh-entity.md |
| `register_agent` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/register-agent.md |
| `register_ref` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/register-ref.md |
| `reject_decision` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/reject-decision.md |
| `remove_tags` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/remove-tags.md |
| `replace_tag` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/replace-tag.md |
| `resolve_agent_conflict` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/resolve-agent-conflict.md |
| `rollback_operation` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/rollback-operation.md |
| `save_search` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/save-search.md |
| `session_checkpoint` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/session-checkpoint.md |
| `session_end` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/session-end.md |
| `session_restore` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/session-restore.md |
| `session_start` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/session-start.md |
| `set_agent_role` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/set-agent-role.md |
| `set_entity_parent` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/set-entity-parent.md |
| `set_governance_policy` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/set-governance-policy.md |
| `set_importance` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/set-importance.md |
| `set_memory_visibility` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/set-memory-visibility.md |
| `set_project_scope` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/set-project-scope.md |
| `summarize_entity` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/summarize-entity.md |
| `update_entity` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/update-entity.md |
| `update_profile` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/update-profile.md |
| `update_saved_search` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/update-saved-search.md |
| `upsert_project_context` | Write | Medium | https://policylayer.com/tools/danielsimonjr-memory-mcp/upsert-project-context.md |

## Tool descriptions

- `adaptive_reduce_memories` — Adaptively reduce a set of memories until their cognitive load falls below the configured threshold by removing low-salience redundant memories
- `cache_clear` — v12.5.0 \u2014 Bust all four global search caches. Idempotent; safe after manual graph edits to drop stale results.
- `clear_expired_memories` — Remove all working memories that have exceeded their TTL. Complements get_expired_entities (which lists but does not delete).
- `clear_heuristics` — v2.1.0 \u2014 Drop every heuristic (across all entities of type
- `clear_project_context` — v2.1.0 \u2014 Wipe the four arrays (facts/conventions/commands/glossary) for projectId; keeps the entity.
- `delete_entities` — Delete multiple entities from the knowledge graph
- `delete_observations` — Delete specific observations from entities
- `delete_relations` — Delete multiple relations from the knowledge graph
- `delete_saved_search` — Delete a saved search
- `deregister_ref` — Remove a stable alias (ref) from the RefIndex
- `forget_memory` — Forget (delete) observations matching the given content. Tries exact match first; falls back to semantic search at 0.85 similarity threshold if available. Supports dryRun to preview what would be deleted.
- `forget_weak_memories` — Bulk-delete memories that fell below a decay threshold. Unlike forget_memory (content match) or archive_entities (criteria-based move), this uses decay-based importance scoring.
- `invalidate_entity` — \u03B7.4.4 \u2014 Mark an entity as no longer valid by setting validUntil. Idempotent. Does not delete the entity \u2014 entity_as_of still returns it for past asOf timestamps. Orthogonal to v1.8 supersession.
- `rbac_revoke_role` — \u03B7.6.1 \u2014 Remove a specific role assignment. Matching is by agentId + role + resourceType (exact, including undefined).
- `remove_exclusion_rule` — v2.1.0 \u2014 Drop an exclusion rule by id. Does NOT restore previously deleted memories \u2014 the contract is
- `remove_heuristic` — v2.1.0 \u2014 Drop a heuristic by id.
- `remove_project_command` — v2.1.0 \u2014 Remove a command by name. Returns true if found.
- `remove_project_convention` — v2.1.0 \u2014 Remove a single convention. Returns true if found.
- `remove_project_fact` — v2.1.0 \u2014 Remove a single fact. Returns true if found.
- `remove_project_glossary_term` — v2.1.0 \u2014 Remove a glossary entry by term. Returns true if found.
- `remove_tag_alias` — Remove a tag alias
- `remove_tool_affordance` — v2.1.0 \u2014 Drop a tool-affordance record by toolName.
- `consolidate_session` — Run the full ConsolidationPipeline on a session: promote working memory, merge duplicates, summarize, and extract patterns. Unlike run_consolidation_now (which runs the dedup scheduler), this is a comprehensive session-scoped pipeline.
- `dream_run_now` — Run a single dream cycle immediately. Returns detailed per-phase results.
- `dream_start` — Start the DreamEngine background memory maintenance. Runs 8 phases (temporal anchoring, freshness sweep, entropy pruning, consolidation, compression, entity enrichment, pattern promotion, graph hygiene) on a configurable interval.
- `dream_stop` — Stop the DreamEngine background process.
- `end_session` — End a session and trigger failure distillation if the session outcome was a failure
- `parse_adr_markdown` — v2.1.0 \u2014 Parse a hand-written or previously-exported ADR markdown into a DecisionInput shape (static; no persistence). Returns null when required Context or Decision sections are missing.
- `run_consolidation_now` — Run a consolidation cycle on demand, independently of the scheduled interval
- `run_decay_cycle` — Run a single pass of time-based importance decay across all agent memories. Returns count of decayed and forgotten memories.
- `start_consolidation` — Start the background consolidation scheduler that periodically deduplicates and merges memories
- `stop_consolidation` — Stop the background consolidation scheduler
- `adaptive_retrieve` — 3B.5 \u2014 Run iterative query-rewriting retrieval. Up to maxRounds of (search \u2192 score coverage \u2192 rewrite). Stops early when coverage \u2265 minCoverage or no expansion tokens. Pure symbolic \u2014 no LLM provider required.
- `analyze_cognitive_load` — Analyze the cognitive load of a set of entities: token density, redundancy ratio, diversity score, and composite load score
- `analyze_query` — Analyze a search query to extract entities, temporal references, question type, and complexity. Useful for understanding query structure before searching.
- `append_project_command` — v2.1.0 \u2014 Append a documented project command (dedup by name).
- `append_project_convention` — v2.1.0 \u2014 Append one convention to a project context (auto-creates; dedups).
- `append_project_fact` — v2.1.0 \u2014 Append one fact to a project context (auto-creates the record on first call; dedups).
- `append_project_glossary_term` — v2.1.0 \u2014 Append a glossary term (dedup by term).
- `audit_history` — Get the full audit history for a specific entity in chronological order
- `audit_query` — Query the audit log for operations matching filter criteria (operation type, agent ID, entity name, date range)
- `auto_link_observations` — Detect entity mentions in observation text and suggest cross-reference relations. Unlike normalize_observations (which resolves pronouns/dates), this finds entity name mentions.
- `boolean_search` — Perform boolean search with AND, OR, NOT operators
- `cache_stats` — v12.5.0 \u2014 Per-tier snapshot of the global search caches (basic / ranked / boolean / fuzzy) showing hits / misses / size / hitRate. Process-local \u2014 every fresh server process starts at zero.
- `check_exclusion` — v2.1.0 \u2014 Check whether content would be blocked by any active forward-blocking rule. Returns {blocked, ruleId?, reason?}. Past-only rules are skipped.
- `check_freshness` — Calculate the freshness score (0\u20131) for a specific entity based on its TTL and confidence
- `check_graph` — v12.5.0 \u2014 Detect orphan relations (from/to references a missing entity), missing parents (entity.parentId references a missing entity), and hierarchy cycles. Reports findings. With apply=true, deletes orphan relations and clears mis…
- `compress_context` — Compress text using n-gram abbreviation with a legend for token-efficient context loading. Unlike format_with_salience_budget (which allocates token budget), this does text-level compression.
- `compute_entropy` — Compute the Shannon entropy of a text string (in bits per character)
- `confirm_memory` — Boost a memory
- `counterfactual_query` — 3B.6 \u2014
- `detect_causal_cycles` — 3B.6 \u2014 Detect cycles in the causal subgraph rooted at seed. CAVEAT: treats prevents as a directed edge, not as logical negation \u2014 prevents+enables triangles ARE flagged.
- `detect_contradictions` — Find conflicting observations within an entity using semantic similarity
- `detect_heuristic_conflicts` — v2.1.0 \u2014 Pair-wise overlap/contradiction detection across stored heuristics. Surfaces overlap (same condition tokens, different actions) and contradiction (opposing actions on overlapping conditions; negation prefixes such as
- `detect_patterns` — Detect recurring token-based patterns across observations of a given entity type
- `diag` — v12.5.0 \u2014 Runtime + storage diagnostic snapshot: node version, platform, storage path/type/size, entity + relation counts, ISO timestamp. Good first call when something feels off.
- `diary_read` — Read recent diary entries for a specialist agent. Returns entries in reverse chronological order. Optionally filter by topic.
- `entity_as_of` — \u03B7.4.4 \u2014 Time-travel query for an entity. Returns the entity at a given point in time, or null if it was already invalidated then. An entity is valid at asOf when validFrom <= asOf AND (validUntil is undefined OR validUntil >= a…
- `entity_neighbors` — v12.5.0 \u2014 Incoming + outgoing relations for one entity, plus in/out degree counts. Lighter than inspect_entity when you only need the graph-topology view.
- `entity_timeline` — \u03B7.4.4 \u2014 Get all temporal versions of an entity in chronological order (by validFrom asc, with unbounded entities last). Returns the v1.8 supersession chain when one exists.
- `estimate_query_cost` — Estimate execution cost (time, tokens) for all available search methods on a given query. Unlike analyze_query (which extracts entities/complexity), this predicts per-method performance.
- `execute_saved_search` — Execute a previously saved search by name
- `extract_facts` — Extract structured facts from observation text using rule-based extraction
- `find_all_paths` — Find all paths between two entities up to a maximum depth
- `find_causes` — 3B.6 \u2014 Find causal chains ending at the named effect. Searches paths from candidate causes via causal relation types (causes/enables/prevents/precedes/correlates). Sorted by score = product of per-edge causalStrength.
- `find_decisions_by_context` — v2.1.0 \u2014 Substring search across context, decision, and consequences fields.
- `find_duplicate_observations` — v2.1.0 \u2014 Find verbatim duplicate observation strings across distinct entities (SHA-256 exact tier). Complementary to MemoryEngine.checkDuplicate (turn-level) and CompressionManager.findDuplicates (whole-entity). Report-only.
- `find_duplicates` — Find potential duplicate entities based on similarity
- `find_effects` — 3B.6 \u2014 Find causal chains starting at the named cause and reaching any candidate effect. Symmetric counterpart to find_causes.
- `find_jaccard_duplicate_observations` — v2.1.0 \u2014 Find near-duplicate observation strings across distinct entities via token-Jaccard similarity with union-find grouping. More expensive than the exact tier (O(o\xB2)); opt-in for higher recall.
- `find_matching_memories_for_rule` — v2.1.0 \u2014 Dry-run preview: return entities whose observations would match the candidate exclusion pattern. Does NOT persist the rule.
- `find_shortest_path` — Find the shortest path between two entities in the knowledge graph
- `find_similar_entities` — Find entities similar to a given entity using semantic similarity. Requires embedding provider.
- `format_project_context_for_llm` — v2.1.0 \u2014 Render the ProjectContextRecord as a prose summary suitable for the wakeUp L0 layer or a system prompt. Honors budgetChars with ellipsis truncation.
- `format_with_salience_budget` — Format memories for LLM prompt consumption with proportional token allocation based on salience scores
- `freshness_report` — Generate a freshness report across all entities showing fresh, stale, and expired counts
- `fuzzy_search` — Perform fuzzy search with typo tolerance
- `get_aliases_for_tag` — Get all aliases for a canonical tag
- `get_ancestors` — Get all ancestor entities of an entity
- `get_artifact` — Retrieve an artifact entity by its stable ref or entity name
- `get_centrality` — Calculate centrality metrics for entities in the graph
- `get_children` — Get all child entities of an entity
- `get_connected_components` — Find all connected components in the knowledge graph
- `get_context_profile` — Get a ContextWindowManager profile configuration (salience weights, retrieval strategy). Unlike get_profile (user profile facts), this returns context-aware retrieval settings.
- `get_decayed_memories` — List memories whose importance has fallen below a threshold due to time-based decay. Unlike get_stale_entities (which uses freshness timestamps), this uses decay engine importance calculations.
- `get_decision` — v2.1.0 \u2014 Sync lookup by DecisionId.
- `get_decision_chain` — v2.1.0 \u2014 Walk the supersedes link backward from the supplied id to the original proposal. Returns chain oldest-first; cycle-protected.
- `get_descendants` — Get all descendant entities of an entity
- `get_entity_depth` — Get the depth of an entity in the hierarchy
- `get_entity_versions` — Get the latest version of an entity. If the entity has been superseded by newer versions (via contradiction detection), returns the most recent one.
- `get_expired_entities` — Return all entities that have passed their TTL expiry
- `get_graph_stats` — Get statistics about the knowledge graph
- `get_heuristic` — v2.1.0 \u2014 Sync lookup by HeuristicId.
- `get_parent` — Get the parent entity of an entity
- `get_procedure` — 3B.4 \u2014 Load a procedure by id.
- `get_procedure_step` — 3B.4 \u2014 Load a specific step from a procedure by 1-indexed order, OR get the next step relative to currentOrder.
- `get_profile` — Get the user profile. Returns static facts (long-lived preferences) and dynamic facts (recent session context). Profiles are scoped by projectId.
- `get_project_context` — v2.1.0 \u2014 Sync lookup of the ProjectContextRecord for projectId.
- `get_project_scope` — Returns the active project scope for this server session (set via set_project_scope). Returns { projectId } where projectId is null when no scope is active.
- `get_root_entities` — Get all root entities (entities without parents)
- `get_search_suggestions` — Get search suggestions for a query
- `get_stale_entities` — Return all entities whose freshness score is below a threshold
- `get_subtree` — Get entity and all its descendants as a subgraph
- `get_tool_affordance_stats` — v2.1.0 \u2014 Flat rolling stats for a tool: success_rate, total_calls, common_failure_modes, avg_duration_ms.
- `get_version_chain` — Get all versions of an entity in its version chain. Returns versions sorted by version number ascending. Works from any entity in the chain (resolves to root automatically).
- `get_visible_memories` — Get all memories visible to a specific agent based on visibility rules and trust levels
- `get_world_state` — 3B.7 \u2014 Capture a fresh snapshot of the live graph: entitiesByName + takenAt timestamp + size. Capped at maxSnapshotSize (default 1000); over-cap prefers high-importance entities.
- `graph_size` — v12.5.0 \u2014 Graph + storage footprint: entity / relation / observation counts, distinct tag count, avg observations per entity, on-disk byte size + JSONL line count.
- `health` — v12.5.0 \u2014 Fast integrity checks: storage:loadGraph, entities:distinct-names, relations:no-orphans, hierarchy:no-cycles-no-missing-parents. Returns per-check duration; ok=false when any check fails.
- `heuristic_count` — v2.1.0 \u2014 Count of stored heuristics.
- `hierarchy_tree` — v12.5.0 \u2014 Hierarchy tree as nested JSON. With an explicit root, returns just that subtree; without, returns all root entities. Useful for visualising parent/child structure.
- `hybrid_search` — Search using combined semantic, lexical, and metadata signals. Provides better recall than single-signal search by fusing multiple relevance signals.
- `index_embeddings` — Index all entities for semantic search. Call this after adding entities to enable semantic search. Requires embedding provider.
- `inspect_entity` — v12.5.0 \u2014 Verbose snapshot of one entity: observations (resolved via ObservationManager so the column-store sidecar is consulted), outgoing + incoming relations, tags, importance, timestamps, parentId, immediate children, full ances…
- `invalidate_observation` — \u03B7.4.4 \u2014 Mark a specific observation on an entity as no longer valid. Creates a parallel observationMeta[] entry if absent. Throws if observation not found on entity.
- `list_artifacts` — List all artifact entities, with optional filtering by tool name, type, or date
- `list_decisions` — v2.1.0 \u2014 List decisions, optionally filtered by status / sourceSessionId / sourceProjectId.
- `list_exclusion_rules` — v2.1.0 \u2014 Return every registered ExclusionRule.
- `list_heuristics` — v2.1.0 \u2014 All registered heuristics.
- `list_projects` — List all distinct project IDs in the knowledge graph. Returns sorted array of projectId values, excluding global/unscoped entities.
- `list_refs` — List all registered refs in the RefIndex, optionally filtered by entity name
- `list_role_profiles` — List all built-in role profiles with their salience weight and context budget configurations
- `list_saved_searches` — List all saved searches
- `list_tag_aliases` — List all tag aliases
- `list_tool_affordances` — v2.1.0 \u2014 All recorded ToolAffordanceRecords.
- `match_heuristics` — v2.1.0 \u2014 Find heuristics whose condition matches input via Jaccard token-overlap \xD7 confidence; sorted descending, then by priority.
- `match_procedure` — 3B.4 \u2014 Token-overlap match a context description against stored procedures. Returns ranked matches with Jaccard-like scores.
- `observations_as_of` — \u03B7.4.4 \u2014 Get observations valid at a given point in time. Observations with no observationMeta entry are treated as unbounded (always-valid).
- `observe_tool_cancel` — v2.1.0 \u2014 Drop an in-flight observation without recording (e.g. user cancelled). No-op on unknown callId.
- `observe_tool_complete` — v2.1.0 \u2014 Record successful completion. Computes durationMs from observe_tool_start. No-op on unknown callId.
- `observe_tool_error` — v2.1.0 \u2014 Record failure with an error message. No-op on unknown callId.
- `observe_tool_partial` — v2.1.0 \u2014 Record a partial result (tool returned a usable but incomplete result). No-op on unknown callId.
- `observe_tool_start` — v2.1.0 \u2014 Begin observing a tool call. Returns a callId the caller threads through observe_tool_complete / observe_tool_error / observe_tool_partial / observe_tool_cancel. Emits toolCall:start on the observer EventEmitter.
- `open_nodes` — Open specific nodes by their names
- `predict_outcome` — 3B.7 \u2014 Predict downstream effects of an action by walking the causal subgraph. Delegates to CausalReasoner.findEffects.
- `priority_dedup` — Smart priority-based deduplication that keeps the highest-scored entity per duplicate group (importance > recency > observation count > tags)
- `propose_decision` — v2.1.0 \u2014 Propose a new architecture-decision-record (ADR-equivalent). Creates a
- `query_as_of` — Query relations valid at a specific point in time. Returns only relations where validFrom <= date AND (validUntil is undefined OR validUntil >= date). Time-travel query for temporal knowledge graphs.
- `query_natural_language` — Decompose a natural language query into a structured search plan and return matching entities
- `rbac_check_permission` — \u03B7.6.1 \u2014 Check whether an agent can perform an action on a resource type. Falls back to defaultRole=reader for agents with no assignments.
- `rbac_list_assignments` — \u03B7.6.1 \u2014 List role assignments for an agent (active or all).
- `read_graph` — Read the entire knowledge graph
- `record_heuristic_contradiction` — v2.1.0 \u2014 Record a counter-example: bumps contradictions; lowers confidence (new = old - old*0.2). OCC-protected.
- `record_tool_outcome` — v2.1.0 \u2014 Record a single tool-call outcome directly via ToolAffordanceManager (bypasses ToolCallObserver). Creates the record on first call; appends to rolling window on subsequent. Throws
- `refine_procedure` — 3B.4 \u2014 Apply caller feedback after a procedure execution. Increments executionCount and updates successRate via EWMA (\u03B1=0.2).
- `reindex` — v12.5.0 \u2014 Rebuild search-side indexes that may have drifted (TF-IDF/BM25 ranked + spell-checker vocabulary). Pass ranked=false or spell=false to scope. Returns per-target ok flag + durationMs.
- `reinforce_heuristic` — v2.1.0 \u2014 Record a successful application: bumps support; raises confidence asymptotically (new = old + (1-old)*0.1). OCC-protected \u2014 surfaces
- `reinforce_memory` — Boost a memory
- `resolve_ref` — Resolve a stable alias (ref) to its entity name via the RefIndex
- `resolve_tag` — Resolve a tag to its canonical form
- `score_salience` — Calculate 5-component relevance score for an entity: baseImportance, recencyBoost, frequencyBoost, contextRelevance, noveltyBoost. Use with format_with_salience_budget to score then format.
- `search_auto` — Automatically select and execute the best search method based on query characteristics and graph size. Returns results along with the selected method and reasoning.
- `search_by_date_range` — Search entities within a date range, with optional filtering by entity type and tags. At least one of startDate or endDate should be provided.
- `search_by_time` — Search entities using a natural language time expression (e.g.
- `search_cross_agent` — Search across agent memories with trust-weighted scoring and visibility filtering
- `search_nodes` — Search for nodes in the knowledge graph based on query string, with optional tag and importance filtering
- `search_nodes_ranked` — Perform TF-IDF ranked search
- `semantic_search` — Search for entities using semantic similarity. Requires embedding provider to be configured via MEMORY_EMBEDDING_PROVIDER.
- `smart_search` — Intelligent search with automatic query planning and reflection-based refinement. Iteratively improves results until adequate.
- `spell_rebuild_vocabulary` — v2.1.0 \u2014 Force a rebuild of the SpellChecker vocabulary + n-gram index. Call after bulk entity churn; the lazy cache is otherwise correct for low-churn graphs.
- `spell_suggest` — v2.1.0 \u2014 Suggest close matches for a (potentially misspelled) query over the vocabulary of entity names + tag values. Two-stage: bigram-Jaccard pre-filter (NGramIndex) + Levenshtein re-rank.
- `spell_vocabulary_size` — v2.1.0 \u2014 Return the count of unique terms in the SpellChecker vocabulary (entity names + tag values by default). Mostly diagnostic.
- `split_transcript` — Split concatenated multi-session transcripts into per-session chunks via delimiter detection. Preprocessing step before ingest.
- `suggest_tool` — v2.1.0 \u2014 Suggest tools matching a task hint, ranked by successRate \xD7 recency factor (1.0 at \u22641d, linearly decays to 0.1 at \u226530d).
- `supersede_decision` — v2.1.0 \u2014 Mark an accepted decision as superseded by another. illegal-transition when target is not accepted. not-found when target or replacement is missing.
- `synthesize_collaborative_context` — Synthesize context by traversing the graph neighbourhood from a seed entity and merging high-salience neighbors across agents
- `timeline` — Get chronological relation history for an entity. Returns ALL relations (current and expired) sorted by validFrom ascending. Shows the full story of an entity over time.
- `tool_observer_in_flight_count` — v2.1.0 \u2014 Diagnostic: number of in-flight (started but not yet completed) tool-call observations.
- `validate_fact_against_world` — 3B.7 \u2014 Validate a candidate observation against a target entity. Delegates to MemoryValidator.validateConsistency. Returns null if no validator is wired.
- `validate_graph` — Validate the knowledge graph for integrity issues
- `visualize_graph` — Generate a self-contained interactive HTML page with a D3.js force-directed graph visualization. Nodes are colored by type and sized by importance.
- `wake_up` — Initialize a 4-layer memory stack context (~600 tokens). L0 loads profile identity, L1 loads top entities by importance. Returns a compact boot context for LLM consumption.
- `accept_decision` — v2.1.0 \u2014 Transition a proposed decision to accepted. Returns one of: accepted | already-accepted | not-found | illegal-transition | conflict | vanished-mid-update.
- `add_exclusion_rule` — v2.1.0 \u2014 Add a content-pattern exclusion rule (do_not_remember). Hard-deletes existing matches (per
- `add_heuristic` — v2.1.0 \u2014 Register a new condition\u2192action heuristic. Storage-backed; default confidence 0.5. Pass an explicit content-addressed id (e.g. h_<sha256(condition|action)>) for caller-managed idempotency.
- `add_observations` — Add new observations to existing entities in the knowledge graph
- `add_procedure` — 3B.4 \u2014 Persist a new procedural memory (executable how-to sequence). Steps are ordered (1-indexed) with optional fallback chains. Auto-generates id when omitted. Distinct from semantic facts and episodic events.
- `add_tag_alias` — Add a tag alias (synonym mapping)
- `add_tags` — Add tags to an entity
- `add_tags_to_multiple_entities` — Add the same tags to multiple entities at once
- `add_working_memory` — Create a TTL-based short-term working memory entry scoped to a session. Working memories auto-expire and can be promoted to long-term storage.
- `archive_entities` — Archive old or low-importance entities
- `compress_graph` — Compress the graph by merging similar entities
- `configure_distillation` — Configure the distillation pipeline policy (default, noop, or none) that filters memories before context formatting
- `create_artifact` — Create an artifact entity (tool output, code snippet, API response, etc.) with a stable auto-generated ref
- `create_entities` — Create multiple new entities in the knowledge graph. Supports v1.6 freshness (ttl/confidence), v1.8 project scoping, and \u03B7.4.4 bitemporal validity (validFrom/validUntil/observationMeta).
- `create_relations` — Create multiple new relations between entities in the knowledge graph. Relations should be in active voice
- `diary_write` — Write a timestamped diary entry for a specialist agent. Each agent gets its own persistent diary (entity: diary-{agentId}). Use for code review findings, architecture decisions, ops incidents, etc.
- `distill_failure` — Distill lessons from a failed session by tracing the causal chain and extracting actionable insights
- `enable_entropy_filter` — Enable or disable the Shannon entropy gate that drops low-information memories during consolidation
- `export_decision_as_adr_markdown` — v2.1.0 \u2014 Render a stored decision as ADR-format markdown (# title, Status, Context, Decision, Consequences bullet list, Alternatives bullet list, optional Supersedes link).
- `export_graph` — Export knowledge graph in various formats with optional brotli compression and streaming for large graphs. Supports W3C Linked Data formats (turtle, rdf-xml, json-ld) added in \u03B7.5.4.
- `import_graph` — Import knowledge graph from various formats
- `ingest` — Ingest pre-normalized conversation data into the knowledge graph. Chunks messages by exchange pairs (user+assistant), creates entities with verbatim observations. Format-agnostic: normalize chat exports before calling.
- `invalidate_relation` — Mark a relation as no longer valid. Sets the validUntil timestamp on the matching active relation. Use for temporal facts that have ended (e.g.,
- `merge_entities` — Merge multiple entities into one
- `merge_tags` — Merge two tags into a target tag across all entities
- `move_entity` — Move an entity to a new parent
- `normalize_observations` — Normalize entity observations by resolving pronouns and anchoring relative dates. Improves search matching quality.
- `promote_working_memory` — Promote a working memory entry to long-term episodic or semantic storage
- `rbac_assign_role` — \u03B7.6.1 \u2014 Grant a role to an agent. Roles: reader (read), writer (read+write), admin (read+write+delete), owner (all four). Optional resourceType narrows to one type; optional scope narrows to a name prefix; optional validUntil e…
- `refresh_entity` — Reset freshness for an entity by updating its creation timestamp to now and resetting confidence to 1.0
- `register_agent` — Register an agent for multi-agent operations with identity metadata. Unlike set_agent_role (which applies a role profile), this registers agent identity with type, trust level, and capabilities.
- `register_ref` — Register a stable alias (ref) pointing to an entity name in the RefIndex for O(1) lookups
- `reject_decision` — v2.1.0 \u2014 Transition a proposed decision to rejected with a reason. Returns rejected | already-rejected | not-found | illegal-transition | conflict | vanished-mid-update.
- `remove_tags` — Remove tags from an entity
- `replace_tag` — Replace a tag with a new tag across all entities
- `resolve_agent_conflict` — Resolve a conflict between two agent memories using a specified strategy
- `rollback_operation` — Reverse a specific committed operation using its audit entry ID (restores entity to before-snapshot)
- `save_search` — Save a search query for later reuse
- `session_checkpoint` — Create a checkpoint snapshot of the current session state for later restore
- `session_end` — End an agent session via AgentMemoryManager with summary generation and working memory promotion. Unlike end_session (which handles failure distillation on graph entities), this manages the full agent session lifecycle.
- `session_restore` — Restore a session from a previously created checkpoint
- `session_start` — Start a new agent session via AgentMemoryManager. Tracks session lifecycle, enables working memory, and supports session chaining. Returns a SessionEntity with id and timestamps.
- `set_agent_role` — Apply a built-in role profile (researcher, planner, executor, reviewer, coordinator) to adjust salience weights and context budgets
- `set_entity_parent` — Set the parent of an entity for hierarchical organization
- `set_governance_policy` — Set the active governance policy controlling which write operations (create, update, delete) are permitted for future requests
- `set_importance` — Set the importance score of an entity (0-10)
- `set_memory_visibility` — Set the visibility of a memory entity for multi-agent access control. Auto-promotes plain entities to AgentEntity (stamps agentId/memoryType/etc.) instead of failing silently. Supports \u03B7.5.5.b extensions: allowedRoles (role gate), v…
- `set_project_scope` — Set the active project scope for this server session. New entities passed without an explicit projectId may be auto-stamped with this value by scope-aware handlers; pass an empty string to clear the scope. Returns { projectId } where pro…
- `summarize_entity` — Auto-summarize redundant observations within a single entity. Unlike compress_graph (which merges similar entities), this condenses observations within one entity.
- `update_entity` — \u03B7.5.5.c \u2014 Update an entity with optional optimistic concurrency control. Pass expectedVersion to assert the live entity is at that version; throws VersionConflictError on mismatch. Omit for legacy last-write-wins. OCC-guarded w…
- `update_profile` — Add a fact to the user profile. Static facts are long-lived (preferences, role, tools). Dynamic facts are recent (current project, active work).
- `update_saved_search` — Update a saved search
- `upsert_project_context` — v2.1.0 \u2014 Merge structured project knowledge into the ProjectContextRecord for

## Related servers

- UnClick (1658 tools) — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server.md
- Nodebench (824 tools) — https://policylayer.com/tools/io-github-homenshum-nodebench.md
- Yaver (812 tools) — https://policylayer.com/tools/io-github-kivanccakmak-yaver.md
- Binance MCP Server (734 tools) — https://policylayer.com/tools/nirholas-binance-mcp.md
- Crow (587 tools) — https://policylayer.com/tools/kh0pper-crow.md
- Fortimanager (584 tools) — https://policylayer.com/tools/jmpijll-fortimanager-mcp.md
- TinyFn (572 tools) — https://policylayer.com/tools/io-tinyfn-tinyfn.md
- Mcp (571 tools) — https://policylayer.com/tools/io-github-2s-io-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=danielsimonjr-memory-mcp · API: https://policylayer.com/registry/api · Recommended policies for every tool: https://policylayer.com/policies/danielsimonjr-memory-mcp
