# Citation Safe Verifier (remote · citationsafe.com)

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

- Trust score: 76/100 (medium)
- Change this week: +6
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `citationsafe.com`: 76/100 (this document), [markdown](https://verifymcp.io/servers/com-citationsafe-verifier/api-mcp.md), [page](https://verifymcp.io/servers/com-citationsafe-verifier/api-mcp)

## Channel facts

- Endpoint: `https://citationsafe.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 77/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 916 tokens (~114/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-citationsafe-verifier https://citationsafe.com/api/mcp
```

### Codex

```toml
[mcp_servers.com-citationsafe-verifier]
url = "https://citationsafe.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-citationsafe-verifier": {
      "type": "remote",
      "url": "https://citationsafe.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-citationsafe-verifier --url https://citationsafe.com/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-citationsafe-verifier:
    url: "https://citationsafe.com/api/mcp"
```

### Other

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

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 75, +3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 72, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 70, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 69)

First indexed and scored.

## MCP tools (8)

### `verify_citation` (~134 tokens)

Verify legal citations in 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.

Input parameters:

- `text` (string, required): Raw text containing one or more legal citations to verify

### `verify_document` (~76 tokens)

Verify legal citations in a 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.

Input parameters:

- `url` (string, required): URL of the PDF, DOCX, or text document to fetch and verify

### `get_verification` (~61 tokens)

Get a past CitationSafe verification report by 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.

Input parameters:

- `id` (string, required): Verification ID

### `batch_verify_citations` (~138 tokens)

Verify legal citations across multiple texts (batch)

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.

Input parameters:

- `texts` (array, required): Array of texts to verify, each processed as a separate verification (max 10 items, 64,000 chars each)

### `search_sanctions` (~102 tokens)

Search the AI-hallucination court sanctions database

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.

Input parameters:

- `court` (string): Filter by court name (partial match, e.g. "S.D.N.Y.")
- `query` (string): Free-text keyword to match against the case name

### `is_this_case_real` (~154 tokens)

Check whether a single case citation is 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).

Input parameters:

- `citation` (string, required): A single citation, e.g. "410 U.S. 113" or "Roe v. Wade, 410 U.S. 113 (1973)"

### `verify_brief` (~153 tokens)

Verify every citation in a brief or excerpt

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.

Input parameters:

- `text` (string, required): Raw text (brief excerpt, motion, memo) containing one or more legal citations

### `search_phantoms` (~98 tokens)

Search known AI-hallucinated (phantom) case citations

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.

Input parameters:

- `query` (string, required): Free-text match against the phantom case name or the AI system that generated it

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-citationsafe-verifier/api-mcp#diagnostics

## Score history

- 2026-08-03: 76
- 2026-08-02: 76
- 2026-08-01: 75
- 2026-07-31: 75
- 2026-07-30: 72
- 2026-07-29: 71
- 2026-07-28: 71
- 2026-07-27: 70
- 2026-07-26: 69

## Links

- Remote endpoint: https://citationsafe.com/api/mcp
- Repository: https://github.com/andrewjgaber-commits/empire-distribution
- Changelog RSS feed: https://verifymcp.io/servers/com-citationsafe-verifier/api-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-citationsafe-verifier/api-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-citationsafe-verifier/api-mcp
