Skip to main content
Glama

crossref-mcp-server

Get Reference List

crossref_get_references
Read-onlyIdempotent

Returns the outgoing reference list for a DOI — the works cited by this paper. Each reference includes the deposited citation string and, where Crossref has resolved it, a DOI you can look up with crossref_get_work. Results are paged: referenceCount is the full deposited total, and when more remain the response carries a nextOffset to pass back as offset. Reference list coverage varies by publisher; many older works and non-participating publishers have no indexed references. Incoming citations — the works that cite this paper — are not available through Crossref; use OpenAlex for that.

Input Schema

NameRequiredDescriptionDefault
doiYesDOI in the format "10.NNNN/suffix", e.g. "10.1038/nature12373". A resolver-wrapped form — "https://doi.org/10.1038/nature12373", "https://dx.doi.org/…", "doi:10.1038/nature12373" — is accepted and unwrapped.
limitNoMaximum number of references to return in one page (1–500 per call, default 100). A larger value, up to 100000, returns 500 and says so in notice; nextOffset continues after the references returned. Most works fit in a single page; bibliography records can carry tens of thousands.
offsetNoZero-based index of the first reference to return. Pass the nextOffset value from the previous response to continue through a long reference list.

Output Schema

NameRequiredDescriptionDefault
capNoThe limit that was applied to this page.
doiNoDOI of the citing work
errorNoPresent when the call failed. Absent on success.
shownNoNumber of references returned in this page.
noticeNoCoverage guidance when no references are indexed, a range explanation when the requested offset is past the end of the list, or which references this page covers and the offset that reaches the next ones. Leads with the value requested and the cap applied when limit was above its per-call cap. Absent on a page that holds the whole list with limit within its cap.
offsetNoZero-based index of the first returned reference within the deposited list
truncatedNoTrue when references remain beyond this page. Absent when the page is the last.
nextOffsetNoOffset to pass in the next call to retrieve the following page. Absent when this page reaches the end of the reference list.
referencesNoPage of the outgoing reference list
referenceCountNoTotal number of references in the deposited list

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum number of references to return in one page (1–500, default 100). Most works fit in a single page; bibliography records can carry tens of thousands."New value: +"Maximum number of references to return in one page (1–500 per call, default 100). A larger value, up to 100000, returns 500 and says so in notice; nextOffset continues after the references returned. Most works fit in a single page; bibliography records can carry tens of thousands."
    • changedInput schema / properties / limit / maximum
      Previous value: -500New value: +100000
    • changedOutput schema / properties / notice / description
      Previous value: -"Coverage guidance when no references are indexed, or a range explanation when the requested offset is past the end of the list. Absent on a normal page."New value: +"Coverage guidance when no references are indexed, a range explanation when the requested offset is past the end of the list, or which references this page covers and the offset that reaches the next ones. Leads with the value requested and the cap applied when limit was above its per-call cap. Absent on a page that holds the whole list with limit within its cap."
    • addedOutput schema / properties / references / items / properties / doiAssertedBy
      Added value: +{
      +  "description": "Who supplied the DOI: \"publisher\" when the citing work's publisher deposited it, \"crossref\" when Crossref matched the citation to it.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / references / items / properties / edition
      Added value: +{
      +  "description": "Edition of the cited book, as deposited",
      +  "type": "string"
      +}
    • addedOutput schema / properties / references / items / properties / issue
      Added value: +{
      +  "description": "Issue",
      +  "type": "string"
      +}
    • addedOutput schema / properties / references / items / properties / seriesTitle
      Added value: +{
      +  "description": "Title of the series the cited work belongs to, with inline formatting markup removed",
      +  "type": "string"
      +}
    • addedOutput schema / properties / references / items / properties / volumeTitle
      Added value: +{
      +  "description": "Title of the cited book or proceedings volume, with inline formatting markup removed. The only title on many book and chapter citations.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint, yet the description still adds substantial behavioral context: referenceCount is the full deposited total, nextOffset is passed back as offset, and coverage varies by publisher so older or non-participating works may return nothing. That caveat about empty results is the kind of expectation-setting an agent needs before calling.

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?

Four sentences, front-loaded with the purpose, then return shape, then paging, then the coverage caveat and the sibling pointer. No sentence is redundant and nothing is buried.

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 an output schema present, the description need not enumerate return fields, yet it still flags the two that drive iteration (referenceCount, nextOffset) and warns that empty reference lists are a coverage artifact rather than an error. Nothing an agent needs to call this correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3 and the schema already documents all three parameters. The description goes beyond it by explaining the pagination workflow — referenceCount as the deposited total, nextOffset as the continuation token — which clarifies how limit and offset interact across calls rather than just what they are.

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?

States a specific verb and resource ('Returns the outgoing reference list for a DOI') and immediately disambiguates direction by contrasting with incoming citations. It also names crossref_get_work as the follow-up for resolved DOIs, so an agent can place it among siblings without opening any 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?

Explicit when-to-use (outgoing references), explicit when-not (incoming citations are not available through Crossref — use OpenAlex), and a named alternative for the resolved DOIs. This is the full when/when-not/alternatives pattern.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.