On 2026-10-20, calling check_references on Citation Checker checked 3 bibliography references in 2,670 ms against Crossref, DataCite and OpenAlex: it confirmed the 2021 AlphaFold paper in Nature (10.1038/s41586-021-03819-2, verdict: "found", retraction.status: "none_recorded"), flagged Wakefield et al. 1998 in The Lancet (10.1016/s0140-6736(97)11096-0) as retracted with both its 2004-03-06 correction DOI and its 2010-02-06 retraction DOI, and returned verdict: "unavailable" (rather than a false verdict) on a fabricated 2019 Nature neutron-star reference when OpenAlex timed out. A 4-reference call completed in 2,581 ms and also caught a 2019 vs 2021 publication-year mismatch (verdict: "mismatch", differences: ["year"]).
Large language models frequently invent plausible-looking bibliography lines by combining real author names, real journal titles such as Nature or The Lancet, and a fabricated DOI string, or by citing a real paper that was later retracted. Raw Crossref search endpoints return ranked candidate lists without telling you whether a citation actually matches or whether it carries a retraction notice. The Citation Checker MCP server (https://citations.openkrill.app/mcp) checks 1 to 20 references in a single call with no API key.
1. Check a 3-reference bibliography for real DOIs, fake papers and retractions
In our saved 2026-10-20 ranking run, we passed three bibliography strings to check_references:
- Real paper: Jumper J, Evans R, Pritzel A, et al., "Highly accurate protein structure prediction with AlphaFold", Nature 2021;596:583-589,
doi:10.1038/s41586-021-03819-2. - Fabricated citation and DOI: Smith J, Lee K., "Deep learning predicts quantum gravity corrections in neutron stars", Nature 2019;570:112-118,
doi:10.1038/s41586-019-1234-9. - Retracted paper: Wakefield AJ, Murch SH, Anthony A, et al., "Ileal-lymphoid-nodular hyperplasia, non-specific colitis, and pervasive developmental disorder in children", Lancet 1998;351:637-641,
doi:10.1016/S0140-6736(97)11096-0.
Here is the exact JSON-RPC request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "check_references",
"arguments": {
"references": [
"Jumper J, Evans R, Pritzel A, et al. Highly accurate protein structure prediction with AlphaFold. Nature. 2021;596:583-589. doi:10.1038/s41586-021-03819-2",
"Smith J, Lee K. Deep learning predicts quantum gravity corrections in neutron stars. Nature. 2019;570:112-118. doi:10.1038/s41586-019-1234-9",
"Wakefield AJ, Murch SH, Anthony A, et al. Ileal-lymphoid-nodular hyperplasia, non-specific colitis, and pervasive developmental disorder in children. Lancet. 1998;351:637-641. doi:10.1016/S0140-6736(97)11096-0"
]
}
}
}
In 2,670 ms (as_of: "2026-10-20T06:08:04.422Z"), check_references returned:
{
"as_of": "2026-10-20T06:08:04.422Z",
"source": {
"name": "Crossref, DataCite and OpenAlex",
"url": "https://api.crossref.org"
},
"summary": {
"found": 2,
"mismatch": 0,
"not_found": 0,
"unavailable": 1,
"ambiguous": 0,
"retracted": 1
},
"references": [
{
"index": 1,
"verdict": "found",
"doi": "10.1038/s41586-021-03819-2",
"title": "Highly accurate protein structure prediction with AlphaFold",
"authors": ["Jumper", "Evans", "Pritzel", "et al."],
"year": 2021,
"venue": "Nature",
"source": "Crossref",
"retraction": { "status": "none_recorded" }
},
{
"index": 2,
"verdict": "unavailable",
"message": "The DOI does not exist, and no matching paper was found in Crossref, but OpenAlex, which holds most conference papers, could not be searched right now. This is not a verdict; try again in a few minutes."
},
{
"index": 3,
"verdict": "found",
"doi": "10.1016/s0140-6736(97)11096-0",
"title": "RETRACTED: Ileal-lymphoid-nodular hyperplasia, non-specific colitis, and pervasive developmental disorder in children",
"authors": ["Wakefield", "Murch", "Anthony", "et al."],
"year": 1998,
"venue": "The Lancet",
"source": "Crossref",
"retraction": {
"status": "retracted",
"notices": [
{ "type": "correction", "date": "2004-03-06", "doi": "10.1016/s0140-6736(04)15715-2" },
{ "type": "retraction", "date": "2010-02-06", "doi": "10.1016/s0140-6736(10)60175-4" }
]
}
}
]
}
2. Catch year, author or title mismatches on real DOIs
When a bibliography line cites a real DOI but has the wrong publication year, first author or title, check_references returns verdict: "mismatch" and lists the conflicting fields in differences. In our 4-reference run on 2026-10-20 (2,581 ms), adding a fourth line that cited the 2021 AlphaFold paper as Nature. 2019;596:583-589. doi:10.1038/s41586-021-03819-2 produced:
{
"index": 4,
"verdict": "mismatch",
"doi": "10.1038/s41586-021-03819-2",
"title": "Highly accurate protein structure prediction with AlphaFold",
"authors": ["Jumper", "Evans", "Pritzel", "et al."],
"year": 2021,
"venue": "Nature",
"source": "Crossref",
"retraction": { "status": "none_recorded" },
"differences": ["year"],
"message": "Matches a real paper, but the year in the reference differs from the record shown."
}
3. How Citation Checker compares with Crossref Simple Text Query, Crossref REST API and scite
On 2026-10-20 we tested the same 3-reference list across Citation Checker and three alternatives:
| Tool | Wall time | Fake #2 (10.1038/s41586-019-1234-9) |
Retracted #3 (Wakefield 1998) |
|---|---|---|---|
OpenKrill Citation Checker (check_references) |
2,670 ms (1 call for all 3) | Reports DOI does not exist and no match in Crossref (verdict: "unavailable" while OpenAlex is unreachable) |
Flags retraction.status: "retracted" with 2004 correction DOI and 2010 retraction DOI |
Crossref Simple Text Query (apps.crossref.org/SimpleTextQuery) |
1,780 ms | Leaves reference #2 without a DOI link, with no verdict word | Links to 10.1016/s0140-6736(97)11096-0 with no retraction flag |
Crossref REST API (api.crossref.org/works?query.bibliographic=) |
4,045 ms (3 calls, 1 per reference) | Returns an unrelated real neutron-star paper as the top hit with no verdict | Returns the Wakefield record as top hit; requires custom code to inspect update-to notices |
scite Reference Check (scite.ai/reference-check) |
Not run | Blocked without login | Requires a scite account and a paid subscription plan |
4. Connect Citation Checker in ChatGPT, Claude, Cursor, VS Code or Pi
Add https://citations.openkrill.app/mcp to your client or follow the step-by-step setup guides for ChatGPT, Claude, Cursor, VS Code and Pi:
{
"mcpServers": {
"citations": {
"type": "streamable-http",
"url": "https://citations.openkrill.app/mcp"
}
}
}
Frequently asked questions
How can I check a list of references in a paper to see which DOIs are real, mismatched or retracted?
Pass 1 to 20 bibliography strings to check_references on https://citations.openkrill.app/mcp. In one call, the server checks each reference against Crossref, DataCite and OpenAlex, returning a per-reference verdict (found, mismatch, not_found, ambiguous or unavailable), the matched DOI, title, authors, year and venue, any field differences, and a retraction status block.
How does Citation Checker report retractions and corrections on a cited paper?
For every matched DOI, check_references inspects Crossref update-to notices and OpenAlex retraction flags. On Wakefield et al. 1998 (10.1016/s0140-6736(97)11096-0), it returns retraction.status: "retracted" along with both dated notices: the 2004-03-06 correction (10.1016/s0140-6736(04)15715-2) and the 2010-02-06 retraction (10.1016/s0140-6736(10)60175-4).
What happens when a citation has a real DOI but the wrong publication year in my bibliography?
When a DOI resolves or a title matches a known work but your citation text disagrees on the year, title or first author (such as citing the 2021 AlphaFold Nature paper as 2019), check_references sets verdict: "mismatch" and lists the conflicting fields in differences (for example ["year"]).
Why did Citation Checker return verdict unavailable instead of not_found on the fake Smith & Lee 2019 Nature reference?
DOI 10.1038/s41586-019-1234-9 did not exist and Crossref had no matching paper, but OpenAlex (which holds many conference papers) could not be searched during that call. Rather than guess not_found from an incomplete search, Citation Checker returns verdict: "unavailable" with an explicit retry message.