Mcp Server Falkordb — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Server Falkordb (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP server for FalkorDB — a property graph database built on Redis. Connects LLM agents (Claude, or any MCP client) to a running FalkorDB instance via 6 agent-centric tools covering graph discovery, read queries, writes, and schema inspection.
One-block install + first call:
# 1. Start FalkorDB (if not already running)
docker run -d -p 6379:6379 falkordb/falkordb
# 2. Register the MCP in Claude Code
claude mcp add falkordb -- uvx mcp-server-falkordb
# 3. From your agent: explore a graph
# (Claude will call: graph_explore(graph="my_graph"))That's it. Six graph tools now available to any MCP-compatible agent.
| Tool | Purpose | Destructive? |
|---|---|---|
graph_list | List all graphs with names | No |
graph_describe | Full schema: labels, rel types, property keys, counts | No |
graph_query | Execute read-only Cypher (write keywords rejected) | No |
graph_mutate | Execute write Cypher (CREATE, MERGE, SET, DELETE, REMOVE) | Yes |
graph_explore | One-call overview: schema + 3 sample nodes + 3 sample edges | No |
graph_delete | Drop an entire graph (requires confirm: true) | Yes — irreversible |
Not in v1 (by design):
graph_mutate is more powerful and honestgraph_mutate when neededdocker exec + RDB snapshotslocalhost:6379)Add to your claude_desktop_config.json (or Claude Code MCP config):
{
"mcpServers": {
"falkordb": {
"command": "uvx",
"args": ["mcp-server-falkordb"],
"env": {
"FALKORDB_HOST": "localhost",
"FALKORDB_PORT": "6379"
}
}
}
}Or add via CLI:
claude mcp add falkordb -- uvx mcp-server-falkordbTo specify a custom host/port via CLI:
claude mcp add falkordb --env FALKORDB_HOST=localhost --env FALKORDB_PORT=6379 -- uvx mcp-server-falkordbIf FALKORDB_HOST and FALKORDB_PORT are omitted, they default to localhost:6379.
pip install mcp-server-falkordb
mcp-server-falkordb # starts on stdiogit clone https://github.com/rbarrielabrystech/mcp-server-falkordb
cd mcp-server-falkordb
uv run mcp-server-falkordb<details> <summary>Advanced: custom MCP multiplexer (rmcp-mux)</summary>
mux.toml:[servers.falkordb]
socket = "~/mcp-sockets/falkordb.sock"
cmd = "uv"
args = ["--directory", "/path/to/mcp-server-falkordb", "run", "mcp-server-falkordb"]
env = { FALKORDB_HOST = "localhost", FALKORDB_PORT = "6379" }
lazy_start = true
max_restarts = 20claude mcp add --scope user falkordb -- rmcp-mux-proxy --socket ~/mcp-sockets/falkordb.sock</details>
Environment variables:
| Variable | Default | Description |
|---|---|---|
FALKORDB_HOST | localhost | FalkorDB host |
FALKORDB_PORT | 6379 | FalkorDB port |
FALKORDB_PASSWORD | _(none)_ | Redis AUTH password (optional) |
FALKORDB_QUERY_TIMEOUT_MS | 30000 | Query timeout in milliseconds (0 = no timeout) |
graph_explore(graph="my_graph")Returns labels, relationship types, property keys with counts, plus sample nodes and edges.
graph_query(
graph="my_graph",
query="MATCH (n:Memory) RETURN n.content LIMIT 10"
)Write keywords (CREATE, DELETE, SET, MERGE, REMOVE, DROP) are rejected — use graph_mutate.
graph_query(
graph="my_graph",
query="MATCH (n:Person {name: $name}) RETURN n",
params={"name": "Alice"}
)graph_mutate(
graph="my_graph",
query="CREATE (n:Note {content: $content, created: $date})",
params={"content": "Remember this", "date": "2026-04-16"}
)graph_delete(graph="my_temp_graph", confirm=true)confirm must be true — this is irreversible.
All listing and query tools support format: "markdown" (default) or format: "json".
graph_query enforces read-only semantics before the query reaches FalkorDB:
CREATE, DELETE, SET, MERGE, REMOVE, DROPCALL db.* proceduresIf a write keyword is detected, the error message explicitly directs to graph_mutate. The authoritative read-only gate is FalkorDB's server-side ro_query mode — the client-side regex is defense-in-depth to avoid unnecessary round-trips.
Symptom: first tool call returns a connection refused error.
Fix: start FalkorDB with Docker:
docker run -p 6379:6379 falkordb/falkordbSet FALKORDB_HOST and FALKORDB_PORT environment variables (see Configuration above).
Set FALKORDB_PASSWORD to your Redis AUTH password. The server passes it transparently to the FalkorDB client.
FalkorDB graph names support alphanumeric characters, underscores (_), and hyphens (-). Names with other special characters will be rejected with a GraphNameError before the query reaches the database.
All tools truncate responses at 25,000 characters and append a notice. Add a LIMIT clause to your Cypher query or use the format: "json" output to reduce payload size.
The default query timeout is 30 seconds. For longer-running analytical queries, increase it via FALKORDB_QUERY_TIMEOUT_MS=60000 (or whatever millisecond value suits).
# Install deps
uv sync
# Run tests (requires live FalkorDB at localhost:6379)
uv run pytest
# Type check
uv run mypy src/
# Lint + format
uv run ruff check src/ tests/
uv run ruff format src/ tests/All tests use ephemeral graphs with a unique _test_mcp_<uuid> prefix. No pre-existing graph in your FalkorDB instance is ever touched.
src/mcp_server_falkordb/
├── __main__.py Entry point
├── server.py FastMCP app + 6 tool registrations
├── client.py Async FalkorDB connection (lifespan-managed)
├── validators.py Cypher read-only enforcement + graph name validation
└── formatters.py Markdown/JSON output + CHARACTER_LIMIT truncationContributions welcome! Please:
uv run pytest && uv run mypy src/ && uv run ruff check src/ tests/main with a clear title and descriptionSee CONTRIBUTING.md for detailed guidelines.
See CHANGELOG.md for version history.
MIT — see LICENSE.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.