cern-inspire-mcp-server
Server Details
Search INSPIRE-HEP papers, authors, experiments, HEPData records; get citation metrics and BibTeX.
- Status
- Healthy
- Uptime
- 99.7% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cyanheads/cern-inspire-mcp-server
- GitHub Stars
- 1
- Server Listing
- cern-inspire-mcp-server
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: literature/author/experiment/HEPData search are separate resources, while get_paper, get_citation_summary, export_citations, and list_reference cover distinct actions (record fetch, metrics, bibliography export, static vocabulary). There is no meaningful overlap that would cause misselection.
All names share the cern_inspire_ prefix and follow a predictable snake_case verb_noun pattern (search_*, get_*, export_*, list_*). The only trivial deviation is singular 'list_reference' versus plural search targets, which does not impair readability.
Eight tools is well-scoped for a domain that spans literature, authors, experiments, and HEPData. Each tool earns its place, with no redundant or filler operations.
The surface covers searching, full-record retrieval, citation metrics, bibliography export, and vocabulary reference, with queries provided for citing/reference sets. Minor gaps remain, such as no tool to fetch actual HEPData table values and no dedicated citation-network traversal, but these are workable around.
Available Tools
8 toolscern_inspire_export_citationsExport INSPIRE citationsARead-onlyIdempotentInspect
Export INSPIRE-HEP's citation entries for the papers a literature query selects, as BibTeX or LaTeX \bibitem entries (EU or US style), keyed by INSPIRE texkeys and ready to paste into a bibliography. Name specific papers with "recid:451647 or arxiv:1207.7214 or doi:10.1016/…", or export a topic, author, or citing set with any query cern_inspire_search_literature accepts. Up to 50 entries per page; page through larger sets (only the first 10,000 matches are reachable). Entries are INSPIRE's verbatim text (long author lists arrive abbreviated as "First, Name and others").
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, starting at 1. page × size may not exceed 10,000. | |
| size | No | Entries per page (1–50, default 10). | |
| sort | No | Entry order: relevance (default), mostrecent, or mostcited. | relevance |
| query | Yes | Literature query selecting the papers to cite, narrowed by the same document_types, subjects, year_from and year_to filters as search. Named papers: "recid:451647 or arxiv:1207.7214 or doi:10.1016/j.physletb.2012.08.020". Or a topic ("t higgs and topcite 500+"), an author ("a Edward.Witten.1"), or citing papers ("refersto:recid:451647"). Empty recognized field clauses such as "a:" are invalid; other syntax is passed through without complete grammar validation. See cern_inspire_list_reference topic search_syntax. | |
| format | No | Entry format: bibtex (default), latex-eu, or latex-us (\bibitem entries in European or US style). | bibtex |
| year_to | No | Latest year to include (1900–2100, inclusive), matched on the earliest date INSPIRE records for the paper. Omit for no upper bound. | |
| subjects | No | Restrict to INSPIRE subject categories (up to 4). Multiple values must ALL hold, not either. Values: Astrophysics, Phenomenology-HEP, Theory-HEP, Quantum Physics, Unknown, Gravitation and Cosmology, Experiment-HEP, Theory-Nucl, Accelerators, Instrumentation, General Physics, Experiment-Nucl, Math and Math Physics, Condensed Matter, Computing, Lattice, Other, Data Analysis and Statistics. | |
| year_from | No | Earliest year to include (1900–2100, inclusive), matched on the earliest date INSPIRE records for the paper. Omit for no lower bound. | |
| document_types | No | Restrict to INSPIRE document types (up to 4). Multiple values must ALL hold (published + review = published reviews), not either. Values: article, published, conference paper, thesis, review, note, proceedings, lectures, book chapter, book, introductory, activity report, report. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The page size applied. |
| page | No | The page returned. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Number of entries on this page. |
| format | No | The entry format returned. |
| notice | No | Guidance when nothing matched, the page is past the last or came back empty inside the match count, more papers follow, or the page could not be checked against the match count. |
| entries | No | Citation entries, in the requested order. |
| nextPage | No | The page number to request next, when more papers follow within the 10,000-result window. |
| truncated | No | True when more matched papers follow this page. |
| appliedFilters | No | Sort and filters applied, or "none". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/openWorld/idempotent), the description discloses the 10,000-reachable-match cap and that entries are INSPIRE's verbatim text with long author lists abbreviated as 'Name and others'. It does not detail error behavior or the response envelope, but it adds real operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what is exported and the formats before moving to selection syntax and limits; every sentence carries information. The inline example strings make it dense, but nothing is wasted or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value shape need not be explained, and the description still covers formats, selection syntax, pagination limits, and data quirks. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so 3 is the baseline, but the description contributes extra query-syntax examples ('t higgs and topcite 500+', 'a Edward.Witten.1', 'refersto:recid:451647') and the invalid-clause rule for empty fields like 'a:'. This goes beyond what the schema documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (export INSPIRE citation entries for query-selected papers) and the output formats (BibTeX, LaTeX \bibitem, EU/US style). It is clearly distinct from siblings like cern_inspire_search_literature, which returns records rather than paste-ready citations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete selection modes (named paper via recid/arxiv/doi, or a topic/author/citing set via any cern_inspire_search_literature query) and notes the 50-per-page and 10,000-match ceilings. It does not explicitly say when to prefer search_literature or get_paper instead, so routing past the sibling is left partly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cern_inspire_get_citation_summaryGet INSPIRE citation summaryARead-onlyIdempotentInspect
Compute INSPIRE-HEP's citation summary for one author or for any literature query: h-index, citation totals, average citations per paper, and paper counts per citation bucket (0, 1–9, 10–49, 50–99, 100–249, 250–499, 500+), each for all citeable papers and for published papers, plus citations received per year. Pass exactly one of author (a BAI, ORCID, INSPIRE ID, or author recid — resolve a name with cern_inspire_search_authors first) or query (any INSPIRE literature query: a topic, collaboration, institution, or "a "). Document type and subject filters narrow every figure. year_from and year_to narrow the summary to papers from those years, and exclude_self_citations recounts it without self-citations; any of them leaves out citations per year, which INSPIRE cannot narrow that way.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | An INSPIRE literature query, e.g. "collaboration:atlas", "t neutrino oscillation", "a Edward.Witten.1", or "affid:902725" for an institution's papers (CERN; affid takes the institution recid that cern_inspire_search_authors and cern_inspire_search_experiments return). Empty recognized field clauses such as "a:" are invalid; other syntax is passed through without complete grammar validation. Literature queries do not match ORCIDs; pass an ORCID as author. Pass this or author, not both. | |
| author | No | One author identifier: INSPIRE BAI (Edward.Witten.1, exact and case-sensitive), ORCID (0000-0002-7752-6073 or an orcid.org URL), INSPIRE ID (INSPIRE-00136372), or author recid. Not a name — resolve names with cern_inspire_search_authors first. Pass this or query, not both. | |
| year_to | No | Latest year to include (1900–2100, inclusive), matched on the earliest date INSPIRE records for the paper. Omit for no upper bound. | |
| subjects | No | Restrict to INSPIRE subject categories (up to 4). Multiple values must ALL hold, not either. Values: Astrophysics, Phenomenology-HEP, Theory-HEP, Quantum Physics, Unknown, Gravitation and Cosmology, Experiment-HEP, Theory-Nucl, Accelerators, Instrumentation, General Physics, Experiment-Nucl, Math and Math Physics, Condensed Matter, Computing, Lattice, Other, Data Analysis and Statistics. | |
| year_from | No | Earliest year to include (1900–2100, inclusive), matched on the earliest date INSPIRE records for the paper. Omit for no lower bound. | |
| document_types | No | Restrict to INSPIRE document types (up to 4). Multiple values must ALL hold (published + review = published reviews), not either. Values: article, published, conference paper, thesis, review, note, proceedings, lectures, book chapter, book, introductory, activity report, report. | |
| exclude_self_citations | No | Count citations without self-citations (INSPIRE's definition), default false. Setting it leaves out citationsByYear, which always includes self-citations. |
Output Schema
| Name | Required | Description |
|---|---|---|
| all | No | Totals over citeable papers. |
| error | No | Present when the call failed. Absent on success. |
| hIndex | No | h-index for all citeable and for published papers. |
| notice | No | Guidance when no citeable paper matched, or when citations per year were left out or could not be read. |
| target | No | What the summary covers. |
| buckets | No | Papers per citation range, for all citeable and for published papers. |
| published | No | Totals over published papers. |
| appliedFilters | No | Filters applied, e.g. "document_types=published; years=2012–2015; exclude_self_citations=true", or "none". |
| citeablePapers | No | Citeable papers among the matched records. |
| effectiveQuery | No | The literature query sent to INSPIRE. |
| matchedRecords | No | Literature records the query matched, citeable or not. |
| citationsByYear | No | Citations per year in ascending order, each counted in the year of the citing record's earliest date, self-citations included, over every matched record (citeable or not), so the sum can exceed all.citations. A year without citations has no row, and the current year counts citations to date. Empty when nothing matched or no matched record is cited; omitted when year_from, year_to, or exclude_self_citations is set, when INSPIRE did not return the series, or when the query matches more than about 150,000 records, which INSPIRE cannot count in time, unless INSPIRE answers within about 2 s (a series it has cached). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint, so the lowest bar is met. The description adds real behavioral caveats beyond them: combining year_from/year_to/exclude_self_citations drops the citations-per-year figure because INSPIRE cannot narrow it that way, and empty field clauses like 'a:' are invalid rather than silently ignored.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the computed metrics before the input modes, which is the right order. It is a single dense paragraph with some redundancy against the schema's own parameter descriptions, but every sentence carries usable content and nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be re-explained, and the description still covers the output dimensions, the two mutually exclusive input paths, name-resolution prerequisites, and the filter-combination caveat. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter and the baseline is 3. The description still adds interaction meaning the schema states only per-parameter: the 'exactly one of' constraint across author/query, and that document-type and subject filters narrow every reported figure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ('Compute INSPIRE-HEP's citation summary') and enumerates exactly what is produced (h-index, totals, averages, per-bucket counts, per-year citations) for two input modes. An agent can distinguish this from cern_inspire_export_citations (raw citation export) 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the selection rule precisely ('Pass exactly one of author ... or query') and gives a prerequisite workflow ('resolve a name with cern_inspire_search_authors first'). It does not explicitly name export_citations or say when a summary is preferable to exporting citations, so sibling routing is only partially covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cern_inspire_get_paperGet INSPIRE paperARead-onlyIdempotentInspect
Fetch one paper's full INSPIRE-HEP record by recid, arXiv ID, or DOI: authors with affiliations 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.
| Name | Required | Description | Default |
|---|---|---|---|
| paper | Yes | INSPIRE 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_authors | No | Most authors to list (nonnegative integer, default 25; values above 500 use 500). Zero lists no authors. The full count is always in authorCount. | |
| author_offset | No | Zero-based starting position in the normalized author list (default 0). Use nextAuthorOffset from the previous page. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The max_authors cap applied. |
| core | No | True when INSPIRE classes the paper as core HEP, when recorded. |
| date | No | Earliest date INSPIRE records for the paper: YYYY, YYYY-MM, or YYYY-MM-DD. |
| dois | No | DOIs of the paper. |
| urls | No | External links INSPIRE records for the paper. |
| error | No | Present when the call failed. Absent on success. |
| recid | No | INSPIRE literature record ID. |
| shown | No | Number of authors listed. |
| title | No | Title as text: publisher HTML, JATS, and MathML converted (scripts as _x or ^{xy}), LaTeX left as published. |
| notice | No | 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. |
| arxivId | No | arXiv identifier, when the paper has one. |
| authors | No | Authors in record order from authorOffset, capped at the effective max_authors budget. |
| hepdata | No | HEPData availability for the paper's numerical tables. |
| texkeys | No | INSPIRE texkeys (BibTeX citation keys), current first. |
| abstract | No | Full abstract as text (arXiv-sourced when available): publisher markup converted like title, LaTeX left as published. |
| citeable | No | INSPIRE citeable flag, when recorded. |
| keywords | No | Keywords, de-duplicated. |
| licenses | No | Licences recorded for the paper. |
| refereed | No | True when published in a refereed venue, when recorded. |
| subjects | No | INSPIRE subject categories. |
| truncated | No | True when available authors remain after this page, including a zero-budget page. |
| inspireUrl | No | The paper on inspirehep.net. |
| mergedFrom | No | The recid asked for, when INSPIRE had merged that record into this one and redirects it here; cite and query this record by recid. |
| resolvedAs | No | Which identifier form the paper input was resolved from. |
| authorCount | No | Total number of authors on the paper. |
| citingQuery | No | Literature query for papers citing this one; pass to cern_inspire_search_literature. |
| experiments | No | Accelerator experiments linked to the paper. |
| authorOffset | No | Zero-based starting position in the normalized available author list. |
| preprintDate | No | Preprint date, when recorded. |
| publications | No | Publication references (journal, volume, year, pages). |
| citationCount | No | Citations INSPIRE counts for the paper. |
| documentTypes | No | INSPIRE document types. |
| numberOfPages | No | Page count, when recorded. |
| reportNumbers | No | Report numbers. |
| abstractSource | No | Who supplied the abstract (e.g. arXiv, a publisher). |
| collaborations | No | Collaborations credited on the paper; empty for most non-collaboration papers. |
| alternateTitles | No | Other titles INSPIRE records (translations, preprint titles), converted to text like title. |
| arxivCategories | No | arXiv categories of the e-print. |
| publicationDate | No | Publication (imprint) date, when recorded. |
| referencesQuery | No | Literature query for this paper's references; pass to cern_inspire_search_literature. |
| nextAuthorOffset | No | Pass as author_offset to read the next page; absent when no authors remain or the budget is zero. |
| citationCountWithoutSelf | No | Citations excluding self-citations, when INSPIRE reports it. |
TDQS
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 real operational context beyond that: large collaboration papers can list thousands of authors, max_authors caps the list, and authorCount always exposes the true total.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The verb and identifier forms are front-loaded, and the long field enumeration is dense but earns its place by telling the agent what the record contains. The pagination note is useful rather than filler. Slightly long overall but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still sketches the payload (authors, abstract, identifiers, HEPData tables, ready-made queries) and the key pagination mechanics. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates the max_authors/authorCount relationship already documented in the schema and adds no format or syntax detail the schema lacks, so it does not exceed baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ("Fetch one paper's full INSPIRE-HEP record") and immediately names the three identifier forms accepted. This clearly separates it from discovery-oriented siblings like cern_inspire_search_literature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The identifier-based framing makes the usage context clear: call this when you already hold a recid/arXiv ID/DOI. It stops short of explicitly contrasting with search_literature or noting what to do when you only have a title, so no exclusion is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cern_inspire_list_referenceINSPIRE reference vocabularyARead-onlyIdempotentInspect
Decode the vocabulary the other cern_inspire tools take: INSPIRE search syntax (field operators, boolean logic, sort orders, the 10,000-result window, and how malformed queries behave), identifier forms (recid, arXiv, DOI, BAI, ORCID, INSPIRE ID, institution recid, texkey, HEPData DOIs), the document_types and subjects filter values, citation-summary buckets, and HEPData record versions and DOIs. Static content with no upstream call; use it to build a query or to recover from an empty or unexpectedly broad result.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Which vocabulary to decode: search_syntax (query operators and rules), identifiers (paper, author, experiment, institution, and HEPData identifier forms), document_types, subjects, citation_buckets (citation-summary ranges and terms), or hepdata (record versions, DOIs, and licence). |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| topic | No | The topic decoded. |
| entries | No | The entries for the topic. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/not-open-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: 'Static content with no upstream call' (no network, always succeeds) and the fact that it documents the 10,000-result window and how malformed queries behave. It stops short of describing the response shape, but that is minor given the output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then the enumerated topics, then the usage trigger. The single long sentence listing topics is dense but every clause maps to an actual enum value, so little is wasted; it could be marginally tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-enum static reference tool with an output schema already present, the description covers everything an agent needs: what each topic contains, that it is offline/static, and when to reach for it. No return-value explanation is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single enum parameter is fully documented in the schema, so the baseline is 3. The description restates the enum categories (search syntax, identifier forms, etc.) with marginally more detail than the schema, but adds no format or syntax guidance beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Decode the vocabulary the other cern_inspire tools take,' and then enumerates exactly which vocabularies (search syntax, identifier forms, document_types, subjects, citation buckets, HEPData). This clearly distinguishes it from the search/get siblings, which consume that vocabulary rather than explain it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger conditions: 'use it to build a query or to recover from an empty or unexpectedly broad result.' It also clarifies the relationship to the alternatives ('the other cern_inspire tools take'), so an agent knows this is the pre-query/recovery helper rather than a retrieval tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cern_inspire_search_authorsSearch INSPIRE authorsARead-onlyIdempotentInspect
Find physicist profiles in INSPIRE-HEP by name, INSPIRE BAI, ORCID, INSPIRE ID, or author recid. Each profile carries its recid, BAI, ORCID, current and past positions, advisors, arXiv categories, links, awards, and a literatureQuery that selects the person's papers in cern_inspire_search_literature. A name returns ranked candidates (a bare surname can match tens of thousands of profiles, and a less-cited namesake can rank first), so confirm the person from positions and categories before passing a bai or recid to cern_inspire_get_citation_summary. An identifier matches exactly.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Profiles to return (1–25, default 5). | |
| query | Yes | A physicist's name ("Witten, Edward" or "Edward Witten") or one identifier: INSPIRE BAI (Edward.Witten.1, exact and case-sensitive), ORCID (0000-0002-7752-6073 or an orcid.org URL), INSPIRE ID (INSPIRE-00136372), or author recid. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The limit applied. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Number of profiles returned. |
| notice | No | Guidance on an empty or capped result. |
| authors | No | Matching profiles, in INSPIRE relevance order. |
| matchedAs | No | How the query was read: orcid, inspire_id, bai, or recid (exact identifier match), or name (free-text search). |
| truncated | No | True when more profiles matched than were returned. |
| totalCount | No | Total author profiles the query matched. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, openWorld), so the description's job is to add match behavior — and it does: names return ranked candidates with ambiguity risk, identifiers match exactly. It stops short of describing pagination or result ordering beyond ranking, but the added ambiguity warning is genuinely useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then value, then usage guidance; every sentence earns its place. It is dense and slightly long, but not padded — no restatement of the title or name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't enumerate returns, yet it still previews the profile shape and the literatureQuery handoff. Together with the routing advice, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already lists accepted identifier formats, so baseline is 3. The description adds match semantics per query type (ranked candidate list for names vs exact for identifiers) that the schema does not convey, pushing it slightly above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (find physicist profiles in INSPIRE-HEP) and enumerates the five accepted lookup keys. It is clearly distinguishable from siblings like cern_inspire_search_literature and cern_inspire_get_citation_summary, which it names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: confirm the person via positions/categories before passing a bai or recid to cern_inspire_get_citation_summary, and notes the literatureQuery feeds cern_inspire_search_literature. It also warns that a bare surname can match tens of thousands of profiles and that a less-cited namesake can rank first, which is real when-not-to-trust guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cern_inspire_search_experimentsSearch INSPIRE experimentsARead-onlyIdempotentInspect
Find experiments, collaborations, and facilities in INSPIRE-HEP (ATLAS, CMS, DUNE, Belle II, …) by name, accelerator, or INSPIRE legacy name (CERN-LHC-CMS); digits alone look up an experiment recid. Each record carries the accelerator, host institutions, collaboration and subgroups, classification, lifecycle dates (proposed, approved, started, completed, ongoing), INSPIRE's paper count, a description, and a literatureQuery to pass to cern_inspire_search_literature or cern_inspire_get_citation_summary for the experiment's papers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Experiments to return (1–25, default 5). | |
| query | Yes | Experiment, collaboration, accelerator, or facility name (ATLAS, LHCb, Tevatron), an INSPIRE legacy name (CERN-LHC-CMS), or an experiment recid (digits only). |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The limit applied. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Number of records returned. |
| notice | No | Guidance on an empty or capped result. |
| truncated | No | True when more records matched than were returned. |
| totalCount | No | Total experiment records the query matched. |
| experiments | No | Matching experiment records, in INSPIRE relevance order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is covered. The description adds real behavioral value beyond that: the exact record contents (accelerator, institutions, subgroups, lifecycle dates, paper count) and the chaining affordance via literatureQuery, which an agent could not infer from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the searchable resource and examples before the record-shape detail. Dense but every clause carries information; slightly long, though no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be re-explained, yet the description's enumeration of record fields is still useful for judging downstream chaining to the literature tools. Combined with annotations covering safety, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema description already spells out the accepted query forms (name, legacy name like CERN-LHC-CMS, digits-only recid). The description restates these acceptable inputs but adds no format details or edge-case semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Find') and resource ('experiments, collaborations, and facilities in INSPIRE-HEP') with concrete examples (ATLAS, CMS, DUNE, Belle II). The scope is clearly narrower than search_literature or search_authors, so an agent can select it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context on what can be searched (name, accelerator, INSPIRE legacy name, recid) and explicitly routes downstream work to cern_inspire_search_literature or cern_inspire_get_citation_summary via the literatureQuery field. It stops short of stating when to prefer this over search_authors or search_hepdata, so it is not a full when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cern_inspire_search_hepdataSearch HEPData recordsARead-onlyIdempotentInspect
Find HEPData measurement records by physics content — process, observable, energy, collaboration — when the paper is unknown, through INSPIRE-HEP's index of every HEPData submission. Each hit carries the paper recids (pass to cern_inspire_get_paper), collaborations, keywords (reactions such as "P P --> TOP TOPBAR X", observables, centre-of-mass energies), the HEPData record DOI (recordDoi, the citation for the data), latest version, table count, and hepdataUrl, the hepdata.net record page that holds the table values; this tool does not return the values themselves. Only the first 10,000 results of a query are reachable.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, starting at 1. page × size may not exceed 10,000. | |
| size | No | Records per page (1–50, default 10). | |
| sort | No | Result order: relevance (default) or mostrecent. | relevance |
| query | Yes | Free text or INSPIRE syntax over HEPData records, e.g. top pair differential cross section 13 TeV; collaborations.value:LHCb; keywords.value:"Inclusive"; or literature.control_number:<recid> for one paper's data. INSPIRE does not reject malformed syntax; see cern_inspire_list_reference topic search_syntax. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The page size applied. |
| page | No | The page returned. |
| size | No | The page size requested. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Number of records on this page. |
| notice | No | Guidance on an empty or paged result. |
| hasMore | No | True when INSPIRE has a further page of results. |
| records | No | The HEPData records on this page, in the requested order. |
| nextPage | No | The page number to request next, when one exists within the 10,000-result window. |
| truncated | No | True when more results exist beyond this page. |
| totalCount | No | Total HEPData records the query matched. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the read-only/idempotent annotations: it enumerates the payload fields an agent will get back (recids, collaborations, keywords, recordDoi, latest version, table count, hepdataUrl), states explicitly that the table values themselves are NOT returned, and discloses the 10,000-result reachability cap. These are exactly the traits an agent needs to plan a call and a follow-up.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the key routing hint are front-loaded, and the payload enumeration is information-dense rather than padding. The first sentence is long and clause-heavy, but every clause carries a distinct fact; only the trailing result-cap sentence is a slight add-on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition covers purpose, selection condition, payload contents, the explicit non-return of data values, and the hard result ceiling, with downstream routing to cern_inspire_get_paper. For a 4-parameter search tool with a full output schema, nothing an agent needs in order 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning by naming the physics facets the query field operates over (process, observable, energy, collaboration) and by flagging that the result cap applies to the query, which reinforces the page/size limits. It does not add syntax beyond the schema's examples, so it is a modest lift above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find HEPData measurement records') plus the searchable dimensions (process, observable, energy, collaboration) and the data source (INSPIRE-HEP's index of HEPData submissions). This clearly distinguishes it from sibling paper-oriented tools like cern_inspire_search_literature and cern_inspire_get_paper.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'when the paper is unknown' gives an explicit selection condition against the sibling tool that finds papers, and 'pass to cern_inspire_get_paper' describes the onward step. It stops short of an explicit when-not clause (e.g. 'if you already have the recid or DOI, use X instead'), so it is clear context rather than full routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cern_inspire_search_literatureSearch INSPIRE literatureARead-onlyIdempotentInspect
Search INSPIRE-HEP papers with INSPIRE query syntax or free text, filtered by document type, subject, and year, sorted by relevance, recency, or citations. Returns one page of papers with recid, title, first author, date, citation counts, arXiv ID, DOI, publication, and an abstract snippet; pass a recid to cern_inspire_get_paper for the full record or to cern_inspire_export_citations ("recid:N") for BibTeX. Empty recognized field clauses are invalid; other malformed syntax can widen or empty the match, so check an unexpectedly broad or empty result against cern_inspire_list_reference topic search_syntax. Only the first 10,000 results of a query are reachable.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, starting at 1. page × size may not exceed 10,000. | |
| size | No | Papers per page (1–100, default 10). | |
| sort | No | Result order: relevance (default), mostrecent, or mostcited. | relevance |
| query | Yes | INSPIRE query syntax or free text. Common operators: "a Jane.Doe.1" or "a Doe, J" (author), "t higgs boson" (title words), "cn atlas" or "collaboration:atlas" (collaboration), "date > 2015", "topcite 500+" (cited 500+ times), "refersto:recid:451647" (papers citing a record), "citedby:recid:451647" (its references), "j Phys.Rev.Lett." (journal), "eprint 1207.7214"; combine with and/or/not. Bare words search all fields. Empty recognized field clauses such as "a:" are invalid; other syntax is passed to INSPIRE without complete grammar validation. See cern_inspire_list_reference topic search_syntax. | |
| year_to | No | Latest year to include (1900–2100, inclusive), matched on the earliest date INSPIRE records for the paper. Omit for no upper bound. | |
| subjects | No | Restrict to INSPIRE subject categories (up to 4). Multiple values must ALL hold, not either. Values: Astrophysics, Phenomenology-HEP, Theory-HEP, Quantum Physics, Unknown, Gravitation and Cosmology, Experiment-HEP, Theory-Nucl, Accelerators, Instrumentation, General Physics, Experiment-Nucl, Math and Math Physics, Condensed Matter, Computing, Lattice, Other, Data Analysis and Statistics. | |
| year_from | No | Earliest year to include (1900–2100, inclusive), matched on the earliest date INSPIRE records for the paper. Omit for no lower bound. | |
| document_types | No | Restrict to INSPIRE document types (up to 4). Multiple values must ALL hold (published + review = published reviews), not either. Values: article, published, conference paper, thesis, review, note, proceedings, lectures, book chapter, book, introductory, activity report, report. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The page size applied. |
| page | No | The page returned. |
| size | No | The page size requested. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Number of papers on this page. |
| notice | No | Guidance on an empty, very broad, or paged result. |
| papers | No | The papers on this page, in the requested order. |
| hasMore | No | True when INSPIRE has a further page of results. |
| nextPage | No | The page number to request next, when one exists within the 10,000-result window. |
| truncated | No | True when more results exist beyond this page. |
| totalCount | No | Total literature records the query matched. |
| appliedFilters | No | Sort and filters applied, e.g. "sort=mostcited; years=2012–2015", or "none". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly/openWorld/idempotent; the description adds substantive behavior beyond that: the 10,000-result reachability ceiling, that empty recognized field clauses are invalid while other malformed syntax is passed through unvalidated, and how malformed syntax can widen or empty the match. That is exactly the extra context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then returns, then routing, then caveats; every sentence carries information. It is dense and slightly long, but no sentence is filler or redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, an output schema, and read-only annotations, the description still supplies the operational caveats an agent needs (result ceiling, invalid clause syntax, malformed-query symptoms and where to look up syntax) plus the follow-up tool paths.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 operators, page/size limits, sort enum, and the year/document_type/subject filters in detail. The description's query-syntax and filtering mentions largely restate the schema; the 10,000 limit also appears in the page parameter description. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (search INSPIRE-HEP papers), names the query modes (INSPIRE syntax or free text) and the filter/sort dimensions, and explicitly routes to siblings (cern_inspire_get_paper, cern_inspire_export_citations) rather than leaving the agent to guess.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit next-step routing ('pass a recid to ... get_paper for the full record or to ... export_citations ("recid:N") for BibTeX') plus a diagnostic path when results look wrong (check cern_inspire_list_reference topic search_syntax). Conditions for each alternative are stated, not implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- Changed
cern_inspire_export_citations9 fields changed- added
Input schema / properties / document_typesAdded value: +{ + "description": "Restrict to INSPIRE document types (up to 4). Multiple values must ALL hold (published + review = published reviews), not either. Values: article, published, conference paper, thesis, review, note, proceedings, lectures, book chapter, book, introductory, activity report, report.", + "items": { + "description": "An INSPIRE document type.", + "enum": [ + "article", + "published", + "conference paper", + "thesis", + "review", + "note", + "proceedings", + "lectures", + "book chapter", + "book", + "introductory", + "activity report", + "report" + ], + "type": "string" + }, + "maxItems": 4, + "type": "array" +} - changed
Input schema / properties / query / descriptionPrevious value: -"Literature query selecting the papers to cite. Named papers: \"recid:451647 or arxiv:1207.7214 or doi:10.1016/j.physletb.2012.08.020\". Or any INSPIRE query: a topic (\"t higgs and topcite 500+\"), an author (\"a Edward.Witten.1\"), or the papers citing a record (\"refersto:recid:451647\"). See cern_inspire_list_reference topic search_syntax."New value: +"Literature query selecting the papers to cite, narrowed by the same document_types, subjects, year_from and year_to filters as search. Named papers: \"recid:451647 or arxiv:1207.7214 or doi:10.1016/j.physletb.2012.08.020\". Or a topic (\"t higgs and topcite 500+\"), an author (\"a Edward.Witten.1\"), or citing papers (\"refersto:recid:451647\"). Empty recognized field clauses such as \"a:\" are invalid; other syntax is passed through without complete grammar validation. See cern_inspire_list_reference topic search_syntax." - added
Input schema / properties / subjectsAdded value: +{ + "description": "Restrict to INSPIRE subject categories (up to 4). Multiple values must ALL hold, not either. Values: Astrophysics, Phenomenology-HEP, Theory-HEP, Quantum Physics, Unknown, Gravitation and Cosmology, Experiment-HEP, Theory-Nucl, Accelerators, Instrumentation, General Physics, Experiment-Nucl, Math and Math Physics, Condensed Matter, Computing, Lattice, Other, Data Analysis and Statistics.", + "items": { + "description": "An INSPIRE subject category.", + "enum": [ + "Astrophysics", + "Phenomenology-HEP", + "Theory-HEP", + "Quantum Physics", + "Unknown", + "Gravitation and Cosmology", + "Experiment-HEP", + "Theory-Nucl", + "Accelerators", + "Instrumentation", + "General Physics", + "Experiment-Nucl", + "Math and Math Physics", + "Condensed Matter", + "Computing", + "Lattice", + "Other", + "Data Analysis and Statistics" + ], + "type": "string" + }, + "maxItems": 4, + "type": "array" +} - added
Input schema / properties / year_fromAdded value: +{ + "description": "Earliest year to include (1900–2100, inclusive), matched on the earliest date INSPIRE records for the paper. Omit for no lower bound.", + "maximum": 2100, + "minimum": 1900, + "type": "integer" +} - added
Input schema / properties / year_toAdded value: +{ + "description": "Latest year to include (1900–2100, inclusive), matched on the earliest date INSPIRE records for the paper. Omit for no upper bound.", + "maximum": 2100, + "minimum": 1900, + "type": "integer" +} - changed
Output schema / anyOfPrevious value: -[ - { - "not": { - "required": [ - "error" - ] - }, - "required": [ - "format", - "page", - "entries", - "truncated", - "shown", - "cap" - ] - }, - { - "required": [ - "error" - ] - } -]New value: +[ + { + "not": { + "required": [ + "error" + ] + }, + "required": [ + "format", + "page", + "entries", + "appliedFilters", + "truncated", + "shown", + "cap" + ] + }, + { + "required": [ + "error" + ] + } +] - added
Output schema / properties / appliedFiltersAdded value: +{ + "description": "Sort and filters applied, or \"none\".", + "type": "string" +} - changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `beyond_result_window`: page × size exceeds the 10,000 results INSPIRE serves for one query. `invalid_query`: INSPIRE answered 400 to a parameter value it refuses. `inspire_rate_limited`: INSPIRE returned 429 after the pacer and retries. `pacer_shed`: The server's outbound INSPIRE queue could not start the request within the call's remaining budget. `upstream_unreadable`: The INSPIRE body exceeded the byte ceiling, or was JSON or HTML where citation text was expected. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_year_range`: year_from is later than year_to. `beyond_result_window`: page × size exceeds the 10,000 results INSPIRE serves for one query. `invalid_query`: A recognized field clause has no value, or INSPIRE answered 400 to a parameter value it refuses. `inspire_rate_limited`: INSPIRE returned 429 after the pacer and retries. `pacer_shed`: The server's outbound INSPIRE queue could not start the request within the call's remaining budget. `upstream_unreadable`: The INSPIRE body exceeded the byte ceiling, or was JSON or HTML where citation text was expected. Other values are possible when a failure originates below the handler." - changed
Output schema / properties / error / properties / data / properties / reason / examplesPrevious value: -[ - "beyond_result_window", - "invalid_query", - "inspire_rate_limited", - "pacer_shed", - "upstream_unreadable" -]New value: +[ + "invalid_year_range", + "beyond_result_window", + "invalid_query", + "inspire_rate_limited", + "pacer_shed", + "upstream_unreadable" +]
- Changed
cern_inspire_get_citation_summary2 fields changed- changed
Input schema / properties / query / descriptionPrevious value: -"An INSPIRE literature query, e.g. \"collaboration:atlas\", \"t neutrino oscillation\", \"a Edward.Witten.1\", or \"affid:902725\" for an institution's papers (CERN; affid takes the institution recid that cern_inspire_search_authors and cern_inspire_search_experiments return). Literature queries do not match ORCIDs; pass an ORCID as author. Pass this or author, not both."New value: +"An INSPIRE literature query, e.g. \"collaboration:atlas\", \"t neutrino oscillation\", \"a Edward.Witten.1\", or \"affid:902725\" for an institution's papers (CERN; affid takes the institution recid that cern_inspire_search_authors and cern_inspire_search_experiments return). Empty recognized field clauses such as \"a:\" are invalid; other syntax is passed through without complete grammar validation. Literature queries do not match ORCIDs; pass an ORCID as author. Pass this or author, not both." - changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `missing_target`: Neither or both of author and query were given. `author_not_identifier`: author is not a BAI, ORCID, INSPIRE ID, or recid — usually a name. `author_not_found`: The author identifier matches no INSPIRE profile. `invalid_year_range`: year_from is later than year_to. `invalid_query`: INSPIRE answered 400 to a parameter value it refuses. `inspire_rate_limited`: INSPIRE returned 429 after the pacer and retries. `pacer_shed`: The server's outbound INSPIRE queue could not start the request within the call's remaining budget. `upstream_unreadable`: The INSPIRE body exceeded the byte ceiling, was HTML where JSON was expected, or was invalid JSON. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `missing_target`: Neither or both of author and query were given. `author_not_identifier`: author is not a BAI, ORCID, INSPIRE ID, or recid — usually a name. `author_not_found`: The author identifier matches no INSPIRE profile. `invalid_year_range`: year_from is later than year_to. `invalid_query`: A recognized field clause has no value, or INSPIRE answered 400 to a parameter value it refuses. `inspire_rate_limited`: INSPIRE returned 429 after the pacer and retries. `pacer_shed`: The server's outbound INSPIRE queue could not start the request within the call's remaining budget. `upstream_unreadable`: The INSPIRE body exceeded the byte ceiling, was HTML where JSON was expected, or was invalid JSON. Other values are possible when a failure originates below the handler."
- Changed
cern_inspire_get_paper8 fields changed- added
Input schema / properties / author_offsetAdded 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" +} - changed
Input schema / properties / max_authors / descriptionPrevious 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." - changed
Input schema / properties / max_authors / maximumPrevious value: -500New value: +9007199254740991 - changed
Output schema / anyOfPrevious 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" + ] + } +] - added
Output schema / properties / authorOffsetAdded value: +{ + "description": "Zero-based starting position in the normalized available author list.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" +} - changed
Output schema / properties / authors / descriptionPrevious value: -"Authors in record order, capped at max_authors."New value: +"Authors in record order from authorOffset, capped at the effective max_authors budget." - added
Output schema / properties / nextAuthorOffsetAdded 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" +} - changed
Output schema / properties / truncated / descriptionPrevious 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."
- Changed
cern_inspire_search_literature2 fields changed- changed
Input schema / properties / query / descriptionPrevious value: -"INSPIRE query syntax or free text. Common operators: \"a Jane.Doe.1\" or \"a Doe, J\" (author), \"t higgs boson\" (title words), \"cn atlas\" or \"collaboration:atlas\" (collaboration), \"date > 2015\", \"topcite 500+\" (cited 500+ times), \"refersto:recid:451647\" (papers citing a record), \"citedby:recid:451647\" (its references), \"j Phys.Rev.Lett.\" (journal), \"eprint 1207.7214\"; combine with and/or/not. Bare words search all fields. INSPIRE does not reject malformed syntax; see cern_inspire_list_reference topic search_syntax for the rest."New value: +"INSPIRE query syntax or free text. Common operators: \"a Jane.Doe.1\" or \"a Doe, J\" (author), \"t higgs boson\" (title words), \"cn atlas\" or \"collaboration:atlas\" (collaboration), \"date > 2015\", \"topcite 500+\" (cited 500+ times), \"refersto:recid:451647\" (papers citing a record), \"citedby:recid:451647\" (its references), \"j Phys.Rev.Lett.\" (journal), \"eprint 1207.7214\"; combine with and/or/not. Bare words search all fields. Empty recognized field clauses such as \"a:\" are invalid; other syntax is passed to INSPIRE without complete grammar validation. See cern_inspire_list_reference topic search_syntax." - changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `beyond_result_window`: page × size exceeds the 10,000 results INSPIRE serves for one query. `invalid_year_range`: year_from is later than year_to. `invalid_query`: INSPIRE answered 400 to a parameter value it refuses. `inspire_rate_limited`: INSPIRE returned 429 after the pacer and retries. `pacer_shed`: The server's outbound INSPIRE queue could not start the request within the call's remaining budget. `upstream_unreadable`: The INSPIRE body exceeded the byte ceiling, was HTML where JSON was expected, or was invalid JSON. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `beyond_result_window`: page × size exceeds the 10,000 results INSPIRE serves for one query. `invalid_year_range`: year_from is later than year_to. `invalid_query`: A recognized field clause has no value, or INSPIRE answered 400 to a parameter value it refuses. `inspire_rate_limited`: INSPIRE returned 429 after the pacer and retries. `pacer_shed`: The server's outbound INSPIRE queue could not start the request within the call's remaining budget. `upstream_unreadable`: The INSPIRE body exceeded the byte ceiling, was HTML where JSON was expected, or was invalid JSON. Other values are possible when a failure originates below the handler."
8 tool updates
- First observed
cern_inspire_export_citations - First observed
cern_inspire_get_citation_summary - First observed
cern_inspire_get_paper - First observed
cern_inspire_list_reference - First observed
cern_inspire_search_authors - First observed
cern_inspire_search_experiments - First observed
cern_inspire_search_hepdata - First observed
cern_inspire_search_literature
Related MCP Connectors
Search DataCite datasets and software, fetch DOI metadata, trace relations, format citations.
INSPIRE-HEP MCP — high-energy physics literature.
ArXiv preprints + Google Scholar papers, with citation counts in one query.
Federated search of books and papers, BibTeX/RIS citations, open-access retrieval and reading.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables searching and retrieving high-energy physics literature, authors, institutions, and conferences from INSPIRE-HEP.15 npmMIT
- AlicenseAqualityDmaintenanceAn MCP server for the INSPIRE-HEP API, enabling literature search, author lookups, DOI/arXiv/ORCID resolution, citation export, and bibliography generation with configurable detail levels.9MIT
- AlicenseAqualityBmaintenanceAn MCP server that integrates InspireHEP high-energy physics literature with LLMs. Search papers, explore citations, retrieve author metrics, and generate formatted references.934 PyPI7AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables searching the NASA Astrophysics Data System literature with full ADS query syntax, retrieving complete paper records, and exploring citation and reference graphs.8 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.