# Citation Safe Verifier

> Verifies legal citations vs primary sources: existence, quote match, proposition support.

- name: com.citationsafe/verifier
- version: 1.0.0
- connection class: unknown (unknown)
- trust: 56/100 flags: unreachable
- quality: 85/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.citationsafe%2Fverifier
- tools: https://api.protogrid.dev/v1/servers/com.citationsafe%2Fverifier/tools

**Not classified yet.** The remote endpoints have not been probed successfully, or the listing has nothing to connect to.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "verifier": {
      "type": "http",
      "url": "https://citationsafe.com/api/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 0
- freshness: 65
- provenance: 75
- drivers: +repository +dns-namespace -unreachable(4 failures) ~updated-98d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 8 of 8 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: verify_citation (idempotentHint); verify_document (idempotentHint); get_verification (idempotentHint); …
- pass `tools.token_cost`: about 1,460 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 8, about 1,460 tokens to load them all
- tool set hash: 18d599ea1180d05fc9774a24af54c8e5
- badge: [![protogrid quality](https://protogrid.dev/badge/com.citationsafe/verifier.svg)](https://protogrid.dev/servers/com.citationsafe/verifier)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://citationsafe.com/api/mcp (streamable-http, auth none, reachable false, uptime30d 0.962963)

## Packages

_none_

## Tools (8)

- `batch_verify_citations`: 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.
- `get_verification`: 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.
- `is_this_case_real`: 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 support@citationsafe.com to request one).
- `search_phantoms`: 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.
- `search_sanctions`: 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.
- `verify_brief`: 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.
- `verify_citation`: 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.
- `verify_document`: 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.
