CJEU Legal Explorer

A legal-research platform developed with the Court of Justice of the European Union — 66,388 case-law documents unified on one GreyCat engine: citations, meaning and exact terms, with a built-in MCP server and nothing leaving the deployment.

Open the live demo ↗ Install GreyCat free
The CJEU citation network as a force-directed graph in GreyCat — judgments linked by who cites whom

The problem

Serious legal research needs four kinds of search at once — the citation graph (which judgment cites which), meaning (concepts, not just words), exact terms (CELEX / ECLI numbers, quoted phrases) and structured filters (court, date, party, judge) — and then an AI layer on top. On a normal stack that is a graph database, a vector database, a keyword engine, a relational store and an embedding service, glued together with ETL. For a court there is a harder constraint still: confidential text cannot be shipped to a cloud it does not control.

Six systems, or one

A legal-search product like this normally means a different specialised system for each capability, each with its own data copy and operations. GreyCat provides all of them in a single engine.

The stack you would normally run

Neo4jgraph
Pineconevectors
Elasticsearchkeyword
Postgresmetadata
Embedding APIvectorise
MCP serverhand-built

+ ETL, glue code, and six things to operate

GreyCat
one self-hosted binary
graph · vectors · text · MCP — one transaction
Capability The usual stack GreyCat 1 binary
Citation network Neo4j Native graph (typed nodes + traversal)
Search by meaning Vector DB + OpenAI embeddings On-device vectors (llama.cpp, in-process)
Keyword / fuzzy / boolean Elasticsearch text_search — BM25 / hybrid
Metadata filters (court, judge, party, date) Postgres Built-in, same query model
AI / agent access Build & host an MCP server Built-in MCP server — 39 tools

Five or six moving parts, wired together with ETL — collapsed into one self-hosted binary, one data model, one query. And because the embeddings and index run inside the binary, no court document ever leaves the deployment.

How GreyCat makes it one system

One graph, one query

Citations, embeddings and full text live in one store — joined in a single query, no ETL between them.

On-device by default

Embeddings and the search index run inside the binary — documents never leave the Court's infrastructure.

Built-in MCP server

39 tools exposed to any AI agent straight from the binary — plus a ready-made Open WebUI plugin. No SDK, no glue code to maintain.

Self-hosted, one binary

No cloud, no third-party services — the whole platform is a single binary on the Court's own hardware.

Try it with your own AI

The demo is not a screenshot — it is a live, public MCP server, the same one the UI uses. Point your own AI agent at the Court's case law in one command:

claude mcp add --transport http cjeu https://cjeu.greycat.io

Then ask your agent, in plain language:

"Find CJEU judgments on data protection and summarise the leading case."

It gets 39 MCP tools — hybrid search, citation traversal, case summaries — over 66,388 real documents. No SDK, no glue code: the MCP server ships inside the GreyCat binary.

Prefer a chat UI? We also built a plugin for Open WebUI — drop it in and your self-hosted models query the same case law from the chat box, no MCP wiring required.

66,388
documents indexed
1.27M
searchable paragraphs
39
MCP tools, built in
57
REST endpoints

Developed with the Court of Justice of the European Union. Explore it live ↗

Top