kuzudb-mcp-server
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.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kuzudb-mcp-servershow me the schema of the movies database"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
kuzudb-mcp-server
⚠️ ARCHIVED: This project is archived as the Kuzu database repository was archived on October 10, 2025. See ARCHIVE_NOTICE.md for details and alternatives.
A Model Context Protocol server that provides access to Kuzu graph databases. This server enables LLMs to inspect database schemas and execute queries with robust connection recovery, multi-agent coordination, and a built-in web interface.
Archive Status
Archived - October 21, 2025
The Kuzu graph database repository was archived by its maintainers on October 10, 2025 and is now read-only. As Kuzu is no longer actively maintained, this MCP server is also being archived. The project remains fully functional with Kuzu v1.4.1-r.4. See ARCHIVE_NOTICE.md for full details, technical achievements, and alternative graph database options.
Related MCP server: SQLite MCP Server
🚀 Key Features
📊 Web UI: Built-in database management interface with backup/restore capabilities
🔐 Authentication: OAuth and Basic Auth support for secure access
🤝 Multi-Agent: Safe concurrent access from multiple AI agents (experimental)
🔄 Auto-Recovery: Automatic connection recovery with exponential backoff
🐳 Docker Ready: Pre-built images and docker-compose workflow
📱 Dual Transport: Both stdio and HTTP transport modes
🧠 AI-Powered: Natural language to Cypher query generation
Quick Start
Install and Test
# Install globally
npm install -g kuzudb-mcp-server
# Quick test with auto-created database
pnpm serve:test # stdio transport (default)
pnpm serve:test:http # HTTP transport with Web UI
pnpm serve:test:inspect # HTTP with MCP Inspector
# Server management
pnpm kill # Stop running servers
pnpm restart # Restart with HTTP transportDevelopment Setup
# Clone and setup
git clone https://github.com/jordanburke/kuzudb-mcp-server.git
cd kuzudb-mcp-server
pnpm install
# Initialize databases
pnpm db:init # Empty test database
pnpm db:init:movies # Sample movie dataOne-Line Docker Setup
# Pull and run with mounted database
docker run -d -p 3000:3000 -p 3001:3001 \
-v /path/to/your/database:/database \
ghcr.io/jordanburke/kuzudb-mcp-server:latest
# Access Web UI at http://localhost:3001/admin
# MCP endpoint at http://localhost:3000/mcpComponents
Tools
getSchema - Fetch complete database schema (nodes, relationships, properties)
query - Execute Cypher queries with automatic error recovery
Prompts
generateKuzuCypher - Convert natural language to Kuzu-specific Cypher queries
🖥️ Web UI for Database Management
The server includes a powerful web interface that automatically starts with HTTP transport.
Features
📁 Database Backup & Restore: Download
.kuzubackups and restore from browser📤 Direct File Upload: Upload existing Kuzu database files (main + .wal)
📊 Database Info: View path, mode, connection status, and schema statistics
🔒 Secure Access: Optional authentication protection
👁️ Read-Only Support: Upload/restore disabled in read-only mode
Quick Access
# Start with Web UI (auto-enabled with HTTP)
pnpm serve:test:http
# Access Web UI
open http://localhost:3001/adminDocker with Web UI
# Using docker-compose (recommended)
docker-compose up -d
open http://localhost:3001/admin
# Manual Docker with Web UI
docker run -d \
-p 3000:3000 -p 3001:3001 \
-v /path/to/database:/database \
-e KUZU_WEB_UI_AUTH_USER=admin \
-e KUZU_WEB_UI_AUTH_PASSWORD=changeme \
ghcr.io/jordanburke/kuzudb-mcp-server:latestAPI 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
🔐 Authentication & Security
The server supports two authentication methods for different use cases:
OAuth (Production Recommended)
Best for production deployments with token-based security:
# Testing OAuth locally
pnpm serve:test:http:oauth # admin/secret123
pnpm serve:test:inspect:oauth # With MCP Inspector
# Production OAuth setup
KUZU_OAUTH_ENABLED=true \
KUZU_OAUTH_USERNAME=admin \
KUZU_OAUTH_PASSWORD=your-secure-password \
KUZU_OAUTH_USER_ID=admin-user \
KUZU_OAUTH_EMAIL=admin@example.com \
KUZU_JWT_EXPIRES_IN=31536000 \
node dist/index.js /path/to/database --transport httpBasic Auth (Development/Testing)
Simpler setup for development and testing:
# Testing Basic Auth locally
pnpm serve:test:http:basic # admin/secret123
pnpm serve:test:inspect:basic # With MCP Inspector
# Production Basic Auth setup
KUZU_BASIC_AUTH_USERNAME=admin \
KUZU_BASIC_AUTH_PASSWORD=your-secure-password \
KUZU_BASIC_AUTH_USER_ID=admin-user \
KUZU_BASIC_AUTH_EMAIL=admin@example.com \
node dist/index.js /path/to/database --transport httpWeb UI Authentication
Secure the Web UI interface:
# Add Web UI authentication
KUZU_WEB_UI_AUTH_USER=admin \
KUZU_WEB_UI_AUTH_PASSWORD=changeme \
node dist/index.js /path/to/database --transport httpJWT Token Configuration
Configure JWT token lifetime (OAuth mode only):
# Set token expiration in seconds (default: 31536000 = 1 year)
KUZU_JWT_EXPIRES_IN=3600 # 1 hour
KUZU_JWT_EXPIRES_IN=86400 # 24 hours
KUZU_JWT_EXPIRES_IN=2592000 # 30 daysSecurity Recommendations
Always use authentication for production deployments
Use OAuth for external-facing servers
Use Basic Auth for internal development/testing
Enable Web UI auth when exposing the interface
Use HTTPS in production environments
Configure JWT expiration based on your security requirements
Usage with Claude Desktop
Docker (Recommended)
{
"mcpServers": {
"kuzu": {
"command": "docker",
"args": [
"run", "-v", "/path/to/database:/database",
"--rm", "-i", "ghcr.io/jordanburke/kuzudb-mcp-server:latest"
]
}
}
}npm/npx
{
"mcpServers": {
"kuzu": {
"command": "npx",
"args": ["kuzudb-mcp-server", "/path/to/database"]
}
}
}Smithery (Easiest)
# Install via Smithery - includes sample database
smithery install kuzudb-mcp-serverEnvironment Variables
{
"mcpServers": {
"kuzu": {
"command": "npx",
"args": ["kuzudb-mcp-server"],
"env": {
"KUZU_MCP_DATABASE_PATH": "/path/to/database",
"KUZU_READ_ONLY": "true"
}
}
}
}🌐 Remote Connection (HTTP Transport)
Pre-built Docker Images
# Pull latest image
docker pull ghcr.io/jordanburke/kuzudb-mcp-server:latest
# Run with custom configuration
docker run -d \
-p 3000:3000 -p 3001:3001 \
-v /path/to/database:/database \
-e KUZU_READ_ONLY=false \
ghcr.io/jordanburke/kuzudb-mcp-server:latestLocal Development
# HTTP server mode
node dist/index.js /path/to/database --transport http --port 3000
# With custom endpoint
node dist/index.js /path/to/database --transport http --port 8080 --endpoint /kuzuMCP Inspector Testing
# Auto-start inspector
pnpm serve:test:inspect
# Manual setup
node dist/index.js /path/to/database --transport http
npx @modelcontextprotocol/inspector http://localhost:3000/mcpRemote Client Configuration
{
"mcpServers": {
"kuzu-remote": {
"uri": "http://localhost:3000/mcp",
"transport": "http"
}
}
}🤝 Multi-Agent Coordination (Experimental)
Enable safe concurrent access from multiple AI agents (e.g., Claude Desktop + Claude Code):
Configuration
{
"mcpServers": {
"kuzu": {
"command": "npx",
"args": ["kuzudb-mcp-server", "/path/to/database"],
"env": {
"KUZU_MULTI_AGENT": "true",
"KUZU_AGENT_ID": "claude-desktop",
"KUZU_LOCK_TIMEOUT": "10000"
}
}
}
}How It Works
Read queries: Execute immediately without coordination
Write queries: Acquire exclusive file-based locks
Auto cleanup: Stale locks detected and removed
Clear errors: Lock conflicts return helpful retry messages
Important Notes
Experimental feature for local development
Both agents must use the same database path
Lock files created in database directory
10-second default timeout covers most operations
🛠️ Development
Build and Test
# Install dependencies
pnpm install
# Build project
pnpm build
# Development with watch
pnpm dev
# Run tests
pnpm test
pnpm test:ui
pnpm test:coverage
# Linting and formatting
pnpm lint
pnpm typecheck
pnpm format:checkLocal Claude Desktop Setup
{
"mcpServers": {
"kuzu": {
"command": "node",
"args": [
"/path/to/kuzudb-mcp-server/dist/index.js",
"/path/to/database"
]
}
}
}🔧 Environment Variables Reference
Variable | Description | Default | Usage |
Database | |||
| Database path if not in args | - | Startup |
| Enable read-only mode |
| Security |
Connection | |||
| Connection recovery attempts |
| Reliability |
Multi-Agent | |||
| Enable coordination |
| Concurrency |
| Unique agent identifier |
| Locking |
| Lock timeout (ms) |
| Performance |
Web UI | |||
| Enable/disable Web UI |
| Interface |
| Web UI port |
| Network |
| Web UI username | - | Security |
| Web UI password | - | Security |
Authentication | |||
| Enable OAuth |
| Security |
| OAuth username | - | Auth |
| OAuth password | - | Auth |
| Basic Auth username | - | Auth |
| Basic Auth password | - | Auth |
🔍 Troubleshooting
Connection Issues
"Database connection could not be restored" → Check database file exists and permissions
"getAll timeout" → DDL operation hung, server will auto-recover
Lock timeout → Another agent writing, wait and retry
Web UI Issues
404 on /admin → Ensure HTTP transport mode is enabled
Authentication failing → Check
KUZU_WEB_UI_AUTH_*variablesPort conflicts → Change
KUZU_WEB_UI_PORTorPORT
Docker Issues
Health check failing → Verify database mount and port availability
Permission errors → Check volume mount permissions
Database not found → Ensure correct path mapping
Performance Notes
Based on testing:
Simple queries: < 100ms response time
Complex multi-hop: 200-500ms response time
Schema retrieval: ~100-200ms response time
AI query generation: 1-3 seconds (normal for LLM processing)
📚 Documentation
Core Features
Connection Recovery - Automatic recovery and retry logic
Multi-Agent Coordination - Concurrent access design
Batch Query Improvements - DDL and multi-statement handling
Bug Workarounds
Kuzu Bug Workarounds - Known issue fixes
Repository: github.com/jordanburke/kuzudb-mcp-server
Docker Images: ghcr.io/jordanburke/kuzudb-mcp-server
Package: npmjs.com/package/kuzudb-mcp-server
This server cannot be installed
Maintenance
Related MCP Servers
- Flicense-qualityDmaintenanceA Model Context Protocol server that enables AI assistants to explore and interact with Cursor IDE's SQLite databases, providing access to project data, chat history, and composer information.25
- Alicense-qualityDmaintenanceA Model Context Protocol server implementation that enables AI assistants to execute SQL queries and interact with SQLite databases through a structured interface.7MIT

MCP TapData Serverofficial
Flicense-qualityDmaintenanceA 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.
Kuzu MCP serverofficial
AlicenseBqualityFmaintenanceThis server enables natural language interaction between a user and their Kuzu databases using clients like Claude Desktop or Cursor, allowing LLMs to retrieve the database schema, execute Cypher queries, create nodes, and establish relationships in the graph database.242MIT
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP (Model Context Protocol) server for Appwrite
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jordanburke/kuzudb-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server