Skip to main content
Glama

cern-inspire-mcp-server

Get INSPIRE paper

cern_inspire_get_paper
Read-onlyIdempotent

Fetch one paper's full INSPIRE-HEP record by recid, arXiv ID, or DOI: contributors with affiliations and recorded roles, public attached-document links and identifiers, abstract, publication references, arXiv and DOI identifiers, keywords, subjects, citation counts, linked experiments, texkeys, and whether HEPData holds its numerical tables (record DOI, latest version, table count, hepdata.net link). Also returns ready-made literature queries for the papers citing it and for its references. Large collaboration papers can list thousands of authors; max_authors caps the list while authorCount gives the full number.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "paper": "<paper>"
    },
    "name": "cern_inspire_get_paper"
  }
}

Input Schema

NameRequiredDescriptionDefault
paperYesINSPIRE recid (e.g. 451647), arXiv ID (1207.7214 or hep-th/9711200, with or without 'arXiv:', a version suffix, or an https://arxiv.org/abs/ or https://arxiv.org/pdf/ prefix), DOI (10.1016/…, with or without 'doi:' or an https://doi.org/ prefix; no * or ? wildcards), an https://inspirehep.net/literature/<recid> URL, or HEPData's ins<recid> form, alone or in an https://www.hepdata.net/record/ins<recid> URL. Up to 256 characters.
max_authorsNoMost contributors to list (nonnegative integer, default 25; values above 500 use 500). Zero lists no contributors. The full count is always in authorCount.
author_offsetNoZero-based starting position in the normalized contributor list (default 0). Use nextAuthorOffset from the previous page.

Output Schema

NameRequiredDescriptionDefault
capNoThe max_authors cap applied.
coreNoTrue when INSPIRE classes the paper as core HEP, when recorded.
dateNoEarliest date INSPIRE records for the paper: YYYY, YYYY-MM, or YYYY-MM-DD.
doisNoDOIs of the paper.
urlsNoExternal links INSPIRE records for the paper.
errorNoPresent when the call failed. Absent on success.
recidNoINSPIRE literature record ID.
shownNoNumber of contributors listed.
titleNoTitle as text: publisher HTML, JATS, and MathML converted (scripts as _x or ^{xy}), LaTeX left as published.
noticeNoGuidance when the recid asked for was merged into this record, the contributor list was capped, HEPData availability could not be checked, or the paper has more than one HEPData record.
arxivIdNoarXiv identifier, when the paper has one.
authorsNoContributors in record order from authorOffset, capped at the effective max_authors budget.
hepdataNoHEPData availability for the paper's numerical tables.
texkeysNoINSPIRE texkeys (BibTeX citation keys), current first.
abstractNoFull abstract as text (arXiv-sourced when available): publisher markup converted like title, LaTeX left as published.
citeableNoINSPIRE citeable flag, when recorded.
keywordsNoKeywords, de-duplicated.
licensesNoLicences recorded for the paper.
refereedNoTrue when published in a refereed venue, when recorded.
subjectsNoINSPIRE subject categories.
documentsNoPublic attached-document links in record order; no file contents are fetched.
truncatedNoTrue when available contributors remain after this page, including a zero-budget page.
inspireUrlNoThe paper on inspirehep.net.
mergedFromNoThe recid asked for, when INSPIRE had merged that record into this one and redirects it here; cite and query this record by recid.
resolvedAsNoWhich identifier form the paper input was resolved from.
authorCountNoUpstream contributor count, falling back to the available contributor list length.
citingQueryNoLiterature query for papers citing this one; pass to cern_inspire_search_literature.
experimentsNoAccelerator experiments linked to the paper.
authorOffsetNoZero-based starting position in the normalized available contributor list.
preprintDateNoPreprint date, when recorded.
publicationsNoPublication references (journal, volume, year, pages).
citationCountNoCitations INSPIRE counts for the paper.
documentTypesNoINSPIRE document types.
numberOfPagesNoPage count, when recorded.
reportNumbersNoReport numbers.
abstractSourceNoWho supplied the abstract (e.g. arXiv, a publisher).
collaborationsNoCollaborations credited on the paper; empty for most non-collaboration papers.
alternateTitlesNoOther titles INSPIRE records (translations, preprint titles), converted to text like title.
arxivCategoriesNoarXiv categories of the e-print.
publicationDateNoPublication (imprint) date, when recorded.
referencesQueryNoLiterature query for this paper's references; pass to cern_inspire_search_literature.
nextAuthorOffsetNoPass as author_offset to read the next page; absent when no contributors remain or the budget is zero.
citationCountWithoutSelfNoCitations excluding self-citations, when INSPIRE reports it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changed
    • changedInput schema / properties / author_offset / description
      Previous value: -"Zero-based starting position in the normalized author list (default 0). Use nextAuthorOffset from the previous page."New value: +"Zero-based starting position in the normalized contributor list (default 0). Use nextAuthorOffset from the previous page."
    • changedInput schema / properties / max_authors / description
      Previous value: -"Most authors to list (nonnegative integer, default 25; values above 500 use 500). Zero lists no authors. The full count is always in authorCount."New value: +"Most contributors to list (nonnegative integer, default 25; values above 500 use 500). Zero lists no contributors. The full count is always in authorCount."
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "not": {
      -      "required": [
      -        "error"
      -      ]
      -    },
      -    "required": [
      -      "recid",
      -      "resolvedAs",
      -      "title",
      -      "alternateTitles",
      -      "authorCount",
      -      "authorOffset",
      -      "authors",
      -      "collaborations",
      -      "experiments",
      -      "publications",
      -      "arxivCategories",
      -      "dois",
      -      "reportNumbers",
      -      "keywords",
      -      "subjects",
      -      "documentTypes",
      -      "citationCount",
      -      "texkeys",
      -      "urls",
      -      "licenses",
      -      "inspireUrl",
      -      "citingQuery",
      -      "referencesQuery",
      -      "hepdata",
      -      "truncated",
      -      "shown",
      -      "cap"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "error"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "recid",
      +      "resolvedAs",
      +      "title",
      +      "alternateTitles",
      +      "authorCount",
      +      "authorOffset",
      +      "authors",
      +      "collaborations",
      +      "experiments",
      +      "publications",
      +      "arxivCategories",
      +      "dois",
      +      "reportNumbers",
      +      "keywords",
      +      "subjects",
      +      "documentTypes",
      +      "citationCount",
      +      "texkeys",
      +      "documents",
      +      "urls",
      +      "licenses",
      +      "inspireUrl",
      +      "citingQuery",
      +      "referencesQuery",
      +      "hepdata",
      +      "truncated",
      +      "shown",
      +      "cap"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • changedOutput schema / properties / authorCount / description
      Previous value: -"Total number of authors on the paper."New value: +"Upstream contributor count, falling back to the available contributor list length."
    • changedOutput schema / properties / authorOffset / description
      Previous value: -"Zero-based starting position in the normalized available author list."New value: +"Zero-based starting position in the normalized available contributor list."
    • changedOutput schema / properties / authors / description
      Previous value: -"Authors in record order from authorOffset, capped at the effective max_authors budget."New value: +"Contributors in record order from authorOffset, capped at the effective max_authors budget."
    • changedOutput schema / properties / authors / items / description
      Previous value: -"One author."New value: +"One contributor."
    • changedOutput schema / properties / authors / items / properties / affiliations / description
      Previous value: -"Affiliations listed for this author on this paper."New value: +"Affiliations listed for this contributor on this paper."
    • changedOutput schema / properties / authors / items / properties / name / description
      Previous value: -"Author name, \"Surname, Given names\"."New value: +"Contributor name, \"Surname, Given names\"."
    • addedOutput schema / properties / authors / items / properties / roles
      Added value: +{
      +  "description": "Roles in recorded order; absent roles are unknown.",
      +  "items": {
      +    "description": "Recorded INSPIRE contributor role.",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / documents
      Added value: +{
      +  "description": "Public attached-document links in record order; no file contents are fetched.",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "One public attached document.",
      +    "properties": {
      +      "description": {
      +        "description": "Recorded document description.",
      +        "type": "string"
      +      },
      +      "filename": {
      +        "description": "Recorded filename.",
      +        "type": "string"
      +      },
      +      "fulltext": {
      +        "description": "Recorded full-text flag; absent means unknown.",
      +        "type": "boolean"
      +      },
      +      "material": {
      +        "description": "Recorded version or material qualifier.",
      +        "type": "string"
      +      },
      +      "url": {
      +        "description": "Public attached-document URL.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "url"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / nextAuthorOffset / description
      Previous value: -"Pass as author_offset to read the next page; absent when no authors remain or the budget is zero."New value: +"Pass as author_offset to read the next page; absent when no contributors remain or the budget is zero."
    • changedOutput schema / properties / notice / description
      Previous value: -"Guidance when the recid asked for was merged into this record, the author list was capped, HEPData availability could not be checked, or the paper has more than one HEPData record."New value: +"Guidance when the recid asked for was merged into this record, the contributor list was capped, HEPData availability could not be checked, or the paper has more than one HEPData record."
    • changedOutput schema / properties / shown / description
      Previous value: -"Number of authors listed."New value: +"Number of contributors listed."
    • changedOutput schema / properties / truncated / description
      Previous value: -"True when available authors remain after this page, including a zero-budget page."New value: +"True when available contributors remain after this page, including a zero-budget page."
  2. Changed8 schema fields changed
    • addedInput schema / properties / author_offset
      Added value: +{
      +  "default": 0,
      +  "description": "Zero-based starting position in the normalized author list (default 0). Use nextAuthorOffset from the previous page.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / max_authors / description
      Previous value: -"Most authors to list (0–500, default 25). The full count is always in authorCount."New value: +"Most authors to list (nonnegative integer, default 25; values above 500 use 500). Zero lists no authors. The full count is always in authorCount."
    • changedInput schema / properties / max_authors / maximum
      Previous value: -500New value: +9007199254740991
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "not": {
      -      "required": [
      -        "error"
      -      ]
      -    },
      -    "required": [
      -      "recid",
      -      "resolvedAs",
      -      "title",
      -      "alternateTitles",
      -      "authorCount",
      -      "authors",
      -      "collaborations",
      -      "experiments",
      -      "publications",
      -      "arxivCategories",
      -      "dois",
      -      "reportNumbers",
      -      "keywords",
      -      "subjects",
      -      "documentTypes",
      -      "citationCount",
      -      "texkeys",
      -      "urls",
      -      "licenses",
      -      "inspireUrl",
      -      "citingQuery",
      -      "referencesQuery",
      -      "hepdata",
      -      "truncated",
      -      "shown",
      -      "cap"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "error"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "recid",
      +      "resolvedAs",
      +      "title",
      +      "alternateTitles",
      +      "authorCount",
      +      "authorOffset",
      +      "authors",
      +      "collaborations",
      +      "experiments",
      +      "publications",
      +      "arxivCategories",
      +      "dois",
      +      "reportNumbers",
      +      "keywords",
      +      "subjects",
      +      "documentTypes",
      +      "citationCount",
      +      "texkeys",
      +      "urls",
      +      "licenses",
      +      "inspireUrl",
      +      "citingQuery",
      +      "referencesQuery",
      +      "hepdata",
      +      "truncated",
      +      "shown",
      +      "cap"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / authorOffset
      Added value: +{
      +  "description": "Zero-based starting position in the normalized available author list.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / authors / description
      Previous value: -"Authors in record order, capped at max_authors."New value: +"Authors in record order from authorOffset, capped at the effective max_authors budget."
    • addedOutput schema / properties / nextAuthorOffset
      Added value: +{
      +  "description": "Pass as author_offset to read the next page; absent when no authors remain or the budget is zero.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / truncated / description
      Previous value: -"True when the author list was capped at max_authors."New value: +"True when available authors remain after this page, including a zero-budget page."
  3. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds useful behavioral context beyond that: it warns that large collaboration papers can list thousands of authors and explains how max_authors caps the list while authorCount preserves the full count.

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 purpose is front-loaded and every sentence contributes a meaningful fact about the returned record or author pagination. The single dense paragraph is long but mostly justified by the breadth of the record contents being described.

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 read-only single-record fetch with annotations and an output schema, the description is complete enough: it identifies accepted identifiers, summarizes the record payload, and explains author-list pagination. Nothing essential for correct invocation 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%, and the schema already documents accepted identifier forms, max_authors limits, and author_offset paging in detail. The description only summarizes the identifier types and repeats the author cap behavior, so it adds little beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: fetching one paper's full INSPIRE-HEP record by recid, arXiv ID, or DOI. It also enumerates the record contents, so the purpose is unmistakable, though it does not explicitly name the sibling search tool that would be used for discovery instead.

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

Usage Guidelines3/5

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

Usage is implied by 'by recid, arXiv ID, or DOI' and by 'Fetch one paper', which suggests retrieval of a known paper rather than a search. However, there is no explicit when-to-use guidance or named alternative such as cern_inspire_search_literature for finding papers by topic.

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.