Skip to main content
Glama
algonacci

mcp-crossref

by algonacci

get_crossref_work

Fetch complete, normalized Crossref metadata for a DOI, including authors, journal, and citation counts. Use it to verify a DOI before citing.

Instructions

Get the complete, normalized metadata record for one DOI.

When to use:
    - You have a DOI (from any search tool, a PDF, a reference list) and need authors with ORCID
      and affiliations, journal, volume/issue/pages, abstract, license, funders, citation counts.
    - Checking whether a DOI is real before citing it (a 404 means Crossref does not know it).

Args:
    doi: Any DOI spelling: "10.1145/3065386", "https://doi.org/10.1145/3065386",
        "doi:10.1145/3065386". Case does not matter.

Returns:
    The work record plus "metadata_quality": {"metadata_completeness": 0-1, "missing": [...]},
    which tells you which fields the publisher did not deposit (e.g. abstract). It describes the
    metadata only, never the scientific quality of the paper.

Tips:
    - abstract is often null because many publishers do not deposit abstracts to Crossref;
      snowball_doi returns OpenAlex's abstract when it has one.
    - arXiv DOIs (10.48550/arXiv.*) are registered with DataCite, not Crossref, so this returns
      "not found"; cite_dois still works for them.
    - Use get_crossref_references for the reference list.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
doiYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses that a 404 means Crossref does not know the DOI, that arXiv DOIs are registered with DataCite so this returns 'not found', and that abstract is frequently null due to publisher deposit behavior. It also explains that metadata_quality describes metadata only, never scientific quality — a subtle but important framing caveat.

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?

Front-loaded one-line summary, then labeled blocks (When to use / Args / Returns / Tips) that map to the questions an agent actually asks. Each sentence carries distinct information; none restate the name or title.

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 single-param read tool this is complete: input formats, output semantics (metadata_quality with its missing-fields meaning), failure modes, and known data-source gaps are all covered. The output schema handles structure, so the description is free to explain interpretation.

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

Parameters5/5

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

Schema coverage is 0% for the single doi parameter, so the description must compensate — and it does, enumerating accepted spellings ('10.1145/3065386', 'https://doi.org/...', 'doi:10.1145/...') and stating case-insensitivity. This is meaningfully more than the bare 'string' schema field.

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?

Opens with a specific verb+resource+scope: 'Get the complete, normalized metadata record for one DOI.' It clearly delimits itself from get_crossref_references (reference list) and snowball_doi (alternate abstract source) in the Tips, so an agent can route between siblings without opening 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?

The 'When to use' block gives two concrete triggering conditions (you already hold a DOI; you want to validate a DOI before citing), and the Tips name explicit alternatives and their conditions — snowball_doi for abstracts, cite_dois for arXiv DOIs, get_crossref_references for reference lists.

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