---
summary: "Add offset pagination to pubchem_get_compound_xrefs and pubchem_search_assays; add synonymOffset/descriptionOffset paging plus PUG View fan-out disclosure to pubchem_get_compound_details; fix README overclaims on synonym coverage and bioactivity paging."
breaking: false
security: false
---

# 0.5.1 — 2026-07-28

## Added

- **`pubchem_get_compound_xrefs`** — `offset` input paginates past the first page of each requested xref type; enrichment gains `offset` (required) and an optional `nextOffset`. `nextOffset`'s stride comes from a returned page's length rather than from `maxPerType`, which accepts a non-integer value that would otherwise produce a `nextOffset` the tool's own `offset` validator rejects. ([#38](https://github.com/cyanheads/pubchem-mcp-server/issues/38))
- **`pubchem_search_assays`** — `offset` input mirrors the paging added to `pubchem_get_bioactivity` in 0.5.0; enrichment gains `offset` (required) and an optional `nextOffset`. ([#38](https://github.com/cyanheads/pubchem-mcp-server/issues/38))
- **`pubchem_get_compound_details`** — `synonymOffset` and `descriptionOffset` inputs page each compound's synonym/description list at a shared batch-wide offset; enrichment gains optional `synonymOffset`/`nextSynonymOffset` and `descriptionOffset`/`nextDescriptionOffset`. ([#38](https://github.com/cyanheads/pubchem-mcp-server/issues/38))
- **`pubchem_get_compound_details`** — the PUG View fan-out cap (10 CIDs per call, for `includeDescription`/`includeClassification`) is now disclosed via enrichment: `enrichedCids` and `skippedCids` list which CIDs were and weren't fetched, with a notice explaining a skipped CID's absent description means "not requested," not "PubChem has none." Previously only logged, never surfaced to the caller. ([#40](https://github.com/cyanheads/pubchem-mcp-server/issues/40))

## Changed

- **`pubchem_get_compound_xrefs`**, **`pubchem_search_assays`**, **`pubchem_get_compound_details`** — tool/input descriptions and `format()` output reworded from "capped"/"truncated" to page-relative language ("this page", "past this page") now that offset paging exists alongside the existing caps.
- **`pubchem://compound/{cid}/xrefs`** resource description now mentions `pubchem_get_compound_xrefs`'s `offset` paging.
- **README** — dropped the "all known synonyms" overclaim (synonyms are paged, not exhaustive), clarified the synonym/description paging behavior, and reworded the bioactivity bullet to mention `offset` instead of implying a hard 100-result cap.

## Fixed

- **`pubchem_get_compound_xrefs`** — the empty-result notice previously fired whenever every requested type's returned page was empty, which misfired when an `offset` simply ran past the data; it now distinguishes a genuinely empty compound (`totalAvailable === 0` for every type) from an offset past the end (a dedicated notice naming the largest available total).
