mcpField
L
legalcite

legalcite

Local
legalcite-one.vercel.appLegal & Government0Updated 18w ago

About legalcite

LegalCite verifies case citations in legal text against CourtListener records and flags missing or mismatched cases. It serves legal-text workflows through a REST API and an MCP server.

Key features

  1. 01Citation extraction from text
  2. 02CourtListener case lookup
  3. 03Real, not-found, and mismatch verdicts
  4. 04Optional richer metadata lookup
  5. 05REST API and MCP tool

Use cases

  1. 01Checking citations in AI-generated legal text
  2. 02Finding fabricated or misattributed cases
  3. 03Reviewing case references in legal documents

MCP support

The MCP server exposes the `verify_citations(text)` tool, which checks legal citations against CourtListener records.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"kevinx702-legalcite": {
"command": "npx",
"args": [
"-y",
"legalcite-mcp"
]
}
}
}
Run commandnpx -y legalcite-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmlegalcite-mcp0.1.0

Tools

1

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
textstringYestext containing one or more legal citations to verify, e.g. a paragraph from a brief or "410 U.S. 113"

Details

From the project 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 check
api/checkout|key|stripe-webhook.js   Stripe Pro billing
lib/verify.js          citation extraction + CourtListener resolution (core)
lib/store.js           Redis quota + key store (fail-open without REDIS_URL)
lib/stripe.js          lazy Stripe client
mcp/server.js          MCP stdio server — verify_citations tool
public/                landing, docs, pricing, llms.txt
scripts/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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.