Skip to main content
Glama

claim

When an AI quotes a document, claim shows you the actual page with the quote highlighted. It's one MCP tool that takes a file and a quote and returns a picture: green if the whole quote is there, amber if only part of it is, and a red bar with the page untouched if it couldn't find it. It reads PDFs, text and markdown files, CSV/TSV/XLSX tables, images, web pages, and links to files. In Claude Code it comes as a plugin that also scans every answer against the files the session read: every run of eight words the answer shares with a file, and every figure in it, is checked whether or not the model called the tool or used quotation marks. A figure counts only where the file's line shares words with the answer's sentence around it. $22,270M matches 22,270 on a page "in millions". A figure in no file is "worked out" (computed or inferred, never checked), and claim lists the figures next to it in the answer and where they are. The point is to make any citation checkable at a glance, without trusting the model's say-so.

Install

You need uv. Then, for Claude Code:

claude plugin marketplace add alnaik/claim
claude plugin install claim@claim

The first call is slow while uv sets things up. Web pages also need a browser: uv run playwright install chromium, once, in a clone or the installed folder.

To try it without any AI:

git clone https://github.com/alnaik/claim.git && cd claim && uv sync
uv run claim fixtures/report.pdf "operating margins to remain broadly stable" --page 2  # writes out.png

Related MCP server: CiteGuard

Add it to Claude Code / Claude Desktop / Cursor

Claude Code: the plugin above is all you need; it brings the server, tells Claude when to call it, and scans the answers. From a clone, claude --plugin-dir . loads the same plugin.

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json) and Cursor (~/.cursor/mcp.json) take this block, with the path to your clone:

{
  "mcpServers": {
    "claim": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/claim", "claim-server"]
    }
  }
}

Use it

Ask Claude about a file. Under its answer comes one line per claim, the first problem open. These are drawn from claim's real output, on the fixtures and on a Walmart 10-K:

Quotes from two PDFs: one in the file, one partly, one not in the file A spreadsheet cell, lit in its row Figures from a filing: in the file (in millions, rounded), and worked out with the figures near them

In Claude Code each answer gets one line per claim under it, in the answer's order: the dot, the claim in Claude's words, and where it is; auto marks one claim checked by itself, not because Claude asked. The first problem's card is open, and a click on a line opens or closes its card: the highlighted lines close up, and enlarge opens the picture. The line above the prompt counts the answer's checks; a click on it or /claim opens the pane, the same lines for every answer. /claim path/to/file adds a file to check against. A claim call on a file the session opened runs without a permission prompt; any other asks.

What it can't do yet

  • A figure counts only where its line in the file shares words with the answer's sentence, so one on a table row with no words on it (a column of totals) comes back "worked out".

  • A paraphrase with no eight words in common with the file produces nothing, by design: claim checks literally and never guesses.

  • Web pages are loaded by a headless browser, so pages that need a login or block bots won't work.

  • No OCR: scanned PDFs come back "not found", and images come back "not searchable".

  • A quote that runs across a page break is shown as a partial match from one page.

  • Spreadsheets: .xlsx, .xlsm and .xls work, .ods and Numbers don't. Cells show the way Excel shows them for the common number and date codes, with the stored value under them; other codes, .xls and CSV show the stored value; Excel's default date follows this computer's date order. A formula cell shows its saved result, or the formula itself when a script wrote the file without one; claim never works a sum out.

  • Word, PowerPoint and other office files aren't read yet, nor pasted images with no file. Files opened through a shell command are tracked by their names in the command.

  • Cards show pictures only in terminals that draw images (Ghostty, Kitty, WezTerm); elsewhere a PDF card shows the status line, and enlarge opens the picture. The desktop app and VS Code may show a large crop's path. Claude Desktop and Cursor get the tool's image only, no band, pane or scan. In Claude Desktop's chat a file you upload stays on Anthropic's servers, where claim can't reach it: tell Claude the file's path on your computer instead.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables per-claim citation verification for AI-generated text by fetching cited sources and judging whether they support the claim, with verdicts and evidence quotes.
    47 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables agents to verify whether citations exist and match canonical records, and whether URLs resolve and contain expected content, with evidence-backed confirmed, contradicted, or unknown verdicts.
    2
    33 PyPI
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI writing assistants to retrieve citable evidence from local PDFs and verify draft citations against their sources locally, providing verifiable support for claims.
    2
    2
    MIT