cern-inspire-mcp-server
Server Details
Search INSPIRE-HEP papers, authors, experiments, HEPData records; get citation metrics and BibTeX.
- Status
- Healthy
- 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 targets a clearly distinct resource or action: literature search, paper retrieval, author search, experiment search, HEPData search, BibTeX export, citation-metrics summary, and static reference. Although export_citations and get_citation_summary both concern citations, their descriptions make the split (paste-ready bibliography vs. h-index/bucket metrics) unambiguous.
All eight tools follow the same cern_inspire_<verb>_<noun> pattern with consistent snake_case and predictable verbs (search_*, get_*, list_*, export_*). No convention mixing.
Eight tools is well-scoped for a literature database, with each tool earning its place across search, retrieval, export, metrics, and reference guidance. Nothing feels redundant or missing by count.
Coverage of the literature lifecycle is strong: search, full-record fetch, citation export, citation metrics, plus author/experiment/HEPData discovery and a syntax reference. Minor gaps exist (no direct retrieval of HEPData table values, limited to first 10,000 results), but core workflows have no dead ends.
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. 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. | |
| format | No | Entry format: bibtex (default), latex-eu, or latex-us (\bibitem entries in European or US style). | bibtex |
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. |
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 genuinely useful behavioral detail beyond that: the 50-entry page size, the 10,000-match reachability ceiling, and the fact that entries are INSPIRE's verbatim text with abbreviated long author lists. Only minor gaps remain (e.g., no note on output shape beyond the existing output schema).
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 action and output formats, then usage modes, then pagination caveats. Dense but every sentence carries information; slightly long, with the author-abbreviation note being a nice-to-have rather than essential.
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 restated. Combined with the pagination ceiling, format options, and query routing, the description gives an agent everything needed to invoke the tool correctly against its complex query semantics.
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. The description still adds value by explaining how the query parameter maps to use cases (named papers vs. topic/author/citing set) and what the format options produce ('\bibitem entries in European or US style'), which goes beyond the schema's terse enum labels.
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-HEP citation entries for papers a query selects) and the output forms (BibTeX / LaTeX \bibitem, EU or US style). It is clearly distinguishable from siblings like get_citation_summary or search_literature, which retrieve or search rather than emit formatted bibliography entries.
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 covers the two main usage modes: naming specific papers via recid/arxiv/doi, or exporting a topic, author, or citing set using any query cern_inspire_search_literature accepts. It also routes the agent to cern_inspire_list_reference topic search_syntax for query grammar, which is exactly the alternative-selection guidance needed.
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). 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 cover the safety profile (readOnly/idempotent/openWorld), and the description adds real behavioral context the annotations do not: that any of the year/self-citation filters removes citations-per-year from the output because INSPIRE cannot narrow it that way. It stops short of describing performance or rate limits, so not a 5.
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 metrics are front-loaded before the parameter guidance, and each sentence carries substantive information. It is dense and on the long side, but there is little pure filler; only the inline enumeration of citation buckets slightly duplicates the output schema's job.
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 7-parameter, zero-required tool with an output schema, the description covers input alternatives, prerequisite resolution, filter interactions, and the mutable-output caveat. An agent has everything needed to select and invoke it correctly, with no gaps in the description's own responsibilities.
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%, which already sets a strong baseline, but the description goes further by explaining what counts as valid author identifiers (BAI/ORCID/INSPIRE ID/recid, not a name) and that query accepts topics, collaborations, institutions, or 'a <BAI>'. It adds meaning beyond the schema rather than restating 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 and resource ('Compute INSPIRE-HEP's citation summary') and enumerates the exact metrics produced (h-index, citation totals, per-bucket counts, citations per year), which lets an agent distinguish it from siblings like cern_inspire_export_citations or 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?
Gives an explicit constraint ('Pass exactly one of author ... or query'), a prerequisite ('resolve a name with cern_inspire_search_authors first'), and describes how the optional filters narrow the result. It routes the agent to the sibling needed before calling this tool.
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 (0–500, default 25). The full count is always in authorCount. |
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, capped at max_authors. |
| 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 the author list was capped at max_authors. |
| 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. |
| 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. |
| 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 establish readOnly, idempotent and openWorld semantics, so the bar is lower; the description adds real behavioral context by disclosing the heavy return payload and the max_authors/authorCount truncation behavior for large collaboration papers. It omits auth requirements and rate limits, so it is not fully rich.
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 verb and identifier forms, and the trailing note about author capping is well placed. However, the long mid-sentence catalogue of returned fields is verbose and partly redundant given an output schema exists.
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 bounded two-parameter lookup with a full output schema and covering annotations, the description supplies everything an agent needs: what is fetched, from which identifiers, and how author lists are limited. No material gap remains.
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%, both parameters are fully documented there, so baseline 3 applies. The description's note that max_authors caps the list while authorCount holds the full count largely restates the schema wording rather than adding new meaning.
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 ('Fetch one paper's full INSPIRE-HEP record') and enumerates the identifier forms accepted, which clearly separates it from the sibling search_literature tool that would be used to find papers rather than retrieve one.
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 that this is a single-record lookup keyed on recid/arXiv ID/DOI, and enumerates the accepted identifier syntaxes in the schema. It never explicitly names an alternative (e.g. 'use search_literature when you only have a title') or states exclusions, so it stops short of a 5.
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. INSPIRE never rejects malformed syntax: an unparsed operator widens or empties the match, so a very broad or empty result usually means the query needs fixing (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. INSPIRE does not reject malformed syntax; see cern_inspire_list_reference topic search_syntax for the rest. | |
| 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 cover safety (readOnly, idempotent, openWorld), but the description adds non-obvious behavior: only the first 10,000 results are reachable, and INSPIRE never rejects malformed syntax so a broad/empty result signals a query bug. That is exactly the kind of failure-mode context annotations cannot express.
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 and filters, then return fields, routing, and caveats. Every sentence is useful, though the return-field list and malformed-syntax warning partially duplicate the schema and could be tightened.
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?
Given 8 parameters, an output schema, and rich annotations, the description still supplies the return shape, result cap, sibling routing, and query-syntax pitfall. 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 description coverage is 100% and the query parameter already documents the INSPIRE operators, so the schema does the heavy lifting. The description's mention of document type/subject/year filtering and sorting mostly restates structured fields rather than adding syntax beyond them.
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 ('Search INSPIRE-HEP papers') plus scope: query syntax, filters, sort order. It is clearly distinguishable from siblings like cern_inspire_search_authors or cern_inspire_search_experiments 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?
Explicitly routes the agent: pass a recid to cern_inspire_get_paper for the full record or to cern_inspire_export_citations for BibTeX, and points to cern_inspire_list_reference topic search_syntax when queries misbehave. This is concrete when-to-use-which-tool guidance.
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.
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
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.
Search CERN Open Data, fetch records, files, analysis environments, CMS good-run lists, HLT paths.
71
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables searching and retrieving high-energy physics literature, authors, institutions, and conferences from INSPIRE-HEP.165 npmMIT
- AlicenseAqualityCmaintenanceAn 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.927 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.247 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.