@cyanheads/pubmed-mcp-server 2.10.19 → 2.10.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +7 -4
- package/CLAUDE.md +7 -4
- package/Dockerfile +12 -3
- package/README.md +7 -7
- package/changelog/2.10.x/2.10.20.md +63 -0
- package/dist/mcp-server/tools/definitions/_text.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/_text.js +10 -5
- package/dist/mcp-server/tools/definitions/_text.js.map +1 -1
- package/dist/mcp-server/tools/definitions/fetch-articles.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/fetch-articles.tool.js +28 -10
- package/dist/mcp-server/tools/definitions/fetch-articles.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts +27 -9
- package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js +577 -485
- package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/find-related.tool.d.ts +5 -5
- package/dist/mcp-server/tools/definitions/find-related.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/find-related.tool.js +12 -8
- package/dist/mcp-server/tools/definitions/find-related.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/lookup-citation.tool.d.ts +11 -7
- package/dist/mcp-server/tools/definitions/lookup-citation.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/lookup-citation.tool.js +70 -34
- package/dist/mcp-server/tools/definitions/lookup-citation.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/lookup-mesh.tool.d.ts +2 -1
- package/dist/mcp-server/tools/definitions/lookup-mesh.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/lookup-mesh.tool.js +11 -3
- package/dist/mcp-server/tools/definitions/lookup-mesh.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.d.ts +18 -0
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.js +97 -13
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.d.ts +4 -3
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.js +7 -5
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts +6 -4
- package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-articles.tool.js +33 -11
- package/dist/mcp-server/tools/definitions/search-articles.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/spell-check.tool.d.ts +2 -1
- package/dist/mcp-server/tools/definitions/spell-check.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/spell-check.tool.js +5 -1
- package/dist/mcp-server/tools/definitions/spell-check.tool.js.map +1 -1
- package/dist/services/error-contracts.d.ts +1 -1
- package/dist/services/error-contracts.d.ts.map +1 -1
- package/dist/services/error-contracts.js +1 -1
- package/dist/services/error-contracts.js.map +1 -1
- package/dist/services/ncbi/formatting/citation-formatter.d.ts +24 -0
- package/dist/services/ncbi/formatting/citation-formatter.d.ts.map +1 -1
- package/dist/services/ncbi/formatting/citation-formatter.js +147 -46
- package/dist/services/ncbi/formatting/citation-formatter.js.map +1 -1
- package/dist/services/ncbi/ncbi-service.d.ts +16 -1
- package/dist/services/ncbi/ncbi-service.d.ts.map +1 -1
- package/dist/services/ncbi/ncbi-service.js +115 -70
- package/dist/services/ncbi/ncbi-service.js.map +1 -1
- package/dist/services/ncbi/parsing/article-parser.d.ts.map +1 -1
- package/dist/services/ncbi/parsing/article-parser.js +38 -29
- package/dist/services/ncbi/parsing/article-parser.js.map +1 -1
- package/dist/services/ncbi/parsing/esummary-parser.d.ts +9 -0
- package/dist/services/ncbi/parsing/esummary-parser.d.ts.map +1 -1
- package/dist/services/ncbi/parsing/esummary-parser.js +26 -2
- package/dist/services/ncbi/parsing/esummary-parser.js.map +1 -1
- package/dist/services/ncbi/parsing/pmc-article-parser.d.ts.map +1 -1
- package/dist/services/ncbi/parsing/pmc-article-parser.js +395 -147
- package/dist/services/ncbi/parsing/pmc-article-parser.js.map +1 -1
- package/dist/services/ncbi/parsing/pmc-xml-helpers.d.ts +73 -5
- package/dist/services/ncbi/parsing/pmc-xml-helpers.d.ts.map +1 -1
- package/dist/services/ncbi/parsing/pmc-xml-helpers.js +223 -27
- package/dist/services/ncbi/parsing/pmc-xml-helpers.js.map +1 -1
- package/dist/services/ncbi/parsing/text-helpers.d.ts +8 -6
- package/dist/services/ncbi/parsing/text-helpers.d.ts.map +1 -1
- package/dist/services/ncbi/parsing/text-helpers.js +95 -19
- package/dist/services/ncbi/parsing/text-helpers.js.map +1 -1
- package/dist/services/ncbi/response-handler.d.ts +20 -12
- package/dist/services/ncbi/response-handler.d.ts.map +1 -1
- package/dist/services/ncbi/response-handler.js +112 -19
- package/dist/services/ncbi/response-handler.js.map +1 -1
- package/dist/services/ncbi/types.d.ts +2 -2
- package/dist/services/openalex/openalex-service.d.ts +10 -6
- package/dist/services/openalex/openalex-service.d.ts.map +1 -1
- package/dist/services/openalex/openalex-service.js +13 -9
- package/dist/services/openalex/openalex-service.js.map +1 -1
- package/package.json +13 -11
- package/server.json +10 -24
package/AGENTS.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Agent Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** @cyanheads/pubmed-mcp-server
|
|
4
|
-
**Version:** 2.10.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.
|
|
4
|
+
**Version:** 2.10.20
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.11`
|
|
6
6
|
**Engines:** Bun ≥1.4.0, Node ≥24.0.0
|
|
7
7
|
|
|
8
8
|
> **Read the framework docs first:** `node_modules/@cyanheads/mcp-ts-core/CLAUDE.md` contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.
|
|
@@ -259,7 +259,7 @@ src/
|
|
|
259
259
|
response-handler.ts # XML response parsing
|
|
260
260
|
types.ts # NCBI/PubMed domain types
|
|
261
261
|
parsing/ # XML parsers (article, esummary, PMC)
|
|
262
|
-
formatting/ # Citation formatter (APA, MLA, BibTeX, RIS)
|
|
262
|
+
formatting/ # Citation formatter (APA, MLA, BibTeX, RIS, Vancouver)
|
|
263
263
|
mcp-server/
|
|
264
264
|
tools/definitions/ # 11 tool definitions (*.tool.ts)
|
|
265
265
|
resources/definitions/ # database-info.resource.ts
|
|
@@ -343,10 +343,13 @@ When you complete a skill's checklist, check the boxes and add a completion time
|
|
|
343
343
|
| `bun run format` | Auto-fix formatting (safe fixes only) |
|
|
344
344
|
| `bun run format:unsafe` | Also apply Biome's unsafe autofixes — review the diff; they can change behavior |
|
|
345
345
|
| `bun run test` | Run tests (Vitest — use `bun run test`, not `bun test`) |
|
|
346
|
+
| `bun run test:corpus` | Run only the real-article corpus suite in `tests/corpus/` (`bun run test` includes it) |
|
|
347
|
+
| `bun run corpus:snapshot` | Rewrite each corpus fixture's `expected.md` after an intended output change — review every rewritten snapshot against its `source.xml` before keeping it |
|
|
348
|
+
| `bun run scripts/corpus-add.ts <PMCID>` | Add an openly licensed PMC article (`--kind pubmed <PMID>` for a PubMed record) to the corpus; refuses any license but CC BY, CC BY-SA, CC0, or public domain, and regenerates `tests/corpus/ATTRIBUTION.md` |
|
|
346
349
|
| `bun run changelog:build` | Regenerate `CHANGELOG.md` from `changelog/*.md` |
|
|
347
350
|
| `bun run changelog:check` | Verify `CHANGELOG.md` is in sync (used by devcheck) |
|
|
348
351
|
| `bun run lint:mcp` | Validate MCP definitions against spec |
|
|
349
|
-
| `bun run lint:packaging` |
|
|
352
|
+
| `bun run lint:packaging` | Packaging surface checks — `server.json`/`manifest.json` env-var parity, `server.json` npm launch shape, plugin manifests (run by devcheck) |
|
|
350
353
|
| `bun run list-skills` | List skills in `framework-skills/` with name + description |
|
|
351
354
|
| `bun run bundle` | Build, pack, and clean a `.mcpb` for one-click Claude Desktop install |
|
|
352
355
|
| `bun run release:github` | Create GitHub Release from an annotated tag — enforces `v<VERSION>: <subject>` title, attaches `.mcpb` bundle |
|
package/CLAUDE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Agent Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** @cyanheads/pubmed-mcp-server
|
|
4
|
-
**Version:** 2.10.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.
|
|
4
|
+
**Version:** 2.10.20
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.11`
|
|
6
6
|
**Engines:** Bun ≥1.4.0, Node ≥24.0.0
|
|
7
7
|
|
|
8
8
|
> **Read the framework docs first:** `node_modules/@cyanheads/mcp-ts-core/CLAUDE.md` contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.
|
|
@@ -259,7 +259,7 @@ src/
|
|
|
259
259
|
response-handler.ts # XML response parsing
|
|
260
260
|
types.ts # NCBI/PubMed domain types
|
|
261
261
|
parsing/ # XML parsers (article, esummary, PMC)
|
|
262
|
-
formatting/ # Citation formatter (APA, MLA, BibTeX, RIS)
|
|
262
|
+
formatting/ # Citation formatter (APA, MLA, BibTeX, RIS, Vancouver)
|
|
263
263
|
mcp-server/
|
|
264
264
|
tools/definitions/ # 11 tool definitions (*.tool.ts)
|
|
265
265
|
resources/definitions/ # database-info.resource.ts
|
|
@@ -343,10 +343,13 @@ When you complete a skill's checklist, check the boxes and add a completion time
|
|
|
343
343
|
| `bun run format` | Auto-fix formatting (safe fixes only) |
|
|
344
344
|
| `bun run format:unsafe` | Also apply Biome's unsafe autofixes — review the diff; they can change behavior |
|
|
345
345
|
| `bun run test` | Run tests (Vitest — use `bun run test`, not `bun test`) |
|
|
346
|
+
| `bun run test:corpus` | Run only the real-article corpus suite in `tests/corpus/` (`bun run test` includes it) |
|
|
347
|
+
| `bun run corpus:snapshot` | Rewrite each corpus fixture's `expected.md` after an intended output change — review every rewritten snapshot against its `source.xml` before keeping it |
|
|
348
|
+
| `bun run scripts/corpus-add.ts <PMCID>` | Add an openly licensed PMC article (`--kind pubmed <PMID>` for a PubMed record) to the corpus; refuses any license but CC BY, CC BY-SA, CC0, or public domain, and regenerates `tests/corpus/ATTRIBUTION.md` |
|
|
346
349
|
| `bun run changelog:build` | Regenerate `CHANGELOG.md` from `changelog/*.md` |
|
|
347
350
|
| `bun run changelog:check` | Verify `CHANGELOG.md` is in sync (used by devcheck) |
|
|
348
351
|
| `bun run lint:mcp` | Validate MCP definitions against spec |
|
|
349
|
-
| `bun run lint:packaging` |
|
|
352
|
+
| `bun run lint:packaging` | Packaging surface checks — `server.json`/`manifest.json` env-var parity, `server.json` npm launch shape, plugin manifests (run by devcheck) |
|
|
350
353
|
| `bun run list-skills` | List skills in `framework-skills/` with name + description |
|
|
351
354
|
| `bun run bundle` | Build, pack, and clean a `.mcpb` for one-click Claude Desktop install |
|
|
352
355
|
| `bun run release:github` | Create GitHub Release from an annotated tag — enforces `v<VERSION>: <subject>` title, attaches `.mcpb` bundle |
|
package/Dockerfile
CHANGED
|
@@ -36,9 +36,10 @@ RUN bun run build
|
|
|
36
36
|
#
|
|
37
37
|
# Installs the production dependency tree for the target platform. Every step
|
|
38
38
|
# here can run JavaScript — bunfig.toml's security scanner runs as a Bun
|
|
39
|
-
# program, and so
|
|
40
|
-
# and cross-installs with `--os`/`--cpu`, which pick each
|
|
41
|
-
# optional dependency for the target. Only `node_modules`
|
|
39
|
+
# program, and so do the OTel and musl-prune scripts — so the stage runs on
|
|
40
|
+
# $BUILDPLATFORM and cross-installs with `--os`/`--cpu`, which pick each
|
|
41
|
+
# platform-specific optional dependency for the target. Only `node_modules`
|
|
42
|
+
# leaves this stage.
|
|
42
43
|
#
|
|
43
44
|
# A clean image rather than `FROM build`: the build stage's node_modules holds
|
|
44
45
|
# devDependencies.
|
|
@@ -90,6 +91,14 @@ RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
|
90
91
|
bun scripts/install-otel.ts --os="$TARGETOS" --cpu="$(cat .bun-cpu)"; \
|
|
91
92
|
fi
|
|
92
93
|
|
|
94
|
+
# `--os`/`--cpu` have no libc counterpart, so a native dependency published in
|
|
95
|
+
# glibc and musl variants installs both. The runtime image is Debian (glibc)
|
|
96
|
+
# and never loads the musl copy; the script deletes every package whose own
|
|
97
|
+
# `libc` admits only musl. It follows every install, since a later
|
|
98
|
+
# `bun install` restores what it removes.
|
|
99
|
+
COPY scripts/prune-musl-packages.ts ./scripts/
|
|
100
|
+
RUN bun scripts/prune-musl-packages.ts
|
|
101
|
+
|
|
93
102
|
# The seeded scanner served only the installs above; keep it out of the image.
|
|
94
103
|
RUN rm -rf node_modules/@socketsecurity/bun-security-scanner
|
|
95
104
|
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/pubmed-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/pubmed-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -64,7 +64,7 @@ Biomedical literature from PubMed, PubMed Central, and Europe PMC. Search it, fe
|
|
|
64
64
|
### `pubmed_search_articles` <sub>tool</sub>
|
|
65
65
|
|
|
66
66
|
- Full PubMed query syntax plus filters (author, journal, MeSH, publication type, language, species, abstract, free full text) and publication/modification/Entrez date ranges
|
|
67
|
-
- Up to 1,000 results per page and offsets up to 9,998; `summaryCount` adds briefs for up to 50 hits
|
|
67
|
+
- Up to 1,000 results per page and offsets up to 9,998, or `maxResults: 0` for the match count alone; `summaryCount` adds briefs for up to 50 hits
|
|
68
68
|
- Reports `totalCount`, the `effectiveQuery` PubMed ran, and the `appliedFilters`
|
|
69
69
|
- Rejects blank filter values, impossible dates, and reversed date ranges before PubMed is called
|
|
70
70
|
|
|
@@ -80,7 +80,7 @@ Biomedical literature from PubMed, PubMed Central, and Europe PMC. Search it, fe
|
|
|
80
80
|
|
|
81
81
|
### `pubmed_fetch_fulltext` <sub>tool</sub>
|
|
82
82
|
|
|
83
|
-
-
|
|
83
|
+
- `pmcids`, `pmids`, and `dois` in any mix, up to 10 distinct identifiers per call, tried against PMC, then Europe PMC, then Unpaywall (needs `UNPAYWALL_EMAIL`); an article several of them name is fetched and returned once, and `viaSource` names the tier that answered
|
|
84
84
|
- `source: "pmc"` returns sections, tables, and figures; `source: "unpaywall"` returns a best-effort HTML or PDF text body
|
|
85
85
|
- Misses carry a typed `reason` and `triedTiers`; `sections`, `maxCharacters`, `overflowMode`, and `maxResponseCharacters` bound the response, and `truncation` reports what was cut
|
|
86
86
|
|
|
@@ -96,7 +96,7 @@ Biomedical literature from PubMed, PubMed Central, and Europe PMC. Search it, fe
|
|
|
96
96
|
|
|
97
97
|
### `pubmed_europepmc_fetch` <sub>tool</sub>
|
|
98
98
|
|
|
99
|
-
- Up to 25 records per call, addressed by a search hit's `source` + `epmcId`, with the full abstract; unresolved ids land in `notFound`
|
|
99
|
+
- Up to 25 records per call, addressed by a search hit's `source` + `epmcId`, with the full abstract; unresolved ids land in `notFound`; opt-in `maxResponseCharacters` defers overflow to `deferred.records`
|
|
100
100
|
- Not registered when `EUROPEPMC_ENABLED=false`
|
|
101
101
|
|
|
102
102
|
---
|
|
@@ -104,7 +104,7 @@ Biomedical literature from PubMed, PubMed Central, and Europe PMC. Search it, fe
|
|
|
104
104
|
### `pubmed_format_citations` <sub>tool</sub>
|
|
105
105
|
|
|
106
106
|
- Up to 50 PMIDs per call, in any mix of `apa`, `mla`, `bibtex`, `ris`, and `vancouver`
|
|
107
|
-
- Bookshelf records cite as edited books; PMIDs that can't be fetched are reported as unavailable
|
|
107
|
+
- Bookshelf records cite as edited books, each chapter dated by its own last revision or contribution date; PMIDs that can't be fetched are reported as unavailable
|
|
108
108
|
|
|
109
109
|
---
|
|
110
110
|
|
|
@@ -131,8 +131,8 @@ Biomedical literature from PubMed, PubMed Central, and Europe PMC. Search it, fe
|
|
|
131
131
|
|
|
132
132
|
### `pubmed_lookup_citation` <sub>tool</sub>
|
|
133
133
|
|
|
134
|
-
- Up to 25 partial citations per call; journal or year is required, and volume, first page, and author sharpen the match
|
|
135
|
-
- Each comes back `matched`, `not_found`, or `ambiguous`, with recovery detail
|
|
134
|
+
- Up to 25 partial citations per call; a journal or a four-digit year is required, and volume, first page, and author sharpen the match
|
|
135
|
+
- Each is matched independently and comes back `matched`, `not_found`, or `ambiguous`, with recovery detail
|
|
136
136
|
|
|
137
137
|
---
|
|
138
138
|
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Text-fidelity fixes across full-text JATS, PubMed record, and Europe PMC parsing, with Bookshelf chapters dated by their own dates and pubmed_fetch_fulltext taking pmcids, pmids, and dois in one call."
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 2.10.20 — 2026-10-04
|
|
8
|
+
|
|
9
|
+
## Added
|
|
10
|
+
|
|
11
|
+
- **`pubmed_fetch_fulltext` takes `pmcids`, `pmids`, and `dois` together** ([#192](https://github.com/cyanheads/pubmed-mcp-server/issues/192)) — up to 10 distinct identifiers across the three; an article several of them name is fetched and returned once. `deferred.idType` is now optional: a deferral spanning fields lists its ids under `deferred.pmcids` / `pmids` / `dois`.
|
|
12
|
+
- **`pubmed_europepmc_fetch` `maxResponseCharacters`** ([#188](https://github.com/cyanheads/pubmed-mcp-server/issues/188)) — opt-in ceiling for the whole response; records past it are deferred whole, listed in `deferred.records`, and flagged `truncated: true`.
|
|
13
|
+
- **`pubmed_search_articles` `maxResults: 0`** ([#191](https://github.com/cyanheads/pubmed-mcp-server/issues/191)) — a count-only search returning `totalCount` alone.
|
|
14
|
+
- **Input aliases** ([#190](https://github.com/cyanheads/pubmed-mcp-server/issues/190)) — E-utilities and sibling-tool parameter names (`retmax`, `retstart`, `term`, `pageSize`, `maxResults`, and others) are rewritten to each tool's canonical key on `pubmed_search_articles`, `pubmed_lookup_mesh`, `pubmed_find_related`, `pubmed_europepmc_search`, and `pubmed_spell_check`.
|
|
15
|
+
- **Real-article test corpus** — `tests/corpus/` runs openly licensed PMC and PubMed records against reviewed expected output under `bun run test`; `bun run test:corpus`, `bun run corpus:snapshot`, and `scripts/corpus-add.ts` maintain it.
|
|
16
|
+
|
|
17
|
+
## Changed
|
|
18
|
+
|
|
19
|
+
- **Input tightening, deliberate:** `pubmed_lookup_citation` rejects a blank or whitespace-only `journal`, `year`, `volume`, `firstPage`, or `authorName`, and a `year` that is not four digits, with -32602 naming the field ([#187](https://github.com/cyanheads/pubmed-mcp-server/issues/187)). Some of these used to return a match, such as a whitespace `year` beside a full journal citation.
|
|
20
|
+
- **Input tightening, deliberate:** `pubmed_fetch_fulltext` rejects a `sections` element of only whitespace or invisible characters with `blank_filter`, and trims surrounding spaces from the terms it keeps ([#186](https://github.com/cyanheads/pubmed-mcp-server/issues/186)). An exactly-empty element is skipped.
|
|
21
|
+
- **PMC ID Converter HTTP 400** surfaces as `invalidParams` (-32602) instead of -32007.
|
|
22
|
+
- **`pubmed_search_articles` `dateRange`** — the `minDate`/`maxDate` descriptions say an empty bound drops the whole range, and the partial-range notice suggests the open lower bound `minDate: "1000"` instead of `"1800"`.
|
|
23
|
+
- **Zero-fit deferral notice** — `pubmed_fetch_articles`, `pubmed_fetch_fulltext`, and `pubmed_europepmc_fetch` name the first record as the one that exceeds `maxResponseCharacters`.
|
|
24
|
+
- **Output descriptions** — `pubmed_fetch_articles` `grants[].acronym` names the funding institute, never the grant; `pubmed_lookup_citation` describes its citation as needing a journal or a four-digit year.
|
|
25
|
+
- **`server.json` npm entries** launch the package bin through `npx` without the `run start:*` arguments, and the `streamable-http` entry sets `MCP_TRANSPORT_TYPE` to `http`.
|
|
26
|
+
- **`.mcpb` bundle** — `.mcpbignore` excludes the build-only root directories `/src/`, `/scripts/`, `/tests/`, `/docs/`, `/coverage/`, `/.github/`, `/.vscode/`, and `/.cache/`, so the bundle drops from 11.7 MB to 10.7 MB and carries no corpus fixtures. The scaffold gap is tracked in [cyanheads/mcp-ts-core#508](https://github.com/cyanheads/mcp-ts-core/issues/508).
|
|
27
|
+
- **Framework 0.13.11 adoption** — the Docker image prunes musl-only packages (`scripts/prune-musl-packages.ts`); devcheck's TODO and tracked-secret scans, `lint:packaging` check 16, per-language CodeQL jobs, `.env*` ignore rules, and the `framework-skills/` sync follow the framework.
|
|
28
|
+
- **Docs** — the README MCP SDK badge reads `^2.2.0` (was `^2.1.0`), and the `CLAUDE.md`/`AGENTS.md` Commands table gains the corpus commands and describes `lint:packaging`'s current checks.
|
|
29
|
+
|
|
30
|
+
## Fixed
|
|
31
|
+
|
|
32
|
+
- **Europe PMC text** ([#181](https://github.com/cyanheads/pubmed-mcp-server/issues/181), [#195](https://github.com/cyanheads/pubmed-mcp-server/issues/195)) — entity-encoded formatting tags (`<i>`) are stripped; a formatting tag right after `.`, `:`, `!`, or `?` reads as a space, so bold or italic abstract headings no longer fuse into the next sentence; PubMed's `<or=` notation is kept as text.
|
|
33
|
+
- **`openalex_invalid_response`** survives exhausted retries instead of being re-stamped `openalex_unreachable` ([#182](https://github.com/cyanheads/pubmed-mcp-server/issues/182)).
|
|
34
|
+
- **Bookshelf chapter dates** ([#189](https://github.com/cyanheads/pubmed-mcp-server/issues/189)) — `pubmed_format_citations` dates a chapter by its last revision, else its contribution, never the book's start year; Vancouver prints both, RIS adds `DA`, and a book still being updated prints an open range (`2000-`), as `pubmed_fetch_articles` `content[]` does (`2000–`). A publisher name that ends in a period (`MDText.com, Inc.`) gains no second one.
|
|
35
|
+
- **Bookshelf chapter summaries** ([#199](https://github.com/cyanheads/pubmed-mcp-server/issues/199)) — `pubDate` on `pubmed_search_articles` and `pubmed_find_related` chapter rows, and the `pubmed_lookup_citation` verification date, come from the chapter's own ESummary `DocDate`.
|
|
36
|
+
- **`pubmed_fetch_articles` Article Dates** — `content[]` zero-pads them for every record (`Electronic 2021-6-8` → `2021-06-08`); `structuredContent` is unchanged.
|
|
37
|
+
- **Nested inline markup** in PubMed titles, abstracts, and keywords — nested `<sup>`/`<sub>`, emphasis inside scripts, and MathML — no longer deletes text or fuses words ([#211](https://github.com/cyanheads/pubmed-mcp-server/issues/211)).
|
|
38
|
+
- **Collective authors** keep their affiliations ([#212](https://github.com/cyanheads/pubmed-mcp-server/issues/212)).
|
|
39
|
+
- **Absent journal fields** are omitted rather than returned as `""` ([#213](https://github.com/cyanheads/pubmed-mcp-server/issues/213)); for a record with no ISO journal abbreviation, `pubmed_format_citations` Vancouver now prints the full journal title where nothing printed before.
|
|
40
|
+
- **A grant with no `GrantID`** shows its acronym beside the agency rather than as the ID ([#214](https://github.com/cyanheads/pubmed-mcp-server/issues/214)).
|
|
41
|
+
- **`pubmed_lookup_citation`** — a journal-less citation ECitMatch cannot match no longer drops every later citation; the rest are re-requested within the call's one deadline and retry budget ([#193](https://github.com/cyanheads/pubmed-mcp-server/issues/193)).
|
|
42
|
+
- **`pubmed_lookup_citation`** reads an integer `year` in a lone citation object as its decimal string ([#198](https://github.com/cyanheads/pubmed-mcp-server/issues/198)), and verification reads ESummary 2.0, so consortium authors join the roster ([#201](https://github.com/cyanheads/pubmed-mcp-server/issues/201)).
|
|
43
|
+
- **JATS table cells and footnotes** keep their line breaks as `\n`, one line per footnote with its label leading, and inline markup is never spaced (`0.108a`); `content[]` joins those lines with ` · ` ([#185](https://github.com/cyanheads/pubmed-mcp-server/issues/185)). In titles, captions, affiliations, and section prose, a `<break/>`, a sibling `<p>` or `<fn>`, or a `<label>` beside its text reads as one space (`1 Division of …`, not `1Division of …`), and a `simple` list keeps each item's label.
|
|
44
|
+
- **JATS affiliations** inside `<contrib-group>` or `<contrib>` are read ([#196](https://github.com/cyanheads/pubmed-mcp-server/issues/196)), and `content[]` lists them as `- ` bullets instead of a numbered list, so a deposited label isn't numbered twice.
|
|
45
|
+
- **Adjacent citation markers** read `[1,2,3,4]`, not `[1234]` ([#197](https://github.com/cyanheads/pubmed-mcp-server/issues/197)).
|
|
46
|
+
- **Nested lists** sit below their parent item, and prose after a nested list keeps its place ([#200](https://github.com/cyanheads/pubmed-mcp-server/issues/200), [#203](https://github.com/cyanheads/pubmed-mcp-server/issues/203)).
|
|
47
|
+
- **Abstracts** — a list starts on its own line ([#202](https://github.com/cyanheads/pubmed-mcp-server/issues/202)), text beside a `<sec>` is kept ([#204](https://github.com/cyanheads/pubmed-mcp-server/issues/204)), and a section title with its own closing punctuation gains no second colon ([#205](https://github.com/cyanheads/pubmed-mcp-server/issues/205)).
|
|
48
|
+
- **Institution ids** (ROR, GRID, Funder DOIs) no longer fuse onto institution names in affiliations and funding statements ([#208](https://github.com/cyanheads/pubmed-mcp-server/issues/208)).
|
|
49
|
+
- **References** — unseparated author names gain `, `, an empty `<etal/>` reads `et al.`, page ranges read `56–71`, and volume and issue `16(1)`; `references[].label` drops its enclosing brackets (`[19]` → `19`) ([#209](https://github.com/cyanheads/pubmed-mcp-server/issues/209)).
|
|
50
|
+
- **Boxed text** opens with a `[Box: …]` line and closes with `[End of box]` ([#210](https://github.com/cyanheads/pubmed-mcp-server/issues/210)).
|
|
51
|
+
|
|
52
|
+
## Dependencies
|
|
53
|
+
|
|
54
|
+
- `@cyanheads/mcp-ts-core` ^0.13.10 → ^0.13.11
|
|
55
|
+
- `fast-xml-parser` ^5.11.1 → ^5.11.2
|
|
56
|
+
- `sanitize-html` ^2.17.7 → ^2.18.0
|
|
57
|
+
- `@biomejs/biome` ^2.5.14 → ^2.5.15 (dev)
|
|
58
|
+
- `@types/node` ^26.6.2 → ^26.6.3 (dev)
|
|
59
|
+
- `@types/sanitize-html` ^2.16.1 → ^2.16.2 (dev)
|
|
60
|
+
- `@vitest/coverage-istanbul` ^5.0.1 → ^5.0.3 (dev)
|
|
61
|
+
- `ignore` ^7.0.10 → ^7.0.11 (dev)
|
|
62
|
+
- `tsc-alias` ^1.9.5 → ^1.9.7 (dev)
|
|
63
|
+
- `vitest` ^5.0.1 → ^5.0.3 (dev)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_text.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_text.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlE;AAQD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUvE;
|
|
1
|
+
{"version":3,"file":"_text.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_text.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlE;AAQD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUvE;AAgDD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAazD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D"}
|
|
@@ -66,11 +66,16 @@ export function sliceAtWordBoundary(text, limit) {
|
|
|
66
66
|
/** Any line break, including the Unicode line and paragraph separators. */
|
|
67
67
|
const LINE_BREAK_RE = /[\r\n\u2028\u2029]+/g;
|
|
68
68
|
/**
|
|
69
|
-
* A `<` that
|
|
70
|
-
* autolink: a tag-name start, then a body carrying
|
|
71
|
-
* then a closing `>`.
|
|
72
|
-
* `text-helpers.ts`
|
|
73
|
-
*
|
|
69
|
+
* A `<` that could open something a Markdown renderer reads as raw HTML or an
|
|
70
|
+
* autolink: a tag-name start (a letter, `/`, `!`, or `?`), then a body carrying
|
|
71
|
+
* no further angle bracket, then a closing `>`. Looser than `MARKUP_TAG_RE` in
|
|
72
|
+
* `text-helpers.ts` on purpose: that pattern deletes what it matches, so its tag
|
|
73
|
+
* name ends only at whitespace, `/`, or `>` to keep PubMed's `<or= 20 or > 20`
|
|
74
|
+
* as text, while an escape here costs only a backslash the renderer hides, so
|
|
75
|
+
* that `<` is escaped. The two agree that a `<` with no `>` after it (`n<N`) or
|
|
76
|
+
* one followed by a digit (`P<0.001`) cannot open a tag and is left alone. An
|
|
77
|
+
* entity-encoded tag (`<i>`), which `MARKUP_TAG_RE` also strips, is literal
|
|
78
|
+
* text to a renderer and is not escaped here.
|
|
74
79
|
*/
|
|
75
80
|
const HTML_TAG_OPENER_RE = /<(?=[A-Za-z/!?][^<>]*>)/g;
|
|
76
81
|
/** A character that makes an adjacent `_` intraword, where it cannot emphasize. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_text.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_text.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAa;IACxD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,mBAAmB,CAAC;IAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,8EAA8E;AAC9E,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,KAAa,EAAW,EAAE,CAC5D,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAEzC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,KAAa;IAC7D,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC;IAE3C,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IACrB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YAAE,GAAG,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;QAAE,GAAG,IAAI,CAAC,CAAC;IACvD,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;AACrD,CAAC;AAED,2EAA2E;AAC3E,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAC7C
|
|
1
|
+
{"version":3,"file":"_text.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_text.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-articles.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-articles.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"fetch-articles.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-articles.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAqUjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAWhB,yBAAyB;;mBAE3B,sEAAsE;uBAE1E,qFAAqF;;;;EAgT3F,CAAC"}
|
|
@@ -149,7 +149,10 @@ const MeshTermSchema = z
|
|
|
149
149
|
const GrantSchema = z
|
|
150
150
|
.object({
|
|
151
151
|
grantId: z.string().optional().describe('Grant identifier'),
|
|
152
|
-
acronym: z
|
|
152
|
+
acronym: z
|
|
153
|
+
.string()
|
|
154
|
+
.optional()
|
|
155
|
+
.describe('Acronym of the funding institute or agency from `Grant/Acronym` (e.g. "EY" for the National Eye Institute) — it names the funder, never the grant, so it is no substitute for `grantId`.'),
|
|
153
156
|
agency: z.string().optional().describe('Funding agency'),
|
|
154
157
|
country: z.string().optional().describe('Agency country'),
|
|
155
158
|
})
|
|
@@ -213,7 +216,10 @@ const FetchedArticleSchema = z
|
|
|
213
216
|
keywords: z.array(z.string()).optional().describe('Keywords'),
|
|
214
217
|
meshTerms: z.array(MeshTermSchema).optional().describe('MeSH terms'),
|
|
215
218
|
grantList: z.array(GrantSchema).optional().describe('Grant information'),
|
|
216
|
-
articleDates: z
|
|
219
|
+
articleDates: z
|
|
220
|
+
.array(ArticleDateSchema)
|
|
221
|
+
.optional()
|
|
222
|
+
.describe("Dates of the record itself, each named by `dateType`. On a journal article, PubMed's `ArticleDate` entries (`Electronic` — the electronic publication date). On a Bookshelf record, its own `ContributionDate` (when the chapter was contributed) and `DateRevised` (when it was last updated), distinct from the containing book's dates in `book`; `pubmed_format_citations` cites a chapter by `DateRevised` when present, otherwise `ContributionDate`. Absent when NCBI supplies none."),
|
|
217
223
|
})
|
|
218
224
|
.describe('Parsed PubMed article');
|
|
219
225
|
const DeferredSchema = z
|
|
@@ -429,10 +435,11 @@ export const fetchArticlesTool = tool('pubmed_fetch_articles', {
|
|
|
429
435
|
if (bk.publisherLocation)
|
|
430
436
|
bookLines.push(`**Publisher Location:** ${bk.publisherLocation}`);
|
|
431
437
|
// A book published over several years carries a closed range
|
|
432
|
-
// (GeneReviews 1993–2026)
|
|
433
|
-
//
|
|
434
|
-
|
|
435
|
-
|
|
438
|
+
// (GeneReviews 1993–2026), one still being updated an open one
|
|
439
|
+
// (Endotext 2000–); otherwise the single publication year. A publication
|
|
440
|
+
// year that differs from the range's start is kept beside it. (#189)
|
|
441
|
+
const range = bk.beginningDate && bk.beginningDate !== bk.endingDate
|
|
442
|
+
? `${bk.beginningDate}–${bk.endingDate ?? ''}`
|
|
436
443
|
: undefined;
|
|
437
444
|
const bookDate = range && bk.pubDate && bk.pubDate !== bk.beginningDate
|
|
438
445
|
? `${bk.pubDate} (${range})`
|
|
@@ -509,8 +516,13 @@ export const fetchArticlesTool = tool('pubmed_fetch_articles', {
|
|
|
509
516
|
if (a.grantList?.length) {
|
|
510
517
|
lines.push(`\n#### Grants`);
|
|
511
518
|
for (const g of a.grantList) {
|
|
512
|
-
|
|
513
|
-
|
|
519
|
+
// The acronym names the funder, never the grant: without a GrantID it
|
|
520
|
+
// follows the agency instead of taking the ID's slot. (#214)
|
|
521
|
+
const grantId = g.grantId && g.acronym ? `${g.grantId} (${g.acronym})` : g.grantId;
|
|
522
|
+
const agency = !g.grantId && g.acronym
|
|
523
|
+
? [g.agency, `(${g.acronym})`].filter(Boolean).join(' ')
|
|
524
|
+
: g.agency;
|
|
525
|
+
const parts = [grantId, agency, g.country].filter(Boolean);
|
|
514
526
|
lines.push(`- ${parts.join(' — ')}`);
|
|
515
527
|
}
|
|
516
528
|
}
|
|
@@ -526,7 +538,7 @@ export const fetchArticlesTool = tool('pubmed_fetch_articles', {
|
|
|
526
538
|
*/
|
|
527
539
|
function buildDeferralNotice(deferred) {
|
|
528
540
|
const spent = deferred.returnedCharacters === 0
|
|
529
|
-
? `
|
|
541
|
+
? `The first article alone exceeds the requested maxResponseCharacters of ${deferred.maxResponseCharacters}, so none were returned.`
|
|
530
542
|
: `Response character budget reached: ${deferred.returnedCharacters} of ${deferred.maxResponseCharacters} characters returned.`;
|
|
531
543
|
return `${spent} ${deferred.deferredCount} resolved article(s) were deferred whole: ${deferred.ids.join(', ')}. Re-call pubmed_fetch_articles with those PMIDs to retrieve them, or raise maxResponseCharacters to at least ${deferred.nextDeferredCharacters} — the size of the next deferred article.`;
|
|
532
544
|
}
|
|
@@ -556,8 +568,14 @@ function formatPublicationDate(pd) {
|
|
|
556
568
|
return `${pd.medlineDate} (${ymd})`;
|
|
557
569
|
return pd.medlineDate || ymd || undefined;
|
|
558
570
|
}
|
|
571
|
+
/**
|
|
572
|
+
* `ContributionDate 2025-07-03`. A one-digit month or day is zero-padded for
|
|
573
|
+
* display only — the parser reads `<Month>07</Month>` as 7, and Bookshelf writes
|
|
574
|
+
* `<Month>7</Month>` outright — so structuredContent keeps the value as parsed.
|
|
575
|
+
*/
|
|
559
576
|
function formatArticleDate(ad) {
|
|
560
|
-
const
|
|
577
|
+
const pad = (part) => part?.length === 1 && part >= '0' && part <= '9' ? `0${part}` : part;
|
|
578
|
+
const datePart = [ad.year, pad(ad.month), pad(ad.day)].filter(Boolean).join('-');
|
|
561
579
|
return ad.dateType ? `${ad.dateType} ${datePart}` : datePart;
|
|
562
580
|
}
|
|
563
581
|
//# sourceMappingURL=fetch-articles.tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-articles.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-articles.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fetch-articles.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-articles.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Full-text fetch tool. Resolves full-text articles through a
|
|
3
3
|
* three-stage chain: NCBI PMC EFetch → Europe PMC `fullTextXML` → Unpaywall.
|
|
4
|
-
* Accepts three
|
|
4
|
+
* Accepts three input fields, alone or together, naming at most 10 distinct
|
|
5
|
+
* identifiers between them:
|
|
5
6
|
*
|
|
6
7
|
* - `pmcids` — fetch directly by PMC ID, once per record however it is
|
|
7
8
|
* spelled (`PMC123`, `pmc123`, `123`, zero-padded `PMC0123`), and reported
|
|
@@ -16,6 +17,13 @@
|
|
|
16
17
|
* DOIs are case-insensitive: every casing of one DOI runs the chain once,
|
|
17
18
|
* and `unavailable[]` reports each casing as the caller wrote it.
|
|
18
19
|
*
|
|
20
|
+
* Routing runs `pmcids`, then `pmids`, then `dois`. Every tier keys its work on
|
|
21
|
+
* the record — PMC on the PMCID, Europe PMC on the search hit's `source` + `id`,
|
|
22
|
+
* Unpaywall on the lowercased DOI — and the first id to reach a record owns it:
|
|
23
|
+
* a later id naming the same article joins the owner's chain as another caller
|
|
24
|
+
* id, so the article is fetched and returned once. Each `unavailable[]` entry
|
|
25
|
+
* and deferred id carries the field its id was sent in.
|
|
26
|
+
*
|
|
19
27
|
* Output uses a discriminated union on `source` (`pmc` | `unpaywall`) with an
|
|
20
28
|
* extra `viaSource` discriminator that records which layer produced the
|
|
21
29
|
* content. EPMC's JATS reuses the `pmc` schema shape because it's the same
|
|
@@ -30,6 +38,7 @@
|
|
|
30
38
|
* @module src/mcp-server/tools/definitions/fetch-fulltext.tool
|
|
31
39
|
*/
|
|
32
40
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
41
|
+
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
33
42
|
/**
|
|
34
43
|
* Compose the tool description for the fallback tiers enabled in this
|
|
35
44
|
* deployment. PMC EFetch is always present; Europe PMC (`EUROPEPMC_ENABLED`)
|
|
@@ -245,56 +254,65 @@ export declare const fetchFulltextTool: import("@cyanheads/mcp-ts-core").ToolDef
|
|
|
245
254
|
maxResponseCharacters: z.ZodNumber;
|
|
246
255
|
returnedCharacters: z.ZodNumber;
|
|
247
256
|
deferredCount: z.ZodNumber;
|
|
248
|
-
idType: z.ZodEnum<{
|
|
257
|
+
idType: z.ZodOptional<z.ZodEnum<{
|
|
249
258
|
doi: "doi";
|
|
250
259
|
pmcid: "pmcid";
|
|
251
260
|
pmid: "pmid";
|
|
252
|
-
}
|
|
261
|
+
}>>;
|
|
253
262
|
ids: z.ZodArray<z.ZodString>;
|
|
263
|
+
pmcids: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
264
|
+
pmids: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
265
|
+
dois: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
254
266
|
nextDeferredCharacters: z.ZodNumber;
|
|
255
267
|
}, z.core.$strip>>;
|
|
256
268
|
}, z.core.$strip>, readonly [{
|
|
257
269
|
readonly reason: 'queue_full';
|
|
258
|
-
readonly code:
|
|
270
|
+
readonly code: JsonRpcErrorCode.RateLimited;
|
|
259
271
|
readonly when: 'The local NCBI request queue shed the call — the queue is full, or the call cannot start before its total deadline (for example behind the cooldown that follows an NCBI 429).';
|
|
260
272
|
readonly recovery: 'Wait the number of seconds in `retryAfter`, then retry; the NCBI request queue is saturated or cooling down after a rate limit.';
|
|
261
273
|
readonly retryable: true;
|
|
262
274
|
readonly thrownBy: 'service';
|
|
263
275
|
}, {
|
|
264
276
|
readonly reason: 'ncbi_unreachable';
|
|
265
|
-
readonly code:
|
|
277
|
+
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
266
278
|
readonly when: 'NCBI E-utilities failed on every attempt the retry budget allowed — retries ran out, or the next backoff would overrun the total deadline.';
|
|
267
279
|
readonly recovery: 'Retry after a brief delay; NCBI failed on every attempt this call made.';
|
|
268
280
|
readonly retryable: true;
|
|
269
281
|
readonly thrownBy: 'service';
|
|
270
282
|
}, {
|
|
271
283
|
readonly reason: 'ncbi_rate_limited';
|
|
272
|
-
readonly code:
|
|
284
|
+
readonly code: JsonRpcErrorCode.RateLimited;
|
|
273
285
|
readonly when: 'NCBI answered HTTP 429 (too many requests) and the call stopped on it — retries ran out, the next backoff would overrun the total deadline, or the Retry-After NCBI named outlasts the time left or the 30-second backoff cap.';
|
|
274
286
|
readonly recovery: "Wait as long as `retryAfter` says when present (a number of seconds or an HTTP date), otherwise a few seconds, then retry; NCBI is throttling this server's requests. If the server runs without NCBI_API_KEY, setting it raises the E-utilities ceiling from about 3 to about 10 requests per second and shortens the default gap between requests — an operator setting in the server's environment, not a tool input.";
|
|
275
287
|
readonly retryable: true;
|
|
276
288
|
readonly thrownBy: 'service';
|
|
277
289
|
}, {
|
|
278
290
|
readonly reason: 'ncbi_deadline_exceeded';
|
|
279
|
-
readonly code:
|
|
291
|
+
readonly code: JsonRpcErrorCode.Timeout;
|
|
280
292
|
readonly when: 'The total NCBI request deadline expired before NCBI answered successfully — mid-request, while queued, or during a retry backoff.';
|
|
281
293
|
readonly recovery: 'Retry after a brief delay; NCBI may be under temporary load. For a large batch, split it into smaller calls.';
|
|
282
294
|
readonly retryable: true;
|
|
283
295
|
readonly thrownBy: 'service';
|
|
284
296
|
}, {
|
|
285
297
|
readonly reason: 'ncbi_invalid_response';
|
|
286
|
-
readonly code:
|
|
298
|
+
readonly code: JsonRpcErrorCode.SerializationError;
|
|
287
299
|
readonly when: 'NCBI returned a body that could not be parsed (invalid XML/JSON).';
|
|
288
300
|
readonly recovery: 'Retry the request; NCBI returned a malformed response that could not be parsed.';
|
|
289
301
|
readonly retryable: true;
|
|
290
302
|
readonly thrownBy: 'service';
|
|
291
303
|
}, {
|
|
292
304
|
readonly reason: 'ncbi_resource_not_found';
|
|
293
|
-
readonly code:
|
|
305
|
+
readonly code: JsonRpcErrorCode.NotFound;
|
|
294
306
|
readonly when: 'NCBI returned a structured "not found" error for the requested ID(s).';
|
|
295
307
|
readonly recovery: 'Verify the ID exists in PubMed; the resource was not found in NCBI and retrying will not help.';
|
|
296
308
|
readonly retryable: false;
|
|
297
309
|
readonly thrownBy: 'service';
|
|
310
|
+
}, {
|
|
311
|
+
readonly reason: 'blank_filter';
|
|
312
|
+
readonly code: JsonRpcErrorCode.ValidationError;
|
|
313
|
+
readonly when: 'A `sections` element holds no visible character — only whitespace, or invisible characters such as a zero-width space — so it names no heading. An exactly-empty element is not blank here; it is skipped.';
|
|
314
|
+
readonly recovery: 'Give each named `sections` element a heading term such as Methods, or make it an empty string, which is skipped; omit `sections` for no filter. The same blank element will be rejected again.';
|
|
315
|
+
readonly retryable: false;
|
|
298
316
|
}], {
|
|
299
317
|
readonly notice: z.ZodOptional<z.ZodString>;
|
|
300
318
|
readonly truncated: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-fulltext.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-fulltext.tool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fetch-fulltext.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/fetch-fulltext.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAsB,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAsB,MAAM,+BAA+B,CAAC;AAq/CrF;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,MAAM,CAiCT;AAOD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkBhB,cAAc;;mBAEhB,4MAA4M;uBAEhN,gMAAgM;;;;;EAs6BtM,CAAC"}
|