Enhanced Knowledge Graph Memory Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MEMORY_FILE_PATH | No | Path to the memory storage JSONL file (default: memory.jsonl in the server directory) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_entitiesB | Create multiple new entities in the knowledge graph. Supports v1.6 freshness (ttl/confidence), v1.8 project scoping, and η.4.4 bitemporal validity (validFrom/validUntil/observationMeta). |
| delete_entitiesC | Delete multiple entities from the knowledge graph |
| read_graphB | Read the entire knowledge graph |
| open_nodesC | Open specific nodes by their names |
| list_projectsA | List all distinct project IDs in the knowledge graph. Returns sorted array of projectId values, excluding global/unscoped entities. |
| get_entity_versionsA | 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_version_chainA | 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). |
| create_relationsC | Create multiple new relations between entities in the knowledge graph. Relations should be in active voice |
| delete_relationsC | Delete multiple relations from the knowledge graph |
| invalidate_relationA | 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., "Kai no longer works on Orion"). |
| query_as_ofA | 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. |
| timelineB | 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. |
| add_observationsC | Add new observations to existing entities in the knowledge graph |
| delete_observationsC | Delete specific observations from entities |
| normalize_observationsC | Normalize entity observations by resolving pronouns and anchoring relative dates. Improves search matching quality. |
| search_nodesC | Search for nodes in the knowledge graph based on query string, with optional tag and importance filtering |
| search_by_date_rangeB | 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_nodes_rankedC | Perform TF-IDF ranked search |
| boolean_searchC | Perform boolean search with AND, OR, NOT operators |
| fuzzy_searchC | Perform fuzzy search with typo tolerance |
| get_search_suggestionsC | Get search suggestions for a query |
| search_autoB | Automatically select and execute the best search method based on query characteristics and graph size. Returns results along with the selected method and reasoning. |
| forget_memoryA | 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. |
| hybrid_searchA | Search using combined semantic, lexical, and metadata signals. Provides better recall than single-signal search by fusing multiple relevance signals. v3 additive options: graphWeight adds a graph-connectivity (PageRank) channel, expandNeighbors appends one-hop neighbors of top results, explain annotates results with evidence paths from query anchors, lookFor ranks expansion neighbors by a free-text connection description. |
| analyze_queryA | Analyze a search query to extract entities, temporal references, question type, and complexity. Useful for understanding query structure before searching. |
| smart_searchC | Intelligent search with automatic query planning and reflection-based refinement. Iteratively improves results until adequate. |
| save_searchC | Save a search query for later reuse |
| execute_saved_searchC | Execute a previously saved search by name |
| list_saved_searchesB | List all saved searches |
| delete_saved_searchC | Delete a saved search |
| update_saved_searchC | Update a saved search |
| add_tagsC | Add tags to an entity |
| remove_tagsC | Remove tags from an entity |
| set_importanceC | Set the importance score of an entity (0-10) |
| add_tags_to_multiple_entitiesC | Add the same tags to multiple entities at once |
| replace_tagC | Replace a tag with a new tag across all entities |
| merge_tagsC | Merge two tags into a target tag across all entities |
| add_tag_aliasC | Add a tag alias (synonym mapping) |
| list_tag_aliasesB | List all tag aliases |
| remove_tag_aliasC | Remove a tag alias |
| get_aliases_for_tagC | Get all aliases for a canonical tag |
| resolve_tagC | Resolve a tag to its canonical form |
| set_entity_parentB | Set the parent of an entity for hierarchical organization |
| get_childrenC | Get all child entities of an entity |
| get_parentC | Get the parent entity of an entity |
| get_ancestorsC | Get all ancestor entities of an entity |
| get_descendantsC | Get all descendant entities of an entity |
| get_subtreeC | Get entity and all its descendants as a subgraph |
| get_root_entitiesB | Get all root entities (entities without parents) |
| get_entity_depthC | Get the depth of an entity in the hierarchy |
| move_entityC | Move an entity to a new parent |
| get_graph_statsC | Get statistics about the knowledge graph |
| validate_graphB | Validate the knowledge graph for integrity issues |
| find_duplicatesC | Find potential duplicate entities based on similarity |
| merge_entitiesC | Merge multiple entities into one |
| compress_graphC | Compress the graph by merging similar entities |
| archive_entitiesC | Archive old or low-importance entities |
| find_shortest_pathC | Find the shortest path between two entities in the knowledge graph |
| find_all_pathsC | Find all paths between two entities up to a maximum depth |
| get_connected_componentsB | Find all connected components in the knowledge graph |
| get_centralityC | Calculate centrality metrics for entities in the graph |
| import_graphC | Import knowledge graph from various formats |
| export_graphA | 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 η.5.4. |
| ingestA | 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. |
| semantic_searchC | Search for entities using semantic similarity. Requires embedding provider to be configured via MEMORY_EMBEDDING_PROVIDER. |
| find_similar_entitiesC | Find entities similar to a given entity using semantic similarity. Requires embedding provider. |
| index_embeddingsA | Index all entities for semantic search. Call this after adding entities to enable semantic search. Requires embedding provider. |
| register_refA | Register a stable alias (ref) pointing to an entity name in the RefIndex for O(1) lookups |
| resolve_refB | Resolve a stable alias (ref) to its entity name via the RefIndex |
| deregister_refB | Remove a stable alias (ref) from the RefIndex |
| list_refsA | List all registered refs in the RefIndex, optionally filtered by entity name |
| create_artifactB | Create an artifact entity (tool output, code snippet, API response, etc.) with a stable auto-generated ref |
| get_artifactB | Retrieve an artifact entity by its stable ref or entity name |
| list_artifactsB | List all artifact entities, with optional filtering by tool name, type, or date |
| search_by_timeB | Search entities using a natural language time expression (e.g. "last week", "yesterday", "in January") |
| configure_distillationA | Configure the distillation pipeline policy (default, noop, or none) that filters memories before context formatting |
| check_freshnessB | Calculate the freshness score (0–1) for a specific entity based on its TTL and confidence |
| get_stale_entitiesB | Return all entities whose freshness score is below a threshold |
| get_expired_entitiesB | Return all entities that have passed their TTL expiry |
| refresh_entityB | Reset freshness for an entity by updating its creation timestamp to now and resetting confidence to 1.0 |
| freshness_reportB | Generate a freshness report across all entities showing fresh, stale, and expired counts |
| query_natural_languageC | Decompose a natural language query into a structured search plan and return matching entities |
| set_governance_policyA | Set the active governance policy controlling which write operations (create, update, delete) are permitted for future requests |
| audit_queryB | Query the audit log for operations matching filter criteria (operation type, agent ID, entity name, date range) |
| audit_historyA | Get the full audit history for a specific entity in chronological order |
| rollback_operationA | Reverse a specific committed operation using its audit entry ID (restores entity to before-snapshot) |
| set_agent_roleB | Apply a built-in role profile (researcher, planner, executor, reviewer, coordinator) to adjust salience weights and context budgets |
| list_role_profilesA | List all built-in role profiles with their salience weight and context budget configurations |
| enable_entropy_filterB | Enable or disable the Shannon entropy gate that drops low-information memories during consolidation |
| compute_entropyB | Compute the Shannon entropy of a text string (in bits per character) |
| start_consolidationB | Start the background consolidation scheduler that periodically deduplicates and merges memories |
| stop_consolidationA | Stop the background consolidation scheduler |
| run_consolidation_nowA | Run a consolidation cycle on demand, independently of the scheduled interval |
| format_with_salience_budgetB | Format memories for LLM prompt consumption with proportional token allocation based on salience scores |
| synthesize_collaborative_contextA | Synthesize context by traversing the graph neighbourhood from a seed entity and merging high-salience neighbors across agents |
| distill_failureB | Distill lessons from a failed session by tracing the causal chain and extracting actionable insights |
| end_sessionA | End a session and trigger failure distillation if the session outcome was a failure |
| get_profileB | Get the user profile. Returns static facts (long-lived preferences) and dynamic facts (recent session context). Profiles are scoped by projectId. |
| update_profileA | Add a fact to the user profile. Static facts are long-lived (preferences, role, tools). Dynamic facts are recent (current project, active work). |
| diary_writeA | 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/danielsimonjr/memory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server