npm legalcite-mcpstdioupdated 2mo ago
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.
What can you do with legalcite?
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"; alsoPOST {text}) - MCP:
verify_citations(text)→ npmlegalcite-mcp - Data: CourtListener (Free Law Project) — free public U.S. court records.
Verdicts
| verdict | meaning |
|---|---|
real |
the case exists and (if named) the name matches |
not-found |
no such case — likely hallucinated |
mismatch |
citation is real, but the case name in the text is wrong |
How it resolves
- 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). - Token mode (optional): set
COURTLISTENER_TOKEN(free) → uses CourtListener'scitation-lookupendpoint (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.
Install
Add legalcite to your client. Pick the one you use.
claude mcp add legalcite-mcp -- npx -y legalcite-mcpcodex mcp add legalcite-mcp -- npx -y legalcite-mcpamp mcp add legalcite-mcp -- npx -y legalcite-mcp{
"mcpServers": {
"legalcite-mcp": {
"command": "npx",
"args": [
"-y",
"legalcite-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"legalcite-mcp": {
"command": "npx",
"args": [
"-y",
"legalcite-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"legalcite-mcp","command":"npx","args":["-y","legalcite-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"legalcite-mcp": {
"command": "npx",
"args": [
"-y",
"legalcite-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"legalcite-mcp": {
"command": "npx",
"args": [
"-y",
"legalcite-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"legalcite-mcp": {
"command": "npx",
"args": [
"-y",
"legalcite-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"legalcite-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"legalcite-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"legalcite-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"legalcite-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y legalcite-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation22/25
- Maintenance16/25
- Trust6/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 66 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.0Latest | Jun 27, 2026 |