@cyanheads/pubmed-mcp-server 2.10.14 → 2.10.16

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 (78) hide show
  1. package/AGENTS.md +4 -4
  2. package/CLAUDE.md +4 -4
  3. package/README.md +24 -15
  4. package/changelog/2.10.x/2.10.14.md +1 -0
  5. package/changelog/2.10.x/2.10.15.md +28 -0
  6. package/changelog/2.10.x/2.10.16.md +26 -0
  7. package/dist/mcp-server/tools/definitions/_schemas.d.ts +11 -1
  8. package/dist/mcp-server/tools/definitions/_schemas.d.ts.map +1 -1
  9. package/dist/mcp-server/tools/definitions/_schemas.js +13 -1
  10. package/dist/mcp-server/tools/definitions/_schemas.js.map +1 -1
  11. package/dist/mcp-server/tools/definitions/convert-ids.tool.d.ts +10 -2
  12. package/dist/mcp-server/tools/definitions/convert-ids.tool.d.ts.map +1 -1
  13. package/dist/mcp-server/tools/definitions/convert-ids.tool.js +41 -9
  14. package/dist/mcp-server/tools/definitions/convert-ids.tool.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/fetch-articles.tool.d.ts +10 -3
  16. package/dist/mcp-server/tools/definitions/fetch-articles.tool.d.ts.map +1 -1
  17. package/dist/mcp-server/tools/definitions/fetch-articles.tool.js +12 -4
  18. package/dist/mcp-server/tools/definitions/fetch-articles.tool.js.map +1 -1
  19. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts +16 -5
  20. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js +35 -12
  22. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/definitions/find-related.tool.d.ts +7 -63
  24. package/dist/mcp-server/tools/definitions/find-related.tool.d.ts.map +1 -1
  25. package/dist/mcp-server/tools/definitions/find-related.tool.js +42 -25
  26. package/dist/mcp-server/tools/definitions/find-related.tool.js.map +1 -1
  27. package/dist/mcp-server/tools/definitions/format-citations.tool.d.ts +10 -3
  28. package/dist/mcp-server/tools/definitions/format-citations.tool.d.ts.map +1 -1
  29. package/dist/mcp-server/tools/definitions/format-citations.tool.js +12 -4
  30. package/dist/mcp-server/tools/definitions/format-citations.tool.js.map +1 -1
  31. package/dist/mcp-server/tools/definitions/lookup-citation.tool.d.ts +18 -4
  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 +62 -41
  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 +10 -5
  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 +3 -1
  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 +6 -3
  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-search.tool.d.ts +11 -5
  42. package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.d.ts.map +1 -1
  43. package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.js +20 -11
  44. package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.js.map +1 -1
  45. package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts +16 -5
  46. package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts.map +1 -1
  47. package/dist/mcp-server/tools/definitions/search-articles.tool.js +71 -11
  48. package/dist/mcp-server/tools/definitions/search-articles.tool.js.map +1 -1
  49. package/dist/mcp-server/tools/definitions/spell-check.tool.d.ts +12 -6
  50. package/dist/mcp-server/tools/definitions/spell-check.tool.d.ts.map +1 -1
  51. package/dist/mcp-server/tools/definitions/spell-check.tool.js +4 -3
  52. package/dist/mcp-server/tools/definitions/spell-check.tool.js.map +1 -1
  53. package/dist/services/error-contracts.d.ts +32 -15
  54. package/dist/services/error-contracts.d.ts.map +1 -1
  55. package/dist/services/error-contracts.js +32 -15
  56. package/dist/services/error-contracts.js.map +1 -1
  57. package/dist/services/europe-pmc/api-client.d.ts +24 -9
  58. package/dist/services/europe-pmc/api-client.d.ts.map +1 -1
  59. package/dist/services/europe-pmc/api-client.js +47 -18
  60. package/dist/services/europe-pmc/api-client.js.map +1 -1
  61. package/dist/services/europe-pmc/europe-pmc-service.d.ts +22 -1
  62. package/dist/services/europe-pmc/europe-pmc-service.d.ts.map +1 -1
  63. package/dist/services/europe-pmc/europe-pmc-service.js +102 -43
  64. package/dist/services/europe-pmc/europe-pmc-service.js.map +1 -1
  65. package/dist/services/ncbi/ncbi-service.d.ts +18 -24
  66. package/dist/services/ncbi/ncbi-service.d.ts.map +1 -1
  67. package/dist/services/ncbi/ncbi-service.js +111 -120
  68. package/dist/services/ncbi/ncbi-service.js.map +1 -1
  69. package/dist/services/ncbi/request-queue.d.ts +22 -30
  70. package/dist/services/ncbi/request-queue.d.ts.map +1 -1
  71. package/dist/services/ncbi/request-queue.js +29 -128
  72. package/dist/services/ncbi/request-queue.js.map +1 -1
  73. package/dist/services/ncbi/response-handler.d.ts +14 -1
  74. package/dist/services/ncbi/response-handler.d.ts.map +1 -1
  75. package/dist/services/ncbi/response-handler.js +65 -9
  76. package/dist/services/ncbi/response-handler.js.map +1 -1
  77. package/package.json +6 -6
  78. package/server.json +3 -3
@@ -2,13 +2,17 @@
2
2
  * @fileoverview PubMed related articles tool — finds articles related to a
3
3
  * source article via a provider chain: NCBI ELink (primary) → Europe PMC →
4
4
  * OpenAlex. First success wins; results are never merged across sources.
5
- * Supports offset pagination on the returned window. A served empty answer is a
6
- * success; only a chain where every eligible provider failed is an error.
5
+ * Supports offset pagination on the returned window, sized by `maxResults`
6
+ * (`limit` accepted as an alias). A served empty answer is a success; only a
7
+ * chain where every eligible provider failed is an error. Every return path
8
+ * carries the total match count in `output`, which `format()` states in the
9
+ * header. A zero-padded source PMID runs as the PMID it spells, so the source
10
+ * never appears among its own related articles.
7
11
  * @module src/mcp-server/tools/definitions/find-related.tool
8
12
  */
9
13
  import { tool, z } from '@cyanheads/mcp-ts-core';
10
14
  import { configurationError, JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
11
- import { EUROPEPMC_SERVICE_ERRORS, NCBI_SERVICE_ERRORS, OPENALEX_SERVICE_ERRORS, } from '../../../services/error-contracts.js';
15
+ import { EUROPEPMC_SERVICE_ERRORS, OPENALEX_SERVICE_ERRORS } from '../../../services/error-contracts.js';
12
16
  import { getEuropePmcService } from '../../../services/europe-pmc/europe-pmc-service.js';
13
17
  import { getNcbiService } from '../../../services/ncbi/ncbi-service.js';
14
18
  import { extractBriefSummaries } from '../../../services/ncbi/parsing/esummary-parser.js';
@@ -16,7 +20,7 @@ import { ensureArray } from '../../../services/ncbi/parsing/xml-helpers.js';
16
20
  import { getOpenAlexServiceOptional } from '../../../services/openalex/openalex-service.js';
17
21
  import { OPENALEX_MAX_UPSTREAM_REQUESTS, } from '../../../services/openalex/types.js';
18
22
  import { conceptMeta, EDAM_DATA_RETRIEVAL, SCHEMA_SCHOLARLY_ARTICLE } from './_concepts.js';
19
- import { pmidStringSchema } from './_schemas.js';
23
+ import { normalizePmid, pmidStringSchema } from './_schemas.js';
20
24
  import { escapeMarkdownInline } from './_text.js';
21
25
  function extractValue(field) {
22
26
  if (field === undefined || field === null)
@@ -233,10 +237,10 @@ export const findRelatedTool = tool('pubmed_find_related', {
233
237
  annotations: { readOnlyHint: true, openWorldHint: true },
234
238
  _meta: conceptMeta([SCHEMA_SCHOLARLY_ARTICLE, EDAM_DATA_RETRIEVAL]),
235
239
  sourceUrl: 'https://github.com/cyanheads/pubmed-mcp-server/blob/main/src/mcp-server/tools/definitions/find-related.tool.ts',
240
+ // The handler catches every provider and ESummary failure, so no service
241
+ // reason reaches the caller as the top-level `data.reason`; each surfaces
242
+ // nested in `data.attempted` or the `coverageFailures` enrichment instead.
236
243
  errors: [
237
- ...NCBI_SERVICE_ERRORS,
238
- ...EUROPEPMC_SERVICE_ERRORS,
239
- ...OPENALEX_SERVICE_ERRORS,
240
244
  {
241
245
  reason: 'all_providers_failed',
242
246
  code: JsonRpcErrorCode.ServiceUnavailable,
@@ -245,6 +249,8 @@ export const findRelatedTool = tool('pubmed_find_related', {
245
249
  retryable: true,
246
250
  },
247
251
  ],
252
+ // Never advertised; rewritten to the canonical key before the schema parses. (#156)
253
+ inputAliases: { limit: 'maxResults' },
248
254
  input: z.object({
249
255
  pmid: pmidStringSchema.describe('Source PubMed ID'),
250
256
  relationship: z
@@ -296,14 +302,16 @@ export const findRelatedTool = tool('pubmed_find_related', {
296
302
  })
297
303
  .describe('Related article with enriched summary'))
298
304
  .describe('Related articles'),
299
- }),
300
- // Result-set context the agent reasons with — pre-truncation match count,
301
- // the answering provider, and recovery guidance. Surfaced via ctx.enrich(...)
302
- // to structuredContent and content[]; kept out of the domain return.
303
- enrichment: {
305
+ // A domain field, not enrichment: format() sees only this payload, and the
306
+ // header states the total beside the returned count. (#147)
304
307
  totalCount: z
305
308
  .number()
306
309
  .describe('Total related articles found before windowing. A Europe PMC or OpenAlex total may shrink to the PubMed-addressable count once a request window covers the whole upstream set, since rows without a PubMed PMID cannot be returned.'),
310
+ }),
311
+ // Result-set context the agent reasons with — the answering provider and
312
+ // recovery guidance. Surfaced via ctx.enrich(...) to structuredContent and
313
+ // content[]; kept out of the domain return.
314
+ enrichment: {
307
315
  source: z
308
316
  .enum(['ncbi', 'europepmc', 'openalex'])
309
317
  .describe('Provider that answered this request'),
@@ -327,7 +335,6 @@ export const findRelatedTool = tool('pubmed_find_related', {
327
335
  .describe('Reference-coverage fallbacks that failed instead of answering, so the reference set is unverified rather than confirmed absent. Absent when every provider consulted answered.'),
328
336
  },
329
337
  enrichmentTrailer: {
330
- totalCount: { label: 'Total Found' },
331
338
  source: { label: 'Source' },
332
339
  coverageFailures: {
333
340
  render: (value = []) => `**Coverage not checked:** ${summarizeOutcomes(value)}`,
@@ -340,6 +347,11 @@ export const findRelatedTool = tool('pubmed_find_related', {
340
347
  relationship: input.relationship,
341
348
  offset: input.offset,
342
349
  });
350
+ // ELink answers `0034265844` as PMID 34265844 and lists that PMID first among
351
+ // its own `similar` neighbors, so the self-filter — and every upstream call —
352
+ // uses the canonical form. `sourcePmid` and the notices keep the caller's
353
+ // spelling. (#161)
354
+ const canonicalPmid = normalizePmid(input.pmid);
343
355
  // ── Provider chain ──────────────────────────────────────────────────────
344
356
  // Try NCBI first; on failure fall back to Europe PMC then OpenAlex (first
345
357
  // success wins, never merged). A non-PMC `references` source returns an empty
@@ -361,7 +373,7 @@ export const findRelatedTool = tool('pubmed_find_related', {
361
373
  const coverageFailures = [];
362
374
  // 1. NCBI (primary)
363
375
  try {
364
- providerResult = await ncbiProvider(input.pmid, input.relationship, ctx.signal);
376
+ providerResult = await ncbiProvider(canonicalPmid, input.relationship, ctx.signal);
365
377
  }
366
378
  catch (err) {
367
379
  ctx.log.warning('NCBI eLink failed, trying fallback providers', {
@@ -374,7 +386,7 @@ export const findRelatedTool = tool('pubmed_find_related', {
374
386
  // result is not "served" — fall through to OpenAlex rather than return 0.
375
387
  if (providerResult === null && epmcSupports(input.relationship)) {
376
388
  try {
377
- const epmcResult = await epmcProvider(input.pmid, input.relationship, input.offset, input.maxResults, ctx.signal);
389
+ const epmcResult = await epmcProvider(canonicalPmid, input.relationship, input.offset, input.maxResults, ctx.signal);
378
390
  if (epmcResult.allPmids.length > 0) {
379
391
  providerResult = epmcResult;
380
392
  fallbackKind = 'outage';
@@ -394,7 +406,7 @@ export const findRelatedTool = tool('pubmed_find_related', {
394
406
  // 3. OpenAlex (last resort for all relationships)
395
407
  if (providerResult === null) {
396
408
  try {
397
- providerResult = await openAlexProvider(input.pmid, input.relationship, input.offset + input.maxResults, ctx.signal);
409
+ providerResult = await openAlexProvider(canonicalPmid, input.relationship, input.offset + input.maxResults, ctx.signal);
398
410
  fallbackKind = 'outage';
399
411
  }
400
412
  catch (err) {
@@ -431,7 +443,7 @@ export const findRelatedTool = tool('pubmed_find_related', {
431
443
  let sourceSummary;
432
444
  let sourceConfirmedMissing = false;
433
445
  try {
434
- const summaryResult = await ncbi.eSummary({ db: 'pubmed', id: input.pmid }, { signal: ctx.signal });
446
+ const summaryResult = await ncbi.eSummary({ db: 'pubmed', id: canonicalPmid }, { signal: ctx.signal });
435
447
  const summaries = await extractBriefSummaries(summaryResult);
436
448
  sourceSummary = summaries[0];
437
449
  if (!sourceSummary?.title)
@@ -447,13 +459,13 @@ export const findRelatedTool = tool('pubmed_find_related', {
447
459
  }
448
460
  if (sourceConfirmedMissing) {
449
461
  ctx.enrich({ source: 'ncbi' });
450
- ctx.enrich.total(0);
451
462
  ctx.enrich.notice(`Source PMID ${input.pmid} not found in PubMed. Verify the ID with \`pubmed_fetch_articles\` or \`pubmed_search_articles\`.`);
452
463
  return {
453
464
  sourcePmid: input.pmid,
454
465
  relationship: input.relationship,
455
466
  offset: input.offset,
456
467
  articles: [],
468
+ totalCount: 0,
457
469
  };
458
470
  }
459
471
  // References coverage fallback — only for a confirmed-valid source. NCBI
@@ -469,11 +481,11 @@ export const findRelatedTool = tool('pubmed_find_related', {
469
481
  const refAttempts = [
470
482
  {
471
483
  provider: 'europepmc',
472
- run: () => epmcProvider(input.pmid, 'references', input.offset, input.maxResults, ctx.signal),
484
+ run: () => epmcProvider(canonicalPmid, 'references', input.offset, input.maxResults, ctx.signal),
473
485
  },
474
486
  {
475
487
  provider: 'openalex',
476
- run: () => openAlexProvider(input.pmid, 'references', input.offset + input.maxResults, ctx.signal),
488
+ run: () => openAlexProvider(canonicalPmid, 'references', input.offset + input.maxResults, ctx.signal),
477
489
  },
478
490
  ];
479
491
  for (const attempt of refAttempts) {
@@ -499,7 +511,6 @@ export const findRelatedTool = tool('pubmed_find_related', {
499
511
  }
500
512
  else {
501
513
  ctx.enrich({ source: 'ncbi' });
502
- ctx.enrich.total(0);
503
514
  if (coverageFailures.length > 0)
504
515
  ctx.enrich({ coverageFailures });
505
516
  const sourcePmcId = sourceSummary.pmcId;
@@ -515,6 +526,7 @@ export const findRelatedTool = tool('pubmed_find_related', {
515
526
  relationship: input.relationship,
516
527
  offset: input.offset,
517
528
  articles: [],
529
+ totalCount: 0,
518
530
  };
519
531
  }
520
532
  }
@@ -522,19 +534,18 @@ export const findRelatedTool = tool('pubmed_find_related', {
522
534
  // similar / cited_by empty for a valid source, or references with an
523
535
  // unconfirmed source — return the honest empty without a notice.
524
536
  ctx.enrich({ source: 'ncbi' });
525
- ctx.enrich.total(0);
526
537
  return {
527
538
  sourcePmid: input.pmid,
528
539
  relationship: input.relationship,
529
540
  offset: input.offset,
530
541
  articles: [],
542
+ totalCount: 0,
531
543
  };
532
544
  }
533
545
  }
534
546
  // ── Window the result set + enrich ──────────────────────────────────────────
535
547
  const { allPmids, totalCount, source, droppedNoPmid = 0, reachCapped = false } = providerResult;
536
548
  ctx.enrich({ source });
537
- ctx.enrich.total(totalCount);
538
549
  // A provider that failed before another one answered still shapes how far
539
550
  // this reference set was actually checked.
540
551
  if (coverageFailures.length > 0)
@@ -591,6 +602,7 @@ export const findRelatedTool = tool('pubmed_find_related', {
591
602
  relationship: input.relationship,
592
603
  offset: input.offset,
593
604
  articles: [],
605
+ totalCount,
594
606
  };
595
607
  }
596
608
  // Enrich the window with ESummary. When a fallback answered because NCBI is
@@ -627,6 +639,7 @@ export const findRelatedTool = tool('pubmed_find_related', {
627
639
  relationship: input.relationship,
628
640
  offset: input.offset,
629
641
  articles,
642
+ totalCount,
630
643
  };
631
644
  }
632
645
  catch (err) {
@@ -642,6 +655,7 @@ export const findRelatedTool = tool('pubmed_find_related', {
642
655
  relationship: input.relationship,
643
656
  offset: input.offset,
644
657
  articles: window.map((pmid) => ({ pmid })),
658
+ totalCount,
645
659
  };
646
660
  }
647
661
  },
@@ -649,7 +663,7 @@ export const findRelatedTool = tool('pubmed_find_related', {
649
663
  const lines = [
650
664
  `# Related Articles for PMID ${result.sourcePmid}`,
651
665
  `**Relationship:** ${result.relationship}`,
652
- `**Returned:** ${result.articles.length} | **Offset:** ${result.offset}`,
666
+ `**Returned:** ${result.articles.length} of ${result.totalCount} | **Offset:** ${result.offset}`,
653
667
  ];
654
668
  if (result.articles.length === 0) {
655
669
  lines.push('No related articles found.');
@@ -666,7 +680,10 @@ export const findRelatedTool = tool('pubmed_find_related', {
666
680
  // A Bookshelf record has no journal: its book and publisher stand in
667
681
  // for the source so the row still names a venue. (#114)
668
682
  const book = [a.bookTitle, a.publisherName].filter(Boolean).join(' — ');
669
- const meta = [a.source, book, a.docType, a.pubDate].filter(Boolean).join(', ');
683
+ // `citation` is every ordinary journal article; the segment earns its
684
+ // place only when it flags a Bookshelf chapter or book. (#146)
685
+ const docType = a.docType === 'citation' ? undefined : a.docType;
686
+ const meta = [a.source, book, docType, a.pubDate].filter(Boolean).join(', ');
670
687
  if (meta)
671
688
  lines.push(` ${meta}`);
672
689
  }
@@ -1 +1 @@
1
- {"version":3,"file":"find-related.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-related.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-related.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-related.tool.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * @fileoverview PubMed citation tool — generates formatted citations (APA, MLA,
3
- * BibTeX, RIS, Vancouver) for one or more PubMed articles.
3
+ * BibTeX, RIS, Vancouver) for one or more PubMed articles. A zero-padded PMID
4
+ * is fetched and matched as the PMID it spells; `ids` is accepted as an alias
5
+ * for `pmids`.
4
6
  * @module src/mcp-server/tools/definitions/format-citations.tool
5
7
  */
6
8
  import { z } from '@cyanheads/mcp-ts-core';
@@ -31,33 +33,38 @@ export declare const formatCitationsTool: import("@cyanheads/mcp-ts-core").ToolD
31
33
  }, z.core.$strip>, readonly [{
32
34
  readonly reason: 'queue_full';
33
35
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
34
- readonly when: 'Local NCBI request queue is at capacity.';
35
- readonly recovery: 'Retry after 1-2 seconds; the request queue hit the NCBI rate limit.';
36
+ 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).';
37
+ readonly recovery: 'Wait the number of seconds in `retryAfter`, then retry; the NCBI request queue is saturated or cooling down after a rate limit.';
36
38
  readonly retryable: true;
39
+ readonly thrownBy: 'service';
37
40
  }, {
38
41
  readonly reason: 'ncbi_unreachable';
39
42
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
40
43
  readonly when: 'NCBI E-utilities is unreachable after all retry attempts.';
41
44
  readonly recovery: 'Retry after a brief delay; NCBI was unreachable across all retry attempts.';
42
45
  readonly retryable: true;
46
+ readonly thrownBy: 'service';
43
47
  }, {
44
48
  readonly reason: 'ncbi_deadline_exceeded';
45
49
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Timeout;
46
50
  readonly when: 'Total request deadline expired before NCBI returned a response.';
47
51
  readonly recovery: 'Reduce batch size or retry; NCBI may be under temporary load.';
48
52
  readonly retryable: true;
53
+ readonly thrownBy: 'service';
49
54
  }, {
50
55
  readonly reason: 'ncbi_invalid_response';
51
56
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.SerializationError;
52
57
  readonly when: 'NCBI returned a body that could not be parsed (invalid XML/JSON).';
53
58
  readonly recovery: 'Retry the request; NCBI returned a malformed response that could not be parsed.';
54
59
  readonly retryable: true;
60
+ readonly thrownBy: 'service';
55
61
  }, {
56
62
  readonly reason: 'ncbi_resource_not_found';
57
63
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
58
64
  readonly when: 'NCBI returned a structured "not found" error for the requested ID(s).';
59
65
  readonly recovery: 'Verify the ID exists in PubMed; the resource was not found in NCBI and retrying will not help.';
60
66
  readonly retryable: false;
67
+ readonly thrownBy: 'service';
61
68
  }], {
62
69
  readonly notice: z.ZodOptional<z.ZodString>;
63
70
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"format-citations.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/format-citations.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAwBjD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2H9B,CAAC"}
1
+ {"version":3,"file":"format-citations.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/format-citations.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAwBjD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkI9B,CAAC"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * @fileoverview PubMed citation tool — generates formatted citations (APA, MLA,
3
- * BibTeX, RIS, Vancouver) for one or more PubMed articles.
3
+ * BibTeX, RIS, Vancouver) for one or more PubMed articles. A zero-padded PMID
4
+ * is fetched and matched as the PMID it spells; `ids` is accepted as an alias
5
+ * for `pmids`.
4
6
  * @module src/mcp-server/tools/definitions/format-citations.tool
5
7
  */
6
8
  import { tool, z } from '@cyanheads/mcp-ts-core';
@@ -9,7 +11,7 @@ import { formatCitations, } from '../../../services/ncbi/formatting/citation-for
9
11
  import { getNcbiService } from '../../../services/ncbi/ncbi-service.js';
10
12
  import { parseArticleSet } from '../../../services/ncbi/parsing/article-parser.js';
11
13
  import { conceptMeta, EDAM_DATA_FORMATTING, SCHEMA_CREATIVE_WORK } from './_concepts.js';
12
- import { pmidStringSchema } from './_schemas.js';
14
+ import { normalizePmid, pmidStringSchema } from './_schemas.js';
13
15
  const CitationStyleEnum = z.enum(['apa', 'mla', 'bibtex', 'ris', 'vancouver']);
14
16
  /**
15
17
  * A union rejects a bad `format` with Zod's top-level `Invalid input`, which
@@ -27,6 +29,8 @@ export const formatCitationsTool = tool('pubmed_format_citations', {
27
29
  _meta: conceptMeta([SCHEMA_CREATIVE_WORK, EDAM_DATA_FORMATTING]),
28
30
  sourceUrl: 'https://github.com/cyanheads/pubmed-mcp-server/blob/main/src/mcp-server/tools/definitions/format-citations.tool.ts',
29
31
  errors: [...NCBI_SERVICE_ERRORS],
32
+ // Never advertised; rewritten to the canonical key before the schema parses. (#156)
33
+ inputAliases: { ids: 'pmids' },
30
34
  input: z.object({
31
35
  pmids: z.array(pmidStringSchema).min(1).max(50).describe('PubMed IDs to cite'),
32
36
  format: z
@@ -71,7 +75,11 @@ export const formatCitationsTool = tool('pubmed_format_citations', {
71
75
  pmids: input.pmids,
72
76
  formats,
73
77
  });
74
- const raw = await getNcbiService().eFetch({ db: 'pubmed', id: input.pmids.join(','), retmode: 'xml' }, { retmode: 'xml', usePost: input.pmids.length >= 25, signal: ctx.signal });
78
+ // NCBI reads `00000001` as PMID 1 and answers with `<PMID>1</PMID>`, so the
79
+ // request and the unavailability diff below both use the canonical form;
80
+ // `unavailablePmids` still reports the caller's own spelling. (#161)
81
+ const requested = [...new Set(input.pmids.map(normalizePmid))];
82
+ const raw = await getNcbiService().eFetch({ db: 'pubmed', id: requested.join(','), retmode: 'xml' }, { retmode: 'xml', usePost: requested.length >= 25, signal: ctx.signal });
75
83
  // Reads both members of the set. Taking `PubmedArticleSet.PubmedArticle`
76
84
  // alone discards every NCBI Bookshelf record, leaving a chapter or book
77
85
  // uncitable and its PMID reported unavailable. (#114)
@@ -81,7 +89,7 @@ export const formatCitationsTool = tool('pubmed_format_citations', {
81
89
  citations: formatCitations(parsed, formats),
82
90
  }));
83
91
  const returnedPmids = new Set(citations.map((entry) => entry.pmid));
84
- const unavailablePmids = input.pmids.filter((pmid) => !returnedPmids.has(pmid));
92
+ const unavailablePmids = input.pmids.filter((pmid) => !returnedPmids.has(normalizePmid(pmid)));
85
93
  if (citations.length === 0) {
86
94
  ctx.enrich.notice('No articles were returned: PubMed matched no record to any of the submitted PMIDs. It omits a PMID it does not recognize silently, without an error or a reason, so nothing more than that is known here. Try pubmed_search_articles to discover PMIDs that resolve, or pubmed_spell_check if these came from a noisy source.');
87
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"format-citations.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/format-citations.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format-citations.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/format-citations.tool.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,27 @@
3
3
  * to PubMed IDs using NCBI's ECitMatch service, then verifies author agreement
4
4
  * against ESummary to catch cases where ECitMatch's journal+volume+page weighting
5
5
  * returns a PMID whose author roster doesn't contain the queried author.
6
+ * `citations` takes an array or a single citation object, and `citation` is
7
+ * accepted as an alias for it.
6
8
  * @module src/mcp-server/tools/definitions/lookup-citation.tool
7
9
  */
8
10
  import { z } from '@cyanheads/mcp-ts-core';
9
11
  export declare const lookupCitationTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
10
- citations: z.ZodArray<z.ZodObject<{
12
+ citations: z.ZodUnion<readonly [z.ZodArray<z.ZodObject<{
11
13
  journal: z.ZodOptional<z.ZodString>;
12
14
  year: z.ZodOptional<z.ZodString>;
13
15
  volume: z.ZodOptional<z.ZodString>;
14
16
  firstPage: z.ZodOptional<z.ZodString>;
15
17
  authorName: z.ZodOptional<z.ZodString>;
16
18
  key: z.ZodOptional<z.ZodString>;
17
- }, z.core.$strip>>;
19
+ }, z.core.$strip>>, z.ZodObject<{
20
+ journal: z.ZodOptional<z.ZodString>;
21
+ year: z.ZodOptional<z.ZodString>;
22
+ volume: z.ZodOptional<z.ZodString>;
23
+ firstPage: z.ZodOptional<z.ZodString>;
24
+ authorName: z.ZodOptional<z.ZodString>;
25
+ key: z.ZodOptional<z.ZodString>;
26
+ }, z.core.$strip>]>;
18
27
  }, z.core.$strip>, z.ZodObject<{
19
28
  results: z.ZodArray<z.ZodObject<{
20
29
  key: z.ZodString;
@@ -42,32 +51,37 @@ export declare const lookupCitationTool: import("@cyanheads/mcp-ts-core").ToolDe
42
51
  }, z.core.$strip>, readonly [{
43
52
  readonly reason: 'queue_full';
44
53
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
45
- readonly when: 'Local NCBI request queue is at capacity.';
46
- readonly recovery: 'Retry after 1-2 seconds; the request queue hit the NCBI rate limit.';
54
+ 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).';
55
+ readonly recovery: 'Wait the number of seconds in `retryAfter`, then retry; the NCBI request queue is saturated or cooling down after a rate limit.';
47
56
  readonly retryable: true;
57
+ readonly thrownBy: 'service';
48
58
  }, {
49
59
  readonly reason: 'ncbi_unreachable';
50
60
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
51
61
  readonly when: 'NCBI E-utilities is unreachable after all retry attempts.';
52
62
  readonly recovery: 'Retry after a brief delay; NCBI was unreachable across all retry attempts.';
53
63
  readonly retryable: true;
64
+ readonly thrownBy: 'service';
54
65
  }, {
55
66
  readonly reason: 'ncbi_deadline_exceeded';
56
67
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Timeout;
57
68
  readonly when: 'Total request deadline expired before NCBI returned a response.';
58
69
  readonly recovery: 'Reduce batch size or retry; NCBI may be under temporary load.';
59
70
  readonly retryable: true;
71
+ readonly thrownBy: 'service';
60
72
  }, {
61
73
  readonly reason: 'ncbi_invalid_response';
62
74
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.SerializationError;
63
75
  readonly when: 'NCBI returned a body that could not be parsed (invalid XML/JSON).';
64
76
  readonly recovery: 'Retry the request; NCBI returned a malformed response that could not be parsed.';
65
77
  readonly retryable: true;
78
+ readonly thrownBy: 'service';
66
79
  }, {
67
80
  readonly reason: 'ncbi_resource_not_found';
68
81
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
69
82
  readonly when: 'NCBI returned a structured "not found" error for the requested ID(s).';
70
83
  readonly recovery: 'Verify the ID exists in PubMed; the resource was not found in NCBI and retrying will not help.';
71
84
  readonly retryable: false;
85
+ readonly thrownBy: 'service';
72
86
  }], undefined>;
73
87
  //# sourceMappingURL=lookup-citation.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lookup-citation.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/lookup-citation.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAiCjD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmT7B,CAAC"}
1
+ {"version":3,"file":"lookup-citation.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/lookup-citation.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAyFjD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqR7B,CAAC"}