# paper-preflight

Validates academic references in LaTeX, Word, and Markdown against scholarly databases like Crossref and PubMed. Catches retracted papers and bogus DOIs without LLM guesswork.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 100
- Author: amos689
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/amos689/paper-preflight
- Updated: 2026-10-15
- HTML: https://affpapa.org/en/nevibecode/mcp/paper-preflight

## What it does

The server cross-checks citations against scholarly registries such as Crossref, dblp, PubMed, DataCite, arXiv, and OpenAlex. It parses LaTeX projects, Word manuscripts, Markdown drafts, Typst files, and PDF reference lists. No language model handles the evaluation. When records stay silent, the tool reports that it cannot verify the item instead of inventing confirmation.

It flags missing citation keys, mismatched publication years, retracted studies, and preprints that journal issues have superseded. You also get alerts for duplicated entries or escaped characters inside DOI strings. Python 3.11 or `uvx` is required. Non-Latin paper titles are currently unsupported.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add paper-preflight -- uvx paper-preflight
```
uvx runs the command named after the package; if the README names another one, use uvx --from paper-preflight <command>

### Codex

**Platform CLI**
```bash
codex mcp add paper-preflight -- uvx paper-preflight
```
uvx runs the command named after the package; if the README names another one, use uvx --from paper-preflight <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "paper-preflight": {
            "command": "uvx",
            "args": [
                "paper-preflight"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from paper-preflight <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "paper-preflight": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "paper-preflight"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from paper-preflight <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add paper-preflight uvx paper-preflight
```
uvx runs the command named after the package; if the README names another one, use uvx --from paper-preflight <command>

## When to use it
- detect retracted publications and formal corrections in bibliographies
- spot mismatched or broken DOIs in BibTeX files
- check whether cited preprints have formal journal releases
- verify manuscript citations against registries without LLM hallucinations

## Example prompts
- Check refs.bib for retracted papers and invalid DOIs with paper-preflight
- Audit citations in main.tex against scholarly databases
- Inspect the reference list in paper.docx for publication year mismatches

## Similar
- [Zotero MCP](https://affpapa.org/en/nevibecode/mcp/zotero-mcp.md) — MCP server · ★ 5548
- [arxiv-mcp-server](https://affpapa.org/en/nevibecode/mcp/arxiv-mcp-server.md) — MCP server · ★ 3231
- [PaperBanana](https://affpapa.org/en/nevibecode/mcp/paperbanana.md) — MCP server · ★ 2417
- [MATLAB MCP Server](https://affpapa.org/en/nevibecode/mcp/matlab-mcp-server.md) — MCP server · ★ 1716
- [Hex Research](https://affpapa.org/en/nevibecode/mcp/hex-research.md) — MCP server · ★ 583
- [DocsAgent — Zotero, Obsidian & Apple Notes MCP Server](https://affpapa.org/en/nevibecode/mcp/docsagent-zotero-obsidian-apple-notes-mcp-server.md) — MCP server · ★ 578

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
