Skip to main content
Glama
mlava

Scholar Sidekick

Audit Bibliography

auditBibliography
Read-onlyIdempotent

Audit an entire bibliography at once: verify each citation against real identifiers, detect mismatched titles, and flag retracted papers. Returns per-entry verdicts and a summary.

Instructions

Verify a WHOLE bibliography in one call — the batch counterpart to verifyCitation. Each entry runs the same fabrication check (real, resolvable identifier paired with a title that does NOT match the resolved paper; Topaz et al., Lancet 2026) plus a retraction lookup, and the tool returns a per-entry verdict table and a corpus summary. Use when the user pastes a reference list, a .bib / .ris file, or asks to 'check all these citations at once' / 'audit my bibliography' / 'which of these references are fake or retracted'. Input: EITHER bibliography (raw BibTeX / RIS / CSL-JSON text — format auto-detected) OR claims (an array of pre-parsed {title + identifier} objects), not both. Capped at 25 entries per call; excess is dropped and reported via truncated. checks defaults to ['retraction'] (pass [] to skip); screenWithLlm opt-in per entry (same auth gating as verifyCitation). Returns: { format, entries: [{ index, sourceKey?, status: 'ok'|'error', verdict: 'matched' | 'mismatch' | 'not_found' | 'ambiguous', confidence, matched, mismatches, retraction: { checked, doi, isRetracted, hasCorrections, hasConcern, notices } | null, provenance }], parseErrors: [{ index, error, message }], truncated, summary: { total, matched, mismatch, ambiguous, not_found, errored, retracted } }. Reading the result: index is 1-BASED (entry 1 is the first reference) — do not add 1 again when reporting it. sourceKey is the entry's own key in the source file (BibTeX cite key, RIS ID, CSL-JSON id) and is the reliable way to point a user at the offending reference; it is absent on the claims[] path. entries and parseErrors share one index space, so a given input position appears in exactly one of them — report parseErrors as UNCHECKED, never as clean. summary.total counts verifiable entries only, excluding parseErrors and anything past the cap; summary.retracted is a separate axis from the verdict counts (an entry can be both matched and retracted), so never sum those fields. A non-zero truncated means the audit is incomplete — split the bibliography and call again. Per-entry leniency: one entry that fails to resolve becomes status:'error' without failing the batch. This audits citation IDENTITY (does each identifier resolve to the claimed work, and is it retracted) — it does NOT check whether a source supports the claim it is cited for. Read-only and idempotent. Works anonymously for the non-LLM path; SCHOLAR_API_KEY (a free ssk key from https://scholar-sidekick.com/account) or a paid RapidAPI tier raises rate limits and enables the optional LLM screen.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
checksNoPer-entry enrichment checks. Defaults to ['retraction'] (flags retracted / corrected / expression-of-concern works via Crossref + Retraction Watch, keyed on each resolved DOI). Pass [] to skip.
claimsNoPre-parsed citations to audit — an alternative to `bibliography` for agents that already hold structured references. Each needs a `title` plus whatever identifiers the citation carries.
formatNoOverride format auto-detection for `bibliography`.
bibliographyNoRaw bibliography text to parse and audit — BibTeX, RIS, or CSL-JSON. Provide EITHER this or `claims`, not both. Format is auto-detected; override with `format`. Capped at 25 entries per call (excess dropped, reported via `truncated`).
screenWithLlmNoOpt-in Stage 3 LLM screen applied per entry (same gating as verifyCitation). Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changedv0.8.11
    • addedInput schema / properties / claims / items / properties / ads / description
      Added value: +"NASA ADS bibcode, e.g. '2019A&A...625A.135L'."
    • addedInput schema / properties / claims / items / properties / arxiv / description
      Added value: +"arXiv ID, e.g. '2301.00001' or 'arXiv:2301.00001'."
    • changedInput schema / properties / claims / items / properties / author / description
      Previous value: -"First-author family name as cited."New value: +"First-author family name as cited. Refines the comparison; a disagreement here can downgrade a verdict to 'ambiguous'."
    • addedInput schema / properties / claims / items / properties / container / description
      Added value: +"Journal or book title as cited. Refinement only, same role as `year`."
    • addedInput schema / properties / claims / items / properties / doi / description
      Added value: +"DOI as cited, with or without a prefix ('10.1038/nphys1170' or a doi.org URL)."
    • addedInput schema / properties / claims / items / properties / isbn / description
      Added value: +"ISBN-10 or ISBN-13; hyphens are tolerated."
    • addedInput schema / properties / claims / items / properties / issn / description
      Added value: +"ISSN of the containing journal. Identifies a container, not a paper, so it cannot resolve an entry on its own — supply it alongside another identifier."
    • addedInput schema / properties / claims / items / properties / pmcid / description
      Added value: +"PubMed Central ID, e.g. 'PMC1234567'."
    • addedInput schema / properties / claims / items / properties / pmid / description
      Added value: +"PubMed ID, digits only or 'PMID:' prefixed."
    • changedInput schema / properties / claims / items / properties / title / description
      Previous value: -"Title as cited. Required for each claim."New value: +"Title exactly as the citation claims it. Required — the audit compares this against the title of the record the identifier actually resolves to, and that comparison is the fabrication check."
    • addedInput schema / properties / claims / items / properties / whoIrisUrl / description
      Added value: +"WHO IRIS publication URL."
    • addedInput schema / properties / claims / items / properties / year / description
      Added value: +"Publication year as cited. Refinement only — it never decides a verdict alone."
  2. Addedv0.8.3

TDQS

A4.6/5.0
Behavior5/5

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

The description adds substantial operational detail beyond the readOnly/idempotent/openWorld annotations: 1-based indexing warnings, the shared index space between entries and parseErrors ('report parseErrors as UNCHECKED, never as clean'), truncation at 25 with excess dropped, the warning never to sum summary.retracted with verdict counts, per-entry error leniency, and anonymous-vs-key auth/rate-limit differences. No statement contradicts the annotations.

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

Conciseness4/5

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

The description is long (~470 words) but front-loaded: purpose, usage triggers, and input contract come first, with return and edge semantics after. The inline return-type spec and the 'Reading the result' section are verbose, but they are justified by the absence of an output schema; the structure is logical and each section earns its place.

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?

With no output schema and a complex batch tool (two mutually exclusive input modes, truncation, parse errors, a retraction axis separate from verdicts, and auth gating), the description carries the full burden and covers nearly everything: input contract, return shape, 1-based indexing, sourceKey resolution semantics, error handling, scope limits, and rate limits. Nothing an agent needs to call it correctly is missing.

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 description coverage is 100%, so the schema already documents all five parameters thoroughly (bibliography vs claims exclusivity, maxItems 25, checks default of ['retraction'], format enum, screenWithLlm default false). The description mostly restates the EITHER/OR input contract and the cap, adding only the cross-tool auth-gating link for screenWithLlm, so it stays at the baseline of 3.

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 first sentence states a specific action and resource: 'Verify a WHOLE bibliography in one call', and immediately differentiates it from its sibling: 'the batch counterpart to verifyCitation'. It also names the exact fabrication check (identifier resolving to a title that does NOT match) plus retraction lookup, so an agent can tell exactly what the tool does without opening the schema.

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?

An explicit 'Use when...' sentence lists concrete triggers: pasting a reference list, a .bib/.ris file, or phrasing like 'check all these citations at once' / 'audit my bibliography' / 'which of these references are fake or retracted'. It also states an explicit exclusion — 'it does NOT check whether a source supports the claim it is cited for' — which prevents confident misuse, and positions the tool as the batch counterpart of verifyCitation.

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