
Neo4j Memory MCP Server: Give Claude and Cursor a Graph Memory
Lets Claude, Cursor and other assistants remember people, places and facts between chats, stored as a graph in Neo4j.
The assistant saves what it learns as entities, notes and links in your Neo4j database, and finds them again in later chats. It can search by words or by exact name, and it can also edit and delete what it stored. You need your own Neo4j database, such as a free Aura instance. It has no read-only mode, so anything the assistant remembers it can also forget.
Good for
- People who want Claude to keep long-term notes across chats
- Teams that share one memory graph through a shared Neo4j database
- Developers who want agent memory they can also query with Cypher
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install Neo4j Memory MCP
Claude Code
- 1
Copy this prompt.
Add the Neo4j Memory MCP server to Claude Code. Run this command: claude mcp add neo4j-memory -e NEO4J_URI=<NEO4J_URI> -e NEO4J_USERNAME=<NEO4J_USERNAME> -e NEO4J_PASSWORD=<NEO4J_PASSWORD> -- uvx mcp-neo4j-memory Ask me for NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD and only put the values in that config, nowhere else. Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires uv (Python).
Built from the package data we hold. Not yet tested by us.
Tools
Reads the whole memory graph
Returns every remembered entity and every link between them in one go. This can be large once the graph grows.
Try: “Show me everything you remember about my projects.”
Network ·
read_graphSearches memories by words
Looks for entities whose name, type or notes match your words, and returns them with their connections. Partial matches and several words work.
Try: “What do you remember about Dresden?”
Network ·
search_memoriesLooks up memories by exact name
Returns the entities with exactly the names you give, plus the links around them. It does not use search.
Try: “Look up Oskar and Andreas in memory.”
Network ·
find_memories_by_nameRemembers new people, places or things
Adds entities with a name, a type and a list of notes. If a name already exists the entity is reused, not duplicated.
Try: “Remember that Michael lives in Dresden and works at Neo4j.”
Write ·
create_entitiesLinks remembered things together
Adds a labelled link, such as WORKS_AT, between two entities that are already stored.
Try: “Link Michael to Neo4j with WORKS_AT.”
Write ·
create_relationsAdds notes to a remembered thing
Adds new notes to entities that already exist in memory, such as a new job title.
Try: “Add a note that Oskar was promoted to Senior Engineer.”
Write ·
add_observationsForgets entities and their links
Permanently removes the named entities and every link they have. There is no undo.
Try: “Forget everything about Old Company.”
Delete ·
delete_entitiesRemoves specific notes
Removes exact note texts from an entity and keeps the entity itself. The text must match exactly.
Try: “Remove the note "Outdated contact info" from John Smith.”
Delete ·
delete_observationsRemoves specific links
Removes links of a given type between two named entities and leaves the entities in place.
Try: “Remove the WORKS_AT link between Andreas and Neo4j.”
Delete ·
delete_relations
Read from the source code
Permissions
high risk · 6 things to watch
High risk
The assistant can add, change and delete the memory nodes it keeps in your Neo4j database, using your database login. Use a dedicated database or user for memory, and back it up if the notes matter.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can delete memories and their links
delete_entities removes entities and all their links for good, and the source says it cannot be undone. delete_observations and delete_relations also remove stored data. Back up the database if the memory matters. github.com
It has no read-only mode
The server has no switch to turn off writes or deletes. To stop changes, connect with a database user that has only read rights, though then it cannot save new memories. github.com
It creates an index when it starts
On start the server runs a query that creates a fulltext index named search on Memory nodes in your database if one is missing. github.com
Your password sits in the client config
The Neo4j password is stored in plain text in the config file or arguments. Use a dedicated database user with limited rights. github.com
Memory content reaches your AI model
Anything read from memory goes to the model provider your assistant uses. Do not store secrets as memories. github.com
The README tool names are out of date
The README lists search_nodes and find_nodes, but release 0.4.5 registers search_memories and find_memories_by_name. Use the names on this page. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Talks to | Your Neo4j database |
|---|---|
| Sign-in and keys | Neo4j URL, username and password go in environment variables or arguments in your client config. |
Questions
Is the Neo4j Memory MCP server official?
It is a Neo4j Labs server, made by Neo4j but not supported by Neo4j's product team. The repo README says the Labs servers are updated often with experimental features. Neo4j's supported product server is a different project: see Neo4j MCP (github.com/neo4j/mcp).
Should I use this or the Neo4j product server?
Use the Neo4j MCP server if you want the one Neo4j's product team supports. Use this Labs Memory server if you need what it does that the product server may not, and accept that it can change quickly and has no product support.
Where is the memory stored?
In the Neo4j database you connect, as nodes labelled Memory with links between them. You can host it free on Neo4j Aura or run Neo4j yourself.
Does it need a Neo4j database and a login?
Yes. Give it the database URL, username and password. The URL variable can be NEO4J_URL or NEO4J_URI, and NEO4J_URL wins if both are set.
Can it only read my memory?
No. There is no read-only mode. A database user with read rights only would stop it saving or deleting anything.
Can it delete my memories?
Yes. Three tools remove entities, notes and links, and deleted entities are gone for good. It only touches Memory nodes, not other data.
Can I keep separate memories for different projects?
Yes. Give each server a namespace, and its tool names get that prefix. Use a different database for separation of the data itself.
How is it different from the Neo4j Cypher server?
This one stores and recalls an assistant's memory through fixed tools. The Cypher server runs any query you or the assistant write against a database.
Is it free?
Yes. The repo is MIT licensed, but the published 0.4.5 wheel on PyPI has no license file and no license field in its metadata. Neo4j Aura has a free tier, and you can also run Neo4j yourself.
Information
updated Nov 2, 2026
- Publisher
- Official
- Package
mcp-neo4j-memory- Registry
- PyPI
- Transport
- stdio
- Auth
- token in env
- Version
- 1.0.0
- License
- MIT
- Last commit
- Sep 9, 2026
- Open issues
- 17
- Listed in
- Official MCP registry, Docker MCP Catalog
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 6Hide
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- pypi.org · pypi.org
- github.com · github.com