getSchema exists so the model can see the node and relationship tables before it writes a traversal, which is where most generated Cypher goes wrong. KUZU_READ_ONLY is the setting to reach for when you want exploration without risk: modifying queries return an error rather than running.
Kuzu's own MCP server: two tools over one database file, plus a prompt that helps write the Cypher.
- getSchema returns the full schema — every node and relationship table with its properties — and takes no input
- Query runs a Cypher statement against the database
- A generateKuzuCypher prompt that turns a natural-language question into a Kuzu Cypher query
- KUZU_READ_ONLY set to true makes any modifying query fail, rather than relying on the model to behave
A Kuzu database file on disk. The recommended path is Docker: mount the directory holding the database and set KUZU_DB_FILE to the file name. Running from the clone with Node.js works too — pass the absolute path to the database as an argument. No account, no key.
One command — docker run -v {Path to the directory containing Kuzu database file}:/database -e KUZU_DB_FILE={Kuzu database file name} --rm -i kuzudb/mcp-server
