Skip to main content
Glama
kuzudb

Kuzu MCP server

Official
by kuzudb
README.md
# kuzu-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.

## 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`
- Add the following configuration to the `mcpServers` object:
  ```json
  {
    "mcpServers": {
        "kuzu": {
            "command": "docker",
            "args": [
                "run",
                "-v",
                "{Path to the directory containing Kuzu database file}:/database",
                "-e",
                "KUZU_DB_FILE={Kuzu database file name}",
                "--rm",
                "-i",
                "kuzudb/mcp-server"
            ]
        }
    }
  }
  ```
  Change the `{Path to the directory containing Kuzu database file}` to the actual path
- Restart Claude Desktop

### With Node.js and npm (for Development)
- Install dependencies: `npm install`
- Edit the configuration file `config.json`:
  - on macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
  - on Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- Add the following configuration to the `mcpServers` object:
  ```json
  {
    "mcpServers": {
        "kuzu": {
            "command": "node",
            "args": [
                "{Absolute Path to this repository}/index.js",
                "{Absolute Path to the Kuzu database file}",
            ]
        }
    }
  }
  ```
  Change the `{Absolute Path to this repository}` and `{Absolute Path to the Kuzu database file}` to the actual paths
- Restart Claude Desktop

### 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:
```json
{
    "mcpServers": {
        "kuzu": {
            "command": "docker",
            "args": [
                "run",
                "-v",
                "{Path to the directory containing Kuzu database file}:/database",
                "-e",
                "KUZU_DB_FILE={Kuzu database file name}",
                "-e",
                "KUZU_READ_ONLY=true",
                "--rm",
                "-i",
                "kuzudb/mcp-server"
            ],
        }
    }
}
```

TDQS

B3.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: getSchema retrieves database structure metadata, while query executes data retrieval/manipulation operations. There is no overlap or ambiguity between these functions, making tool selection straightforward for an agent.

Naming Consistency5/5

Both tools follow a consistent verb_noun naming pattern (getSchema, query). While 'query' is a noun rather than verb_noun, it's a standard database term that pairs naturally with 'getSchema', maintaining clear and predictable naming throughout the minimal toolset.

Tool Count2/5

With only 2 tools, this server feels severely under-scoped for a database interface. A typical database MCP server would include tools for data manipulation (insert, update, delete), transaction management, connection handling, or at least parameterized queries beyond just raw query execution.

Completeness2/5

For a database server, the surface is significantly incomplete. While getSchema and query provide read capabilities, there are no tools for data modification (insert/update/delete), transaction control, connection management, or even parameterized query execution. This creates dead ends for agents needing to perform basic database operations.

Maintenance

ActivityInactive
ResponsivenessNo issues