Graphora LogoGraphora
Open Source · Apache-2.0View on GitHub

Test your Neo4j graph like you test your code.

GraphCheck is semantic observability for Neo4j property graphs. Declare what should be true about your graph in YAML. GraphCheck runs it read-only and returns pass/fail verdicts with evidence — in your terminal and in CI.

Your graph looks healthy. Is it right?

Modern knowledge graphs are increasingly machine-built — extracted by LLMs, merged from pipelines, feeding GraphRAG systems and AI agents. Counts look reasonable and dashboards stay green while the answers underneath quietly go wrong. Code has tests. Warehouses have dbt tests. GraphCheck gives your graph the same discipline: executable checks, honest coverage, and evidence you can hand to a reviewer.

From install to verdict in minutes

1 · SCAFFOLD

$ graphcheck init
Wrote graphcheck.yml
Wrote profiles.yml
Wrote checks/example.yml
Next: run `graphcheck debug`

Scaffold a project and point the connection profile at your Neo4j.

2 · VERIFY THE CONNECTION

$ graphcheck debug
Neo4j Server: 5.26 community
Credentials can see: connect,
read, procedures
Blocked checks: none

Every error message contains its fix — wrong password, missing APOC, unreachable host.

3 · RUN THE CHECKS

$ graphcheck run
Suite Score Coverage
example 50/100 2/2
Result: 1 failure.
# evidence + report written

A score, a coverage table, and an HTML report with evidence for every failure.

What you get

Three kinds of checks

Conformance rules (no orphans, completeness, cardinality), competency questions as executable queries, and drift watches against a pinned baseline.

Built-in core & PII packs

A built-in library of conformance checks plus a PII scan pack with clearly labeled, confidence-scored findings. Checks are data, not code.

Score and coverage

Every run produces a severity-weighted score and an honest coverage table: what passed, failed, errored, or was skipped — with reasons.

CI-native by contract

A frozen exit-code contract (0 all passed · 1 failure or execution error · 2 warnings or incomplete · 3 run not completed), machine-readable results.json, and per-suite summaries built for pipelines.

Reports that travel

A self-contained HTML report that opens offline — air-gapped environments included — plus results.json for tooling.

An agent surface

An optional MCP server lets AI agents list checks, run a suite, and read results. AI-assisted check drafting stays inert until a human approves it.

The promises we don't break

A tool pointed at production data earns trust through guarantees, not marketing.

Read-only, always

GraphCheck never writes to your database. On Neo4j Enterprise and Developer editions it expects a server-enforced read-only credential (the built-in reader role); on Community, where roles are limited, a server-side EXPLAIN preflight rejects write-capable queries before they run.

Evidence on every failure

Findings carry evidence at the right scope — pointers to the offending nodes and relationships, or the aggregate measurements behind a drift result — with the compiled query. Auditable, not anecdotal.

Deterministic verdicts

Same graph + same suite = same result. No LLM ever decides pass or fail.

Nothing leaves your environment

It is a CLI. Results are written locally. Telemetry is off by default and anonymous when opted in.

Graph Quality Audit

Want experts to run it for you first?

We offer a fixed-scope, read-only audit of your production graph. We profile it, surface real quality risks with evidence, and hand you a runnable GraphCheck suite tailored to your data — plus a CI configuration so the checks keep running after we leave. You keep everything: the checks, the findings, and the report.

  • A profile of your graph — size, schema, and capability summary.
  • Ranked quality findings, each with pointer evidence.
  • A tailored, executable check suite that your team owns.
  • A CI setup so the checks run on every change.

Read-only by design. For regulated environments, everything runs inside your own boundary.

Point it at your graph today