Legalcite

io.github.Kevinx702Published by GitHub account Kevinx702v0.1.0Updated Oct 25, 2026

Verify legal case citations against real court records; flag fake/hallucinated cites.

Overview

AI-generated overview

LegalCite is a local MCP server that checks case citations in legal text against public U.S. court records and flags fake or misattributed cites.

What you can do
Verify citations in a block of legal text, returning a verdict for each one: real, not-found (likely hallucinated) or mismatch (real citation, wrong case name). Resolve citations through CourtListener's public reporter/volume/page finder, with an optional token mode for richer metadata. Report unresolved citations as not-found rather than inventing a result.
When to use it
Useful when an assistant drafts or reviews legal writing and you want a check that cited cases actually exist and that case names match before relying on the text.
Requirements
Runs as a local stdio process from the npm package legalcite-mcp, so Node.js is needed. Network access to the CourtListener public records and the hosted service is required. No credentials are declared; an optional COURTLISTENER_TOKEN enables richer lookup.
Before you install
The README states it is not legal advice and verifies only citation existence and metadata, not legal correctness or whether a case is still good law. Text you submit is sent to CourtListener and the hosted API. The hosted service applies a free daily quota by IP, with a paid Pro tier.

Installation

In SourceWeft

  1. Open Legalcite in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

LegalCite

Stop your AI from citing fake cases. LegalCite checks every case citation in legal text against real court records (CourtListener) and flags hallucinated/fake or misattributed cites. A REST API + an MCP server.

  • Live: https://legalcite-one.vercel.app
  • Verify API: GET /api/verify?text=<paragraph> (or ?citation="410 U.S. 113"; also POST {text})
  • MCP: verify_citations(text) → npm legalcite-mcp
  • Data: CourtListener (Free Law Project) — free public U.S. court records.

Verdicts

verdictmeaning
realthe case exists and (if named) the name matches
not-foundno such case — likely hallucinated
mismatchcitation is real, but the case name in the text is wrong

How it resolves

  1. Token-free (default): reporter-aware regex extracts citations → each resolved via CourtListener's public /c/{reporter}/{vol}/{page}/ finder (redirects to the opinion when real, 404 when not).
  2. Token mode (optional): set COURTLISTENER_TOKEN (free) → uses CourtListener's citation-lookup endpoint (Eyecite extraction + full metadata).

It never fabricates — an unresolved citation is reported not-found, never invented.

Layout

api/verify.js          REST endpoint (quota + verify)api/health.js          liveness + CourtListener checkapi/checkout|key|stripe-webhook.js   Stripe Pro billinglib/verify.js          citation extraction + CourtListener resolution (core)lib/store.js           Redis quota + key store (fail-open without REDIS_URL)lib/stripe.js          lazy Stripe clientmcp/server.js          MCP stdio server — verify_citations toolpublic/                landing, docs, pricing, llms.txtscripts/setup-stripe-product.js   one-time Stripe product/price (test key)

Config (Vercel env — all optional for the MVP)

  • COURTLISTENER_TOKEN — free; enables richer citation-lookup + metadata.
  • REDIS_URL — Upstash; enables hard daily quota + caching (fail-open without it).
  • STRIPE_SECRET_KEY / STRIPE_PRICE_ID / STRIPE_WEBHOOK_SECRET — Pro billing.

Pricing

Free: 20 checks/day by IP. Pro: 2,000/day, $19/mo, 7-day trial.

Not legal advice. Verifies citation existence/metadata only — not legal correctness or good-law status.

Source: README.md at commit 2b2a58b

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.