Skip to main content
Glama

Reference Checker: Fake, AI-Hallucinated & Retracted Citations

reference_checker
Read-only

Verify a bibliography against Crossref to flag fake, miscited, or retracted references before submission or peer review. Use it to audit DOIs or titles for accuracy.

Instructions

Verify an existing bibliography against Crossref: flags fake (AI-hallucinated), miscited and retracted references, one row per reference. Unlike citation_formatter, it judges whether a reference is real and accurate; it does not produce formatted styles. Use when you must audit a reference list, DOIs or titles before submission or review. Do not use to discover new papers (use literature_search or pubmed_evidence_table) or to restyle citations (use citation_formatter). Parameters: give bibliography, dois or titles (at least one). Lowering minMatchScore finds more but risks false matches; includeCandidates adds audit detail without extra charge. mode=monitor re-checks the DOIs/ORCID works against the state saved under monitorName and reports only new problems, so reuse the same monitorName on scheduled runs. Each reference checked is billed, so maxReferences/run_max_items cap cost on long lists. Returns per item: summary, status (OK/CHECK/FIX), verdict, matchedDoi, matchScore, mismatches (cited vs actual), integrity.status (retracted, corrected, expression-of-concern), openAccessUrl, warnings.

Behavior: read-only; runs the Apify Actor pandadad0214/reference-checker (https://apify.com/pandadad0214/reference-checker) on your own Apify account. Price: $0.01 per reference checked. Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned and fills maxReferences when you leave it unset, so it also limits what is billed; setting maxReferences higher can bill more than is returned. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.

Input Schema

NameRequiredDescriptionDefault
doisNoDOIs. DOIs to check (bare 10.xxxx/..., doi: prefix or https://doi.org/ URLs).
modeNoMode. 'check' = the normal one-off check. 'monitor' = re-check the DOIs (and/or ORCID works) and compare with the previous run's saved state. Choices: check = Check references (one-off); monitor = Monitor DOIs / ORCID for new retractions (schedule it).check
orcidNoORCID iD (monitor mode). Optional. Monitor every DOI on this researcher's public ORCID record (plus Crossref works tagged with it), e.g. 0000-0002-1825-0097. Combined with the DOIs list.
titlesNoPaper titles. Article titles to look up when you have no full reference.
monitorNameNoMonitor name (monitor mode). Optional. Name of the key-value store in your account that keeps state between runs (letters, digits, hyphens). Use a different name for each list you monitor. Default: refcheck-monitor-, or refcheck-monitor.
bibliographyNoBibliography / reference list. Paste a reference list in any common style (APA, MLA, Chicago, Vancouver, IEEE, Harvard). One reference per line, numbered ([1], 1.), or separated by blank lines.
contactEmailNoContact email for Crossref (optional). Optional. Sent to Crossref as the mailto contact so requests use its faster 'polite' pool. Never shared elsewhere.
maxReferencesNoMax references per run. Safety cap on references checked (each is billed). Whole number, 1 to 20,000 references; default 1,000.
minMatchScoreNoMinimum match score (0-100). How close a Crossref record must be (title, authors, year) to count as found. Lower finds more but risks false matches. Whole number, 50 to 100; default 80.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
checkOpenAccessNoFind open-access links. Look up free legal full-text links via OpenAlex. Default: on.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
includeCandidatesNoInclude candidate matches. Also output the top Crossref candidates and their scores for each reference (useful for auditing). Default: off.
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false and idempotentHint=false, and the description is consistent with all of them ('read-only'). It adds real value beyond them: the Apify actor and account it runs under, $0.01-per-reference billing, the run_max_charge_usd cap, that finding nothing is not charged, timeout behavior (5-15 s typical, raise run_timeout_secs to 300), and that monitor mode persists state in a key-value store. That is substantive operational context, though it is packed into a single dense block rather than organized by concern.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and sibling differentiation are front-loaded, followed by usage, then parameters, then runtime/billing behavior, then return shape — a sensible ordering. The prose is dense but nearly every sentence carries non-obvious information (billing mechanics, monitor state, timeout escalation) rather than restating the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, zero-required, billed, open-world tool with no output schema, the description covers what an agent needs: at least one of bibliography/dois/titles is required, cost and cap mechanics, timeout escalation, persisted monitor state, and an explicit per-item return field list (status, verdict, matchedDoi, matchScore, mismatches, integrity.status, openAccessUrl, warnings). Little is left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 14 parameters and the baseline of 3 applies. The description does add cross-parameter meaning the schema cannot: lowering minMatchScore trades recall for false matches, includeCandidates is free, run_max_items fills maxReferences when unset, and setting maxReferences higher can bill more than is returned — genuine semantic value, but scattered and not systematic.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb and resource ('Verify an existing bibliography against Crossref') plus the failure classes it detects (fake/hallucinated, miscited, retracted) and the output shape ('one row per reference'). It then explicitly contrasts itself with citation_formatter ('judges whether a reference is real and accurate; it does not produce formatted styles'), so an agent can separate it from siblings without reading schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the trigger ('Use when you must audit a reference list, DOIs or titles before submission or review') and both exclusions with named alternatives: discovery goes to literature_search or pubmed_evidence_table, restyling goes to citation_formatter. Monitor-mode usage (reuse the same monitorName on scheduled runs) is also specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.