Neo4j Agent Memory Server
About
Neo4j Agent Memory enables AI assistants to build and query persistent knowledge graphs. Store information as nodes, create meaningful relationships between them, and search across your connected data. Unlike simple key-value stores, this graph-based approach captures how information relates, providing rich context for more intelligent responses.
Key Features:
- Store facts as nodes - people, places, organizations, projects, events
- Connect with semantic relationships - KNOWS, WORKS_AT, CREATED, MANAGES
- Word-tokenized search - finds "John" OR "Smith" when searching "John Smith"
- Date filtering - find memories created after specific dates
- Multi-hop traversal - explore connections up to 3 levels deep
- Automatic timestamps - track when memories were created
- Flexible schema - use any label or property you need
- Relationship properties - add context like "since: 2023" to connections
- 10 specialized tools - search, create, update, delete memories and connections
- LLM-friendly design - simple atomic operations, AI handles the intelligence
Build persistent, queryable knowledge graphs that grow smarter over time.
Capabilities
search_memories
Search and retrieve memories from the knowledge graph
search_memories
Search and retrieve memories from the knowledge graph
Parameters
Relationship depth to include, defaults to 1
Filter by memory label
Maximum results to return, defaults to 10, max 200
Search text to find in any property (searches for ANY word - e.g. "Ben Weeks" finds memories containing "Ben" OR "Weeks")
Sort order such as created_at DESC, name ASC
ISO date string to filter memories created after this date (e.g., "2024-01-01" or "2024-01-01T00:00:00Z")
create_memory
Create a new memory in the knowledge graph. Consider that the memory might already exist, so Search → Create → Connect (its important to try and connect memories)
create_memory
Create a new memory in the knowledge graph. Consider that the memory might already exist, so Search → Create → Connect (its important to try and connect memories)
Parameters
Memory label in lowercase (use list_memory_labels first to check existing labels for consistency) - common: person, place, organization, project, event, topic, object, animal, plant, food, activity, media, skill, document, meeting, task, habit, health, vehicle, tool, idea, goal
Information to store about this memory (use "name" as primary identifier, e.g. {name: "John Smith", age: 30, occupation: "Engineer"})
create_connection
Create a connection between two memories (its good to have connected memories)
create_connection
Create a connection between two memories (its good to have connected memories)
Parameters
Relationship type such as KNOWS, WORKS_ON, LIVES_IN, HAS_SKILL, PARTICIPATES_IN
Optional relationship metadata (e.g. {since: "2023-01", role: "Manager", status: "active"})
ID of the target memory
ID of the source memory
update_memory
Update properties of an existing memory such as adding more detail or make a change when you find out something new
update_memory
Update properties of an existing memory such as adding more detail or make a change when you find out something new
Parameters
ID of the memory to update
Properties to update/add
update_connection
Update properties of an existing connection between memories
update_connection
Update properties of an existing connection between memories
Parameters
Relationship type to identify which connection to update (e.g. WORKS_AT, KNOWS, MANAGES)
Properties to update/add (e.g. {status: "completed", end_date: "2024-01"})
ID of the target memory
ID of the source memory