FalkorDB MCP Server

Run OpenCypher queries, inspect schemas and manage graphs in a FalkorDB database

Official · FalkorDB TypeScript Local · stdio Databases

46 popularity score ★ 42 ↓ 176/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add falkordb -- npx -y @falkordb/mcpserver@latest
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "falkordb": {
      "command": "npx",
      "args": [
        "-y",
        "@falkordb/mcpserver@latest"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "falkordb": {
      "command": "npx",
      "args": [
        "-y",
        "@falkordb/mcpserver@latest"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "falkordb": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@falkordb/mcpserver@latest"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.falkordb]
command = "npx"
args = ["-y", "@falkordb/mcpserver@latest"]
Gemini CLITerminal
gemini mcp add --scope user falkordb npx -- -y @falkordb/mcpserver@latest
Local (from source)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

FirstTerminal
git clone https://github.com/FalkorDB/FalkorDB-MCPServer.git
cd FalkorDB-MCPServer
npm install
npm run build
Claude CodeTerminal
claude mcp add falkordb -- node '<ABSOLUTE_PATH_TO_CLONE>/dist/index.js'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "falkordb": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "falkordb": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "falkordb": {
      "type": "stdio",
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.falkordb]
command = "node"
args = ["<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"]
Gemini CLITerminal
gemini mcp add --scope user falkordb node -- '<ABSOLUTE_PATH_TO_CLONE>/dist/index.js'

Settings 9

FALKORDB_HOST Optional: Host name of the FalkorDB instance; localhost by default.
FALKORDB_PORT Optional: Port of the FalkorDB instance; 6379 by default.
FALKORDB_USERNAME Optional: Database user name, when the instance requires one.
FALKORDB_PASSWORD Optional: Database password, when the instance requires one.
FALKORDB_DEFAULT_READONLY Optional: Set to true to run queries read-only unless a call asks otherwise.
FALKORDB_STRICT_READONLY Optional: Set to true to refuse every write query and graph deletion.
MCP_TRANSPORT Optional: stdio (default) or http for Streamable HTTP.
MCP_PORT Optional: HTTP port in http mode; 3000 in code when unset.
MCP_API_KEY Optional: Bearer key required from HTTP clients when set; ignored over stdio.

What it does

FalkorDB MCP Server connects an assistant to a FalkorDB graph database, either one you run yourself or one on FalkorDB Cloud. The assistant can list the graphs on the instance, send OpenCypher queries that read or change data, and delete whole graphs. Queries can take a separate params object, so values are passed as $name instead of being pasted into the Cypher text.

FalkorDB has no fixed schema, so three tools help the assistant find its way around before it queries. One returns node labels, relationship types and which labels connect to which, worked out from a sample of 10,000 relationships by default (up to 100,000). The other two sample 100 nodes or relationships of a given label or type by default (up to 10,000) and rank their property keys by how often they appear. All three always run as read-only queries.

By default it talks over stdio. Set MCP_TRANSPORT=http to serve Streamable HTTP instead, optionally protected by a bearer key in MCP_API_KEY. In version 1.3.0 the code falls back to port 3000 when neither MCP_PORT nor PORT is set (src/config/index.ts), while the README examples all use 8080. The same file reads FALKORDB_STRICT_READONLY, which the README never mentions. When it is true, the server refuses any write query and any delete_graph call, even if a call asks for write mode. FALKORDB_DEFAULT_READONLY, by contrast, only changes the default, and a single query can override it (src/mcp/tools.ts).

What it needs

RuntimeNode.js 18+

Node.js 18 or later and a FalkorDB instance it can reach: local, remote or FalkorDB Cloud. By default it connects to localhost:6379 with no password. The Docker image falkordb/mcpserver and the repository's docker-compose.yml run it in HTTP mode on port 8080. Start the container with -p 8080:8080, then point the client at http://localhost:8080.

Limits

Works only with FalkorDB; it cannot reach other graph or SQL databases. In version 1.3.0, the release on npm, the connection code has no TLS option. The FALKORDB_TLS setting the README describes is not read by that version, so an instance that only accepts TLS connections, such as FalkorDB Cloud behind TLS, cannot be reached until a later release. Schema topology comes from a sample and may be incomplete on large graphs. FalkorDB does not accept parameters in LIMIT or SKIP. The README says files written by the bundled docker-compose FalkorDB do not yet survive docker compose down.

Who it suits

Suits developers who already keep data in FalkorDB and want an assistant to explore it and write Cypher against it. It is published by FalkorDB itself and runs on your own machine. It can change and delete data, so for production or replica instances set FALKORDB_STRICT_READONLY=true, which blocks writes for every call. If your database is Neo4j, or a FalkorDB instance that requires TLS, this release is the wrong choice. FalkorDB's QueryWeaver, which we also list, is a separate product that turns plain questions into SQL for relational databases. It does not work on FalkorDB graphs.

Tools 7

query_graph
Runs an OpenCypher query on a named graph, read-write or read-only, with optional params
query_graph_readonly
Runs an OpenCypher query that is always executed with GRAPH.RO_QUERY
list_graphs
Lists the graphs on the connected FalkorDB instance
delete_graph
Permanently removes a graph; the call must set confirmDelete to true
get_graph_schema
Returns node labels, relationship types and, optionally, sampled label-to-label connections
get_node_schema
Samples nodes of one label and ranks their property keys by frequency
get_relationship_schema
Samples relationships of one type and ranks their property keys by frequency

Similar servers