# Reported issues for cern-inspire-mcp-server

Pod holds 12 of 12 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to [cern-inspire-mcp-server](/mcp/cern-inspire-mcp-server).

## Most discussed

### feat(cern_inspire_search_authors): flag name results where no candidate carries the queried surname

### Use case

INSPIRE's free-text author search matches name parts as initials. A misspelled or unknown surname in `cern_inspire_search_authors` therefore still returns hundreds of thousands of unrelated profiles, and none of them carries the surname. The tool's zero-hit name notice ("Try "Last, First", fewer name parts…") never fires. The only guidance is "raise limit", so a caller can take an unrelated namesake-by-initial for the person it asked about.

Repro (server 0.1.0, mcp-ts-core…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/3) · 2026-10-01 · closed · 2 comments

### bug(cern_inspire_get_paper): truncation notice says to raise max_authors when it is already at the 500 maximum

### Server version

0.1.0

### mcp-ts-core version

0.13.10

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

When `max_authors` is already at its maximum (500), the truncation notice in `cern_inspire_get_paper` still says to raise it. A retry with a higher value then fails validation (`max_authors: Too big: expected number to be <=500`). The notice should only point at `max_authors` while there is headroom. At the cap, it should…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/2) · 2026-10-01 · closed · 2 comments

### bug(cern_inspire_search_experiments): reports "Ongoing: no" for active experiments with no completion date

### Server version

0.1.0

### mcp-ts-core version

0.13.10

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

`cern_inspire_search_experiments` reports `ongoing: false` and renders `**Ongoing:** no` for any experiment whose INSPIRE record has no `date_completed`. INSPIRE leaves that field out for many active experiments, so DUNE and EUCLID are reported as not ongoing. `ongoing` is only known when the record carries the `"9999"`…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/1) · 2026-10-01 · closed · 2 comments

### bug(cern_inspire_get_paper): a merged recid returns paper_not_found instead of the record INSPIRE redirects to

`cern_inspire_get_paper` looks a recid up with a `recid:N` search. INSPIRE drops a merged record from search results but keeps its ID as a redirect, so an old recid fails as `paper_not_found` even though INSPIRE still serves the paper.

Repro (2026-10-02):

- `GET https://inspirehep.net/api/literature?q=recid:2829718` → `hits.total: 0`
- `GET https://inspirehep.net/api/literature/2829718` → `301` to `/api/literature/1797621`
- `cern_inspire_get_paper` with `paper: "2829718"` or `"ins2829718"` →…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/13) · 2026-10-02 · closed · 1 comment

### bug(notices): angle-bracket query placeholders vanish when content[] renders as HTML

### Server version

0.1.1

### mcp-ts-core version

0.13.10

### Runtime

Bun

### Runtime version

1.4.2

### Transport

HTTP (Streamable HTTP)

### Description

Several notices and recovery hints the server writes itself spell query placeholders with angle brackets: `"t <words>"`, `"a <name>"`, `collaborations.value:<name>`, `"collaboration:<name>"`, `"a <BAI or name>"`. These reach `content[]` as written. CommonMark reads each as an inline raw-HTML open tag (`<BAI or name>` is tag `BAI` with…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/12) · 2026-10-02 · closed · 1 comment

### bug(inputs): advertised inputSchema rejects paper and facet spellings the descriptions document

### Server version

0.1.1

### mcp-ts-core version

0.13.10

### Runtime

Bun

### Runtime version

1.4.2

### Transport

HTTP (Streamable HTTP)

### Description

`paperInput`, `documentTypesInput`, and `subjectsInput` normalize in a `z.preprocess`, but `inputSchema` advertises only the normalized form. `paper`'s `pattern` rejects every prefixed, versioned, URL, and `ins<recid>` spelling its description lists; `document_types` and `subjects` (`cern_inspire_search_literature`,…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/11) · 2026-10-01 · closed · 1 comment

### feat(cern_inspire_get_citation_summary): add citations per year from INSPIRE's citations-by-year facet

### Use case

`cern_inspire_get_citation_summary` returns totals but no trajectory. Whether a paper is still being cited, or an author's citations per year for a tenure or grant dossier, takes one literature search per year today. INSPIRE serves the per-year series from the `/api/literature/facets` endpoint this tool already calls (`facet_name=citations-by-year`).

### Proposed behavior

Request `facet_name=citations-by-year` in parallel with `citation-summary`, with the same `q`, and return…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/10) · 2026-10-01 · closed · 1 comment

### feat(cern_inspire_list_reference): document affiliation queries and point institution recids at them

### Use case

No documented path leads to "papers from an institution" or "an institution's citation summary." `cern_inspire_get_citation_summary` lists an institution as a valid `query`. `cern_inspire_search_authors` (`institutionRecid`) and `cern_inspire_search_experiments` (`institutions[].recid`) return institution recids, but nothing says which query takes them, and `search_syntax` lists no affiliation operator.

### Proposed behavior

- `search_syntax` entries for `aff NAME` (the…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/9) · 2026-10-01 · closed · 1 comment

## Most recent

### feat(cern_inspire_export_citations): add page so citation sets over 50 entries can be exported in full

### Use case

A paper's reference list or citing set often exceeds `cern_inspire_export_citations`' 50-entry `size` cap, and the tool takes no `page`: `citedby:recid:1124337` (the references of the ATLAS Higgs observation) matched 138 papers on 2026-10-01, and only the first 50 can be exported. The workaround is paging `cern_inspire_search_literature` and re-exporting the recids in OR batches.

### Proposed behavior

Add `page` (1-based, default 1; `page × size ≤ 10,000`, else…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/8) · 2026-10-01 · closed · 1 comment

### bug(normalize): titles and abstracts keep publisher HTML/MathML markup and undecoded entities

### Server version

0.1.1

### mcp-ts-core version

0.13.10

### Runtime

Bun

### Runtime version

1.4.2

### Transport

HTTP (Streamable HTTP)

### Description

INSPIRE stores many publisher titles and abstracts as HTML, JATS, or MathML, and HEPData abstracts entity-escaped (`&lt;`). `normalize.ts` copies them verbatim: `structuredContent` carries the markup, `content[]` renders it escaped, and `abstractSnippet` is cut from the raw string. As of 2026-10-01, `titles.title:mrow` matches 5,971…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/7) · 2026-10-01 · closed · 1 comment

### bug(normalize): hepdataUrl can open a different HEPData record than the DOI and table count it reports

### Server version

0.1.1

### mcp-ts-core version

0.13.10

### Runtime

Bun

### Runtime version

1.4.2

### Transport

HTTP (Streamable HTTP)

### Description

`cern_inspire_get_paper` and `cern_inspire_search_hepdata` build `hepdataUrl` as `https://www.hepdata.net/record/ins<paper recid>`. hepdata.net resolves `ins<N>` by the INSPIRE ID stored on the HEPData record, which stays on the old recid when INSPIRE merges that paper into another and re-links the data. The link can then open a…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/6) · 2026-10-01 · closed · 1 comment

### feat: read HEPData table values once hepdata.net admits the server

Add the two tools that read HEPData table values from hepdata.net: `cern_inspire_list_hepdata_tables` (a record's tables, with names, descriptions, keywords and download formats) and `cern_inspire_get_hepdata_table` (one table's headers, qualifiers, values and uncertainties). Their specification is in `docs/design.md` under *Deferred: HEPData-direct tools*.

**Blocked on access.** hepdata.net serves a Cloudflare managed challenge (`403`, `cf-mitigated: challenge`) to the server's own…

[Read the thread](https://github.com/cyanheads/cern-inspire-mcp-server/issues/5) · 2026-10-01 · open · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/cyanheads/cern-inspire-mcp-server/issues).
