Supports containerized deployment via Docker, allowing Claude to safely access Kuzu databases with proper volume mounting and configuration.
Provides platform-specific configuration paths and instructions for Claude Desktop integration on macOS systems.
Enables installation and execution through npm/npx, offering alternative deployment options to Docker for running the MCP server.
kuzudb-mcp-server
A Model Context Protocol server that provides access to Kuzu databases. This server enables LLMs to inspect database schemas and execute queries on provided kuzu database.
Quick Start
For quick testing and development:
Components
Tools
- getSchema
- Fetch the full schema of the Kuzu database, including all nodes and relationships tables and their properties
- Input: None
- query
- Run a Cypher query on the Kuzu database
- Input:
cypher
(string): The Cypher query to run
Prompt
- generateKuzuCypher
- Generate a Cypher query for Kuzu
- Argument:
question
(string): The question in natural language to generate the Cypher query for
Usage with Claude Desktop
With Docker (Recommended)
- Edit the configuration file
config.json
:- on macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- on Windows:
%APPDATA%\Claude\claude_desktop_config.json
- on macOS:
- Add the following configuration to the
mcpServers
object:Change the{Absolute Path to the Kuzu database}
to the actual path - Restart Claude Desktop
With npm/npx
- Install globally:
npm install -g kuzudb-mcp-server
- Or use directly with npx:
npx kuzudb-mcp-server
- Edit the configuration file
config.json
:- on macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- on Windows:
%APPDATA%\Claude\claude_desktop_config.json
- on macOS:
- Add the following configuration to the
mcpServers
object:Change the{Absolute Path to the Kuzu database}
to the actual path - Restart Claude Desktop
With Smithery
This server is available on Smithery for easy installation:
The Smithery version includes:
- Automatic database initialization with movies template
- No volume mounting required
- Ready-to-use graph database for testing and exploration
Using Environment Variables
You can also specify the database path using the KUZU_MCP_DATABASE_PATH
environment variable instead of passing it as an argument:
Alternatively, if you have KUZU_MCP_DATABASE_PATH
set in your system environment, the server will automatically use it when no database path argument is provided.
Read-Only Mode
The server can be run in read-only mode by setting the KUZU_READ_ONLY
environment variable to true
. In this mode, running any query that attempts to modify the database will result in an error. This flag can be set in the configuration file as follows:
With npm/npx:
With Docker:
Remote Connection (HTTP Transport)
The server supports both stdio (default) and HTTP transports, allowing remote connections and easier debugging.
Docker Deployment (HTTP Server)
The easiest way to run the HTTP server is using Docker. Pre-built images are available from GitHub Container Registry:
Build Locally
The HTTP server will be available at http://localhost:3000/mcp
(or your custom endpoint).
HTTP Server Mode
To run the server in HTTP mode:
Testing with MCP Inspector
The MCP Inspector is a web-based tool for testing and debugging MCP servers.
Remote Client Configuration
For applications supporting HTTP MCP connections:
HTTP Server Options
--transport http
- Enable HTTP transport (default: stdio)--port <number>
- HTTP server port (default: 3000)--endpoint <path>
- Custom endpoint path (default: /mcp)
Example with custom options:
Multi-Agent Coordination (Experimental)
The server supports multi-agent coordination to allow multiple AI agents (e.g., Claude Desktop and Claude Code) to share the same Kuzu database safely. This feature addresses Kuzu's single-writer limitation through transparent file-based locking.
Enabling Multi-Agent Mode
Set the following environment variables in your configuration:
KUZU_MULTI_AGENT=true
- Enable multi-agent coordinationKUZU_AGENT_ID=string
- Unique identifier for the agent (e.g., "claude-desktop", "claude-code")KUZU_LOCK_TIMEOUT=number
- Lock timeout in milliseconds (default: 10000)
Claude Desktop Configuration
Claude Code Configuration
How It Works
When multi-agent mode is enabled:
- Read queries execute immediately without coordination
- Write queries (CREATE, MERGE, SET, DELETE, etc.) acquire an exclusive lock
- Locks are automatically released after query completion
- Stale locks from crashed processes are detected and cleaned up
- Lock conflicts result in clear error messages with retry suggestions
Important Notes
- This feature is experimental and designed for local development scenarios
- Both agents must point to the same database path
- The lock file (
.mcp_write_lock
) is created in the database directory - Lock timeout defaults to 10 seconds, which covers most operations
Development
To build from source:
For local development, you can also configure Claude Desktop to use the local build:
Web UI for Database Management
The server includes a web-based interface for managing your Kuzu database, automatically enabled when running in HTTP transport mode.
Features
- Database Backup & Restore: Download and upload database backups through your browser
- Direct Database Upload: Upload existing Kuzu database files (main + .wal files) directly
- Visual Database Info: View database path, mode, and connection status
- Secure Access: Optional authentication to protect your database
- Read-Only Mode Support: Upload/restore features automatically disabled in read-only mode
Using the Web UI
The Web UI is automatically enabled when running with HTTP transport.
Quick Start
With Docker Compose
Disabling the Web UI
To disable the web UI (e.g., for production security):
With Authentication
With Docker
Web UI Endpoints
/admin
- Main web interface/health
- Health check endpoint/api/info
- Database information (JSON)/api/backup
- Download database backup/api/restore
- Upload and restore database (supports both backups and raw files)
Uploading Existing Databases
The Web UI supports two methods for uploading databases:
Method 1: Upload Backup File
Upload a .kuzu
backup file created by the download feature.
Method 2: Upload Raw Database Files
Upload your existing Kuzu database files directly:
- Click "Upload" in the web interface
- Select both files:
- Your main database file (e.g.,
memory
,mydb.db
, etc.) - The WAL file if it exists (e.g.,
memory.wal
)
- Your main database file (e.g.,
- The server will restore these files directly
Example: For a database at C:\Users\you\OneDrive\Apps\kuzudb\memory
:
- Upload:
memory
(main file) +memory.wal
(WAL file) - The server replaces its current database with your files
Security Notes
- Web UI is automatically enabled with HTTP transport (disable with
KUZU_WEB_UI_ENABLED=false
) - Only available when running with HTTP transport (not with stdio)
- Authentication is strongly recommended for production use
- CORS headers allow cross-origin requests (configure as needed)
Documentation
Core Features
- Connection Recovery - Automatic connection recovery, retry logic, and error handling
- Multi-Agent Coordination - Safe concurrent access with file-based locking
- Batch Query Improvements - Enhanced DDL and multi-statement query handling
Bug Workarounds
- Kuzu Bug Workarounds - Temporary fixes for known Kuzu issues
Environment Variables
Variable | Description | Default |
---|---|---|
KUZU_READ_ONLY | Enable read-only mode | false |
KUZU_MAX_RETRIES | Connection recovery retry attempts | 2 |
KUZU_MULTI_AGENT | Enable multi-agent coordination | false |
KUZU_AGENT_ID | Unique agent identifier | unknown-{pid} |
KUZU_LOCK_TIMEOUT | Lock acquisition timeout (ms) | 10000 |
KUZU_MCP_DATABASE_PATH | Database path if not provided as argument | - |
KUZU_WEB_UI_ENABLED | Enable/disable web UI (HTTP mode only) | true (auto-enabled with HTTP) |
KUZU_WEB_UI_PORT | Port for web UI server | 3001 |
KUZU_WEB_UI_AUTH_USER | Username for web UI authentication | - |
KUZU_WEB_UI_AUTH_PASSWORD | Password for web UI authentication | - |
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
A Model Context Protocol server that provides access to Kuzu databases. This server enables LLMs to inspect database schemas and execute queries on provided kuzu database.
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that provides access to MongoDB databases. This server enables LLMs to inspect collection schemas and execute read-only queries.Last updated -8377261TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables LLMs to interact with databases (currently MongoDB) through natural language, supporting operations like querying, inserting, deleting documents, and running aggregation pipelines.Last updated -TypeScriptMIT License
MCP TapData Serverofficial
-securityFlicense-qualityA Model Context Protocol server that enables Large Language Models to access and interact with database connections, including viewing schemas and performing CRUD operations on connected databases.Last updated -- -securityFlicense-qualityA Model Context Protocol server that enables large language models to interact directly with Couchbase databases through natural language, supporting operations like querying buckets, performing CRUD operations, and executing N1QL queries.Last updated -37TypeScript