@cyanheads/pubmed-mcp-server 2.10.18 → 2.10.19

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.
Files changed (96) hide show
  1. package/AGENTS.md +11 -13
  2. package/CLAUDE.md +11 -13
  3. package/Dockerfile +77 -36
  4. package/README.md +86 -109
  5. package/changelog/2.10.x/2.10.19.md +42 -0
  6. package/dist/mcp-server/resources/definitions/database-info.resource.d.ts +43 -1
  7. package/dist/mcp-server/resources/definitions/database-info.resource.d.ts.map +1 -1
  8. package/dist/mcp-server/resources/definitions/database-info.resource.js +2 -0
  9. package/dist/mcp-server/resources/definitions/database-info.resource.js.map +1 -1
  10. package/dist/mcp-server/tools/definitions/_visible-text.d.ts +19 -0
  11. package/dist/mcp-server/tools/definitions/_visible-text.d.ts.map +1 -0
  12. package/dist/mcp-server/tools/definitions/_visible-text.js +22 -0
  13. package/dist/mcp-server/tools/definitions/_visible-text.js.map +1 -0
  14. package/dist/mcp-server/tools/definitions/convert-ids.tool.d.ts +11 -4
  15. package/dist/mcp-server/tools/definitions/convert-ids.tool.d.ts.map +1 -1
  16. package/dist/mcp-server/tools/definitions/convert-ids.tool.js +1 -1
  17. package/dist/mcp-server/tools/definitions/convert-ids.tool.js.map +1 -1
  18. package/dist/mcp-server/tools/definitions/fetch-articles.tool.d.ts +20 -7
  19. package/dist/mcp-server/tools/definitions/fetch-articles.tool.d.ts.map +1 -1
  20. package/dist/mcp-server/tools/definitions/fetch-articles.tool.js +40 -5
  21. package/dist/mcp-server/tools/definitions/fetch-articles.tool.js.map +1 -1
  22. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts +11 -4
  23. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js +18 -1
  25. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/definitions/find-related.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/find-related.tool.js +19 -5
  28. package/dist/mcp-server/tools/definitions/find-related.tool.js.map +1 -1
  29. package/dist/mcp-server/tools/definitions/format-citations.tool.d.ts +11 -4
  30. package/dist/mcp-server/tools/definitions/format-citations.tool.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/definitions/lookup-citation.tool.d.ts +16 -15
  32. package/dist/mcp-server/tools/definitions/lookup-citation.tool.d.ts.map +1 -1
  33. package/dist/mcp-server/tools/definitions/lookup-citation.tool.js +40 -22
  34. package/dist/mcp-server/tools/definitions/lookup-citation.tool.js.map +1 -1
  35. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.d.ts +13 -6
  36. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.d.ts.map +1 -1
  37. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.js +8 -8
  38. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.js.map +1 -1
  39. package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.d.ts +2 -2
  40. package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.d.ts.map +1 -1
  41. package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.js +1 -1
  42. package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.js.map +1 -1
  43. package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.d.ts +19 -5
  44. package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.d.ts.map +1 -1
  45. package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.js +37 -7
  46. package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.js.map +1 -1
  47. package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts +40 -18
  48. package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts.map +1 -1
  49. package/dist/mcp-server/tools/definitions/search-articles.tool.js +193 -43
  50. package/dist/mcp-server/tools/definitions/search-articles.tool.js.map +1 -1
  51. package/dist/mcp-server/tools/definitions/spell-check.tool.d.ts +13 -6
  52. package/dist/mcp-server/tools/definitions/spell-check.tool.d.ts.map +1 -1
  53. package/dist/mcp-server/tools/definitions/spell-check.tool.js +8 -8
  54. package/dist/mcp-server/tools/definitions/spell-check.tool.js.map +1 -1
  55. package/dist/services/error-contracts.d.ts +42 -71
  56. package/dist/services/error-contracts.d.ts.map +1 -1
  57. package/dist/services/error-contracts.js +43 -75
  58. package/dist/services/error-contracts.js.map +1 -1
  59. package/dist/services/europe-pmc/api-client.d.ts +8 -2
  60. package/dist/services/europe-pmc/api-client.d.ts.map +1 -1
  61. package/dist/services/europe-pmc/api-client.js +13 -8
  62. package/dist/services/europe-pmc/api-client.js.map +1 -1
  63. package/dist/services/europe-pmc/europe-pmc-service.d.ts +25 -2
  64. package/dist/services/europe-pmc/europe-pmc-service.d.ts.map +1 -1
  65. package/dist/services/europe-pmc/europe-pmc-service.js +90 -25
  66. package/dist/services/europe-pmc/europe-pmc-service.js.map +1 -1
  67. package/dist/services/europe-pmc/types.d.ts +6 -1
  68. package/dist/services/europe-pmc/types.d.ts.map +1 -1
  69. package/dist/services/ncbi/api-client.d.ts.map +1 -1
  70. package/dist/services/ncbi/api-client.js +2 -3
  71. package/dist/services/ncbi/api-client.js.map +1 -1
  72. package/dist/services/ncbi/ncbi-service.d.ts +2 -1
  73. package/dist/services/ncbi/ncbi-service.d.ts.map +1 -1
  74. package/dist/services/ncbi/ncbi-service.js +67 -20
  75. package/dist/services/ncbi/ncbi-service.js.map +1 -1
  76. package/dist/services/ncbi/parsing/article-parser.d.ts +15 -1
  77. package/dist/services/ncbi/parsing/article-parser.d.ts.map +1 -1
  78. package/dist/services/ncbi/parsing/article-parser.js +29 -0
  79. package/dist/services/ncbi/parsing/article-parser.js.map +1 -1
  80. package/dist/services/ncbi/response-handler.d.ts.map +1 -1
  81. package/dist/services/ncbi/response-handler.js +22 -19
  82. package/dist/services/ncbi/response-handler.js.map +1 -1
  83. package/dist/services/ncbi/types.d.ts +33 -0
  84. package/dist/services/ncbi/types.d.ts.map +1 -1
  85. package/dist/services/openalex/api-client.d.ts.map +1 -1
  86. package/dist/services/openalex/api-client.js +6 -7
  87. package/dist/services/openalex/api-client.js.map +1 -1
  88. package/dist/services/openalex/openalex-service.d.ts +3 -3
  89. package/dist/services/openalex/openalex-service.d.ts.map +1 -1
  90. package/dist/services/openalex/openalex-service.js +4 -6
  91. package/dist/services/openalex/openalex-service.js.map +1 -1
  92. package/dist/services/unpaywall/unpaywall-service.d.ts.map +1 -1
  93. package/dist/services/unpaywall/unpaywall-service.js +1 -3
  94. package/dist/services/unpaywall/unpaywall-service.js.map +1 -1
  95. package/package.json +6 -5
  96. package/server.json +3 -3
@@ -4,9 +4,11 @@
4
4
  * and EPMC-only OA articles. Uses EPMC's cursor-based pagination
5
5
  * (`cursorMark`) — unlike `pubmed_search_articles`'s offset-based paging,
6
6
  * because EPMC's search API doesn't support offset. `max_results` and `limit`
7
- * are accepted as aliases for `pageSize`. The total hit count rides in
8
- * `output` so `format()` can state it in the header, and `searchUrl` opens the
9
- * source-filtered query Europe PMC actually ran.
7
+ * are accepted as aliases for `pageSize`. A `query` with no search term (`()`,
8
+ * `<b></b>`) or a blank `cursorMark` is rejected before Europe PMC is called.
9
+ * The total hit count rides in `output` so `format()` can state it in the
10
+ * header, and `searchUrl` opens the source-filtered query Europe PMC actually
11
+ * ran.
10
12
  *
11
13
  * Only registered when `EUROPEPMC_ENABLED=true` (the default). The handler
12
14
  * fails fast with a configuration error if the service is unset, since the
@@ -78,10 +80,22 @@ export declare const pubmedEuropepmcSearchTool: import("@cyanheads/mcp-ts-core")
78
80
  }, {
79
81
  readonly reason: 'europepmc_invalid_input';
80
82
  readonly code: JsonRpcErrorCode.ValidationError;
81
- readonly when: 'Europe PMC rejected the request input — an error message such as an empty query, an empty response to a sort with an undocumented field or no asc/desc direction, or an empty response to a pagination cursor on every attempt.';
82
- readonly recovery: 'Adjust the input — the query, the sort, or the cursorMark — before retrying; the same input will be rejected again.';
83
+ readonly when: 'Europe PMC rejected the request input — an error message in place of results, an empty response to a sort with an undocumented field or no asc/desc direction, or a pagination cursor it cannot read (an empty response on the last attempt the retry budget allows, or a second HTTP 503 when the first page of the same query is served).';
84
+ readonly recovery: "Fix the rejected input before retrying — the query, the sort, or the cursorMark (pass the previous response's `nextCursorMark` verbatim, or `*` to restart); the same input will most likely be rejected again.";
83
85
  readonly retryable: false;
84
86
  readonly thrownBy: 'service';
87
+ }, {
88
+ readonly reason: 'blank_query';
89
+ readonly code: JsonRpcErrorCode.ValidationError;
90
+ readonly when: 'The query contains no search term: nothing is left once whitespace and invisible characters such as a zero-width space are disregarded. pubmed_search_articles and pubmed_europepmc_search first decode HTML entities and also disregard markup and parentheses, so `()`, `<b></b>`, and `&nbsp;` hold no term there; pubmed_search_articles also disregards bracketed field tags such as `[pdat]`.';
91
+ readonly recovery: 'Supply a nonblank search term; retrying the same blank input will not help.';
92
+ readonly retryable: false;
93
+ }, {
94
+ readonly reason: 'blank_cursor';
95
+ readonly code: JsonRpcErrorCode.ValidationError;
96
+ readonly when: 'The `cursorMark` holds only whitespace or invisible characters such as a zero-width space. Europe PMC cannot read it and answers with the HTTP 503 it also uses for an outage.';
97
+ readonly recovery: "Omit `cursorMark` or pass `*` for the first page, or pass the previous response's `nextCursorMark` verbatim for the next page.";
98
+ readonly retryable: false;
85
99
  }, {
86
100
  readonly reason: 'europepmc_disabled';
87
101
  readonly code: JsonRpcErrorCode.ConfigurationError;
@@ -1 +1 @@
1
- {"version":3,"file":"pubmed-europepmc-search.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pubmed-europepmc-search.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA8BjE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAWxB,oBAAoB;;mBAEtB,6DAA6D;uBACzD,mFAAmF;;;;;;;;;;;EAwSjG,CAAC"}
1
+ {"version":3,"file":"pubmed-europepmc-search.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pubmed-europepmc-search.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAgCjE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAYxB,cAAc;;mBAEhB,gLAAgL;uBAEpL,gIAAgI;;;qBAI1H,oBAAoB;;mBAEtB,6DAA6D;uBACzD,mFAAmF;;;;;;;;;;;EA+TjG,CAAC"}
@@ -4,9 +4,11 @@
4
4
  * and EPMC-only OA articles. Uses EPMC's cursor-based pagination
5
5
  * (`cursorMark`) — unlike `pubmed_search_articles`'s offset-based paging,
6
6
  * because EPMC's search API doesn't support offset. `max_results` and `limit`
7
- * are accepted as aliases for `pageSize`. The total hit count rides in
8
- * `output` so `format()` can state it in the header, and `searchUrl` opens the
9
- * source-filtered query Europe PMC actually ran.
7
+ * are accepted as aliases for `pageSize`. A `query` with no search term (`()`,
8
+ * `<b></b>`) or a blank `cursorMark` is rejected before Europe PMC is called.
9
+ * The total hit count rides in `output` so `format()` can state it in the
10
+ * header, and `searchUrl` opens the source-filtered query Europe PMC actually
11
+ * ran.
10
12
  *
11
13
  * Only registered when `EUROPEPMC_ENABLED=true` (the default). The handler
12
14
  * fails fast with a configuration error if the service is unset, since the
@@ -16,12 +18,14 @@
16
18
  */
17
19
  import { tool, z } from '@cyanheads/mcp-ts-core';
18
20
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
19
- import { EUROPEPMC_SERVICE_ERRORS } from '../../../services/error-contracts.js';
21
+ import { sanitization } from '@cyanheads/mcp-ts-core/utils';
22
+ import { EUROPEPMC_SERVICE_ERRORS, QUERY_INPUT_ERRORS } from '../../../services/error-contracts.js';
20
23
  import { getEuropePmcService } from '../../../services/europe-pmc/europe-pmc-service.js';
21
24
  import { EUROPEPMC_ALL_SOURCES, EUROPEPMC_DEFAULT_SOURCES, } from '../../../services/europe-pmc/types.js';
22
25
  import { toDisplayText } from '../../../services/ncbi/parsing/text-helpers.js';
23
26
  import { conceptMeta, EDAM_DATABASE_SEARCH, EDAM_PUBMED_ID, SCHEMA_SEARCH_ACTION, } from './_concepts.js';
24
27
  import { escapeMarkdownInline, sliceCodeUnits } from './_text.js';
28
+ import { hasVisibleText } from './_visible-text.js';
25
29
  const SourceEnum = z.enum(['MED', 'PMC', 'PPR', 'PAT', 'AGR']);
26
30
  /**
27
31
  * Character budget for `abstractSnippet`. Keeps a search page bounded no matter
@@ -39,6 +43,14 @@ export const pubmedEuropepmcSearchTool = tool('pubmed_europepmc_search', {
39
43
  sourceUrl: 'https://github.com/cyanheads/pubmed-mcp-server/blob/main/src/mcp-server/tools/definitions/pubmed-europepmc-search.tool.ts',
40
44
  errors: [
41
45
  ...EUROPEPMC_SERVICE_ERRORS,
46
+ ...QUERY_INPUT_ERRORS,
47
+ {
48
+ reason: 'blank_cursor',
49
+ code: JsonRpcErrorCode.ValidationError,
50
+ when: 'The `cursorMark` holds only whitespace or invisible characters such as a zero-width space. Europe PMC cannot read it and answers with the HTTP 503 it also uses for an outage.',
51
+ recovery: "Omit `cursorMark` or pass `*` for the first page, or pass the previous response's `nextCursorMark` verbatim for the next page.",
52
+ retryable: false,
53
+ },
42
54
  {
43
55
  reason: 'europepmc_disabled',
44
56
  code: JsonRpcErrorCode.ConfigurationError,
@@ -53,7 +65,7 @@ export const pubmedEuropepmcSearchTool = tool('pubmed_europepmc_search', {
53
65
  query: z
54
66
  .string()
55
67
  .min(1)
56
- .describe('Europe PMC search query. Supports field tokens like `AUTH:"<name>"`, `JOURNAL:"<title>"`, `TITLE:"<words>"`, `PUB_YEAR:[2020 TO 2024]`, `DOI:"..."`, `EXT_ID:<pmid> AND SRC:MED`, `PMCID:PMC<digits>`. Identifier tokens may be quoted or unquoted — this tool wraps every query with its `sources` filter, and Europe PMC honors a quoted identifier inside that wrapper. A PubMed-indexed article resolves under `SRC:MED`, not `SRC:PMC`, whichever identifier is used. Free text is matched broadly across abstract/title/keywords.'),
68
+ .describe('Europe PMC search query. Supports field tokens like `AUTH:"<name>"`, `JOURNAL:"<title>"`, `TITLE:"<words>"`, `PUB_YEAR:[2020 TO 2024]`, `DOI:"..."`, `EXT_ID:<pmid> AND SRC:MED`, `PMCID:PMC<digits>`. Identifier tokens may be quoted or unquoted — this tool wraps every query with its `sources` filter, and Europe PMC honors a quoted identifier inside that wrapper. A PubMed-indexed article resolves under `SRC:MED`, not `SRC:PMC`, whichever identifier is used. Free text is matched broadly across abstract/title/keywords. A query with no search term — blank once HTML entities are decoded and markup, parentheses, and invisible characters are disregarded, such as `()` or `<b></b>` — is rejected; any other query is sent as written.'),
57
69
  pageSize: z
58
70
  .number()
59
71
  .int()
@@ -64,7 +76,7 @@ export const pubmedEuropepmcSearchTool = tool('pubmed_europepmc_search', {
64
76
  cursorMark: z
65
77
  .string()
66
78
  .default('*')
67
- .describe("Pagination cursor. Use `*` (default) for the first page; pass the previous response's `nextCursorMark` for subsequent pages."),
79
+ .describe("Pagination cursor. Use `*` (default) for the first page; pass the previous response's `nextCursorMark` verbatim for subsequent pages. A whitespace-only cursor, invisible characters included, is rejected before the request, and a cursor Europe PMC cannot read fails with `europepmc_invalid_input` once a retry of it fails again while the first page of the same query is served."),
68
80
  sources: z
69
81
  .array(SourceEnum)
70
82
  .min(1)
@@ -164,9 +176,27 @@ export const pubmedEuropepmcSearchTool = tool('pubmed_europepmc_search', {
164
176
  },
165
177
  async handler(input, ctx) {
166
178
  ctx.log.info('Executing pubmed_europepmc_search', { query: input.query });
179
+ // `min(1)` counts whitespace, and the source wrapper trims a blank query to
180
+ // `() AND (SRC:"MED")`, which Europe PMC answers with every record of that
181
+ // source. The check runs on the caller's query, before the wrapper, and
182
+ // applies pubmed_search_articles' rule: markup stripped, entities decoded,
183
+ // parentheses and invisible characters disregarded. Europe PMC would search
184
+ // `<b></b>` as the word `b`, but that is no term the caller wrote. The
185
+ // sanitized copy only decides blankness; the query is sent as written. (#176)
186
+ const checkedQuery = await sanitization.sanitizeString(input.query, { context: 'text' });
187
+ if (!hasVisibleText(checkedQuery.replace(/[()]/g, ''))) {
188
+ throw ctx.fail('blank_query', 'The `query` contains no search term — it is blank once HTML entities are decoded and markup, parentheses, and invisible characters are disregarded.');
189
+ }
190
+ // Europe PMC answers a blank cursor — whitespace or invisible characters —
191
+ // with the HTTP 503 it uses for an outage, which would be retried as one.
192
+ // An exactly-empty cursor reads as the first page upstream and passes
193
+ // through. (#180)
194
+ if (input.cursorMark !== '' && !hasVisibleText(input.cursorMark)) {
195
+ throw ctx.fail('blank_cursor', 'The `cursorMark` holds only whitespace or invisible characters, which Europe PMC cannot read as a page position.');
196
+ }
167
197
  const epmc = getEuropePmcService();
168
198
  if (!epmc) {
169
- throw ctx.fail('europepmc_disabled', 'Europe PMC service is not available. Set EUROPEPMC_ENABLED=true to use this tool.', { ...ctx.recoveryFor('europepmc_disabled') });
199
+ throw ctx.fail('europepmc_disabled', 'Europe PMC service is not available. Set EUROPEPMC_ENABLED=true to use this tool.');
170
200
  }
171
201
  const sources = (input.sources ?? EUROPEPMC_DEFAULT_SOURCES);
172
202
  const result = await epmc.search({
@@ -1 +1 @@
1
- {"version":3,"file":"pubmed-europepmc-search.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pubmed-europepmc-search.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pubmed-europepmc-search.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pubmed-europepmc-search.tool.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
1
  /**
2
2
  * @fileoverview PubMed search tool. Searches PubMed with full query syntax,
3
3
  * field-specific filters, date ranges, pagination, and optional brief summaries.
4
- * A query with no search term — blank, markup only, a bare field tag, or empty
5
- * parentheses — is rejected before NCBI is called. `limit` is accepted as an
6
- * alias for `maxResults`. The total match count rides in `output` so `format()`
7
- * can state it in the header beside the returned count, and a summary's
8
- * `docType` is rendered only when it marks something other than an ordinary
9
- * journal article (`citation`).
4
+ * A query with no search term — blank, invisible characters only, markup only, a
5
+ * bare field tag, or empty parentheses — is rejected before NCBI is called, as
6
+ * is a filter value with no term once sanitized (`" "`, `"()"`), a
7
+ * `dateRange` bound that is no real calendar date, and a range whose `minDate`
8
+ * falls after its `maxDate`. `limit` is accepted as an alias for `maxResults`.
9
+ * The total match count rides in `output` so `format()` can state it in the
10
+ * header beside the returned count, and a summary's `docType` is rendered only
11
+ * when it marks something other than an ordinary journal article (`citation`).
10
12
  * @module src/mcp-server/tools/definitions/search-articles.tool
11
13
  */
12
14
  import { z } from '@cyanheads/mcp-ts-core';
15
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
13
16
  export declare const searchArticlesTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
14
17
  query: z.ZodString;
15
18
  maxResults: z.ZodDefault<z.ZodNumber>;
@@ -64,44 +67,63 @@ export declare const searchArticlesTool: import("@cyanheads/mcp-ts-core").ToolDe
64
67
  totalCount: z.ZodNumber;
65
68
  }, z.core.$strip>, readonly [{
66
69
  readonly reason: 'queue_full';
67
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
70
+ readonly code: JsonRpcErrorCode.RateLimited;
68
71
  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).';
69
72
  readonly recovery: 'Wait the number of seconds in `retryAfter`, then retry; the NCBI request queue is saturated or cooling down after a rate limit.';
70
73
  readonly retryable: true;
71
74
  readonly thrownBy: 'service';
72
75
  }, {
73
76
  readonly reason: 'ncbi_unreachable';
74
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
75
- readonly when: 'NCBI E-utilities is unreachable after all retry attempts.';
76
- readonly recovery: 'Retry after a brief delay; NCBI was unreachable across all retry attempts.';
77
+ readonly code: JsonRpcErrorCode.ServiceUnavailable;
78
+ 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.';
79
+ readonly recovery: 'Retry after a brief delay; NCBI failed on every attempt this call made.';
80
+ readonly retryable: true;
81
+ readonly thrownBy: 'service';
82
+ }, {
83
+ readonly reason: 'ncbi_rate_limited';
84
+ readonly code: JsonRpcErrorCode.RateLimited;
85
+ 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.';
86
+ 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.";
77
87
  readonly retryable: true;
78
88
  readonly thrownBy: 'service';
79
89
  }, {
80
90
  readonly reason: 'ncbi_deadline_exceeded';
81
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Timeout;
82
- readonly when: 'Total request deadline expired before NCBI returned a response.';
83
- readonly recovery: 'Reduce batch size or retry; NCBI may be under temporary load.';
91
+ readonly code: JsonRpcErrorCode.Timeout;
92
+ readonly when: 'The total NCBI request deadline expired before NCBI answered successfully — mid-request, while queued, or during a retry backoff.';
93
+ readonly recovery: 'Retry after a brief delay; NCBI may be under temporary load. For a large batch, split it into smaller calls.';
84
94
  readonly retryable: true;
85
95
  readonly thrownBy: 'service';
86
96
  }, {
87
97
  readonly reason: 'ncbi_invalid_response';
88
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.SerializationError;
98
+ readonly code: JsonRpcErrorCode.SerializationError;
89
99
  readonly when: 'NCBI returned a body that could not be parsed (invalid XML/JSON).';
90
100
  readonly recovery: 'Retry the request; NCBI returned a malformed response that could not be parsed.';
91
101
  readonly retryable: true;
92
102
  readonly thrownBy: 'service';
93
103
  }, {
94
104
  readonly reason: 'ncbi_resource_not_found';
95
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
105
+ readonly code: JsonRpcErrorCode.NotFound;
96
106
  readonly when: 'NCBI returned a structured "not found" error for the requested ID(s).';
97
107
  readonly recovery: 'Verify the ID exists in PubMed; the resource was not found in NCBI and retrying will not help.';
98
108
  readonly retryable: false;
99
109
  readonly thrownBy: 'service';
100
110
  }, {
101
111
  readonly reason: 'blank_query';
102
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
103
- readonly when: 'The query holds no search term once whitespace, and anything the tool strips before searching, are removed — so NCBI would receive a blank term. pubmed_search_articles strips markup, bracketed field tags, and parentheses, so a bare field tag such as `[pdat]` or empty parentheses `()` count as blank there.';
104
- readonly recovery: 'Supply a nonblank search term — a bare field tag or empty parentheses carry none; NCBI cannot search a blank term and retrying the same input will not help.';
112
+ readonly code: JsonRpcErrorCode.ValidationError;
113
+ readonly when: 'The query contains no search term: nothing is left once whitespace and invisible characters such as a zero-width space are disregarded. pubmed_search_articles and pubmed_europepmc_search first decode HTML entities and also disregard markup and parentheses, so `()`, `<b></b>`, and `&nbsp;` hold no term there; pubmed_search_articles also disregards bracketed field tags such as `[pdat]`.';
114
+ readonly recovery: 'Supply a nonblank search term; retrying the same blank input will not help.';
115
+ readonly retryable: false;
116
+ }, {
117
+ readonly reason: 'invalid_date_range';
118
+ readonly code: JsonRpcErrorCode.ValidationError;
119
+ readonly when: 'A `dateRange` bound is not a real calendar date — a month outside 01–12, day 00, or a day past the end of its month such as `2023/02/29` — or `minDate` falls after `maxDate` once PubMed expands each partial date: `minDate` from the start of its year or month, `maxDate` to the end.';
120
+ readonly recovery: 'Correct the named bound to a real calendar date, or swap the bounds so minDate does not fall after maxDate; the same range will be rejected again.';
121
+ readonly retryable: false;
122
+ }, {
123
+ readonly reason: 'blank_filter';
124
+ readonly code: JsonRpcErrorCode.ValidationError;
125
+ readonly when: 'An `author`, `journal`, or `language` value, or a `publicationTypes` or `meshTerms` element, holds no term once markup is removed and HTML entities are decoded — only whitespace, invisible characters such as a zero-width space, parentheses, brackets, or double quotes are left, as in `()` or `""` — so its field clause would carry no term. An exactly-empty string is not blank here; it sets no filter.';
126
+ readonly recovery: 'Give each named filter a value, or pass an empty string or omit it for no filter; the same blank value will be rejected again.';
105
127
  readonly retryable: false;
106
128
  }], {
107
129
  readonly effectiveQuery: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"search-articles.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-articles.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AA8LjD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmb7B,CAAC"}
1
+ {"version":3,"file":"search-articles.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-articles.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAiUjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAYjB,oBAAoB;;mBAEtB,2RAA2R;uBAE/R,oJAAoJ;;;qBAI9I,cAAc;;mBAEhB,mZAAmZ;uBAEvZ,gIAAgI;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuctI,CAAC"}