Citation Safe Verifier
Verifies legal citations vs primary sources: existence, quote match, proposition support.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"verifier": {
"url": "https://citationsafe.com/api/mcp"
}
}
}リモートエンドポイント
https://citationsafe.com/api/mcpstreamable-httpできること
ツール一覧
ツール(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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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#"
}コミュニティ
エビデンス