Neo4j for knowledge graphs
Neo4j's official server is the top pick for knowledge graphs, and it earns that because it talks to a purpose-built graph database in its native language. When your knowledge lives in Neo4j, the agent can run Cypher directly, traverse relationships, and match patterns rather than approximating a graph on top of tables.
The reason it leads the three is directness. Multi-hop questions, dependency chains, and structural reasoning are what Cypher and a native property graph do well, and this server exposes exactly that.
How Neo4j fits
get-schema introspects the graph first, returning labels, relationship types, and property keys so the agent understands the model before it queries. read-cypher runs read-only Cypher, enforced through EXPLAIN and Neo4j's query-type classification so it genuinely cannot mutate data; write-cypher handles mutations and is disabled when NEO4J_READ_ONLY is set, which gives you a clean read-only posture for exploration. list-gds-procedures surfaces the available Graph Data Science algorithms so the agent can discover them before composing a query that uses one.
The limit is scope: this is a graph server, so it fits when your knowledge is genuinely modeled as nodes and edges in Neo4j. SurrealDB is the sibling to consider when you want graph capability inside a multi-model store that also holds documents and other shapes. Memory is the lightweight entity-relation store, useful for a small agent-maintained knowledge graph rather than a production graph database. For real traversal and pattern matching over a dedicated graph, Neo4j is the strongest fit.
Tools you would use
| Tool | What it does |
|---|---|
| get-schema | Introspects the graph: labels, relationship types, and property keys, so the agent understands the model before querying. |
| read-cypher | Executes read-only Cypher queries, enforced via EXPLAIN and Neo4j's query-type classification so they cannot modify data. |
| write-cypher | Executes write Cypher queries that mutate the graph. Disabled when NEO4J_READ_ONLY is set to true. |
| list-gds-procedures | Lists the available Graph Data Science (GDS) procedures so the agent can discover algorithms before composing a query. |
FAQ
- Can I keep the Neo4j server read-only for exploration?
- Yes. read-cypher is read-only by construction, enforced via EXPLAIN and Neo4j's query-type classification, and write-cypher is disabled entirely when NEO4J_READ_ONLY is true. get-schema lets the agent learn the model before querying without any write access.
- When would Memory or SurrealDB fit better than Neo4j?
- Memory suits a small, agent-maintained entity-relation graph rather than a production database. SurrealDB fits when you want graph queries inside a multi-model store alongside documents. Neo4j leads when your knowledge lives in a dedicated property graph and you need real Cypher traversal.