Neo4j Agent Memory Server

Neo4j Agent Memory Server

@knowall-ai/mcp-neo4j-agent-memory
last deployed 2 months ago
Local
Quick Setup
Open Source

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

1 / 2

search_memories

Search and retrieve memories from the knowledge graph

Parameters

depth
number

Relationship depth to include, defaults to 1

label
string

Filter by memory label

limit
number

Maximum results to return, defaults to 10, max 200

query
string

Search text to find in any property (searches for ANY word - e.g. "Ben Weeks" finds memories containing "Ben" OR "Weeks")

order_by
string

Sort order such as created_at DESC, name ASC

since_date
string

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)

Parameters

label*required
string

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

properties*required
object

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)

Parameters

type*required
string

Relationship type such as KNOWS, WORKS_ON, LIVES_IN, HAS_SKILL, PARTICIPATES_IN

properties
object

Optional relationship metadata (e.g. {since: "2023-01", role: "Manager", status: "active"})

toMemoryId*required
number

ID of the target memory

fromMemoryId*required
number

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

Parameters

nodeId*required
number

ID of the memory to update

properties*required
object

Properties to update/add

update_connection

Update properties of an existing connection between memories

Parameters

type*required
string

Relationship type to identify which connection to update (e.g. WORKS_AT, KNOWS, MANAGES)

properties*required
object

Properties to update/add (e.g. {status: "completed", end_date: "2024-01"})

toMemoryId*required
number

ID of the target memory

fromMemoryId*required
number

ID of the source memory