Citation Safe Verifier
Verifies legal citations vs primary sources: existence, quote match, proposition support.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"verifier": {
"url": "https://citationsafe.com/api/mcp"
}
}
}Remote-Endpunkte
https://citationsafe.com/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (8)
⚪verify_citation(text)
Checks every legal citation in the given text against primary sources: does the cited case exist (Layer 1, CourtListener database lookup — deterministic, no LLM), does a quoted passage appear in the source opinion (Layer 2), and — on paid CitationSafe tiers — does the case support the proposition it's cited for (Layer 3). Returns VERIFIED / UNCONFIRMED / UNCONFIRMED — OUTSIDE COVERAGE / SOURCE UNAVAILABLE per citation, never a bare true/false, with source links. Not legal advice.
Eingabe-Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 64000,
"description": "Raw text containing one or more legal citations to verify"
}
},
"required": [
"text"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪verify_document(url)
Fetches a document (PDF, DOCX, or plain text) from a URL and runs the same 3-layer citation verification as verify_citation. Use this when you have a link to a brief rather than pasted text.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "URL of the PDF, DOCX, or text document to fetch and verify"
}
},
"required": [
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_verification(id)
Retrieves a previously run CitationSafe verification (by the verificationId returned from verify_citation/verify_document, or from a citationsafe.com/v/{id} share link) and returns its full per-citation results.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Verification ID"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪batch_verify_citations(texts)
Runs the same 3-layer citation verification as verify_citation across multiple texts in a single call. Each item is billed against your CitationSafe usage exactly like an individual verify_citation call — batching never bypasses your plan's monthly limit. Max 10 items per batch, 64,000 characters per item. Requires a signed-in CitationSafe account (Authorization: Bearer <access_token>) — anonymous batch calls are not supported, use verify_citation for anonymous single-text checks.
Eingabe-Schema
{
"type": "object",
"properties": {
"texts": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64000
},
"description": "Array of texts to verify, each processed as a separate verification (max 10 items, 64,000 chars each)"
}
},
"required": [
"texts"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_sanctions(query, court)
Searches CitationSafe's database of real court sanctions/orders arising from AI-hallucinated legal citations, by court name, party/case name keyword, or free-text keyword. Read-only, public data — same dataset backing citationsafe.com/sanctions-database.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"description": "Free-text keyword to match against the case name",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"court": {
"description": "Filter by court name (partial match, e.g. \"S.D.N.Y.\")",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢is_this_case_real(citation)
Deterministic existence check (Layer 1 only, no LLM) for one legal citation against CourtListener's primary-source database. Answers the single question "is this case real" for one citation — for multi-citation quote-checked verdicts across a whole brief, use verify_brief instead. Free tier: 5 checks/day per IP, no key required. For unlimited access, pass an API key as "Authorization: Bearer <key>" (contact [email protected] to request one).
Eingabe-Schema
{
"type": "object",
"properties": {
"citation": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "A single citation, e.g. \"410 U.S. 113\" or \"Roe v. Wade, 410 U.S. 113 (1973)\""
}
},
"required": [
"citation"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢verify_brief(text)
Runs existence (Layer 1) and quote-match (Layer 2) checks — both deterministic, no LLM — on every citation found in the given text and returns one verdict per citation. The multi-citation counterpart to is_this_case_real. Proposition support (Layer 3) is not included on this free/API-key surface; sign in at citationsafe.com for full 3-layer verification via verify_citation. Free tier: 5 checks/day per IP (one verify_brief call = one check, regardless of how many citations the text contains); an API key bypasses the daily cap.
Eingabe-Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 64000,
"description": "Raw text (brief excerpt, motion, memo) containing one or more legal citations"
}
},
"required": [
"text"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_phantoms(query)
Searches CitationSafe's phantom-citation registry — fabricated case names/citations that have shown up in real, sanctioned AI-hallucination incidents — by case name or the AI system that produced them. Read-only, public data. Returns an empty array (not an error) if nothing matches or the registry has no entries yet.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Free-text match against the phantom case name or the AI system that generated it"
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis