@cyanheads/pubmed-mcp-server 2.10.9 → 2.10.11

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 (83) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/README.md +13 -5
  4. package/dist/mcp-server/tools/definitions/_schemas.d.ts +16 -0
  5. package/dist/mcp-server/tools/definitions/_schemas.d.ts.map +1 -1
  6. package/dist/mcp-server/tools/definitions/_schemas.js +20 -0
  7. package/dist/mcp-server/tools/definitions/_schemas.js.map +1 -1
  8. package/dist/mcp-server/tools/definitions/convert-ids.tool.d.ts +6 -0
  9. package/dist/mcp-server/tools/definitions/convert-ids.tool.d.ts.map +1 -1
  10. package/dist/mcp-server/tools/definitions/convert-ids.tool.js +28 -3
  11. package/dist/mcp-server/tools/definitions/convert-ids.tool.js.map +1 -1
  12. package/dist/mcp-server/tools/definitions/fetch-articles.tool.d.ts +27 -0
  13. package/dist/mcp-server/tools/definitions/fetch-articles.tool.d.ts.map +1 -1
  14. package/dist/mcp-server/tools/definitions/fetch-articles.tool.js +166 -24
  15. package/dist/mcp-server/tools/definitions/fetch-articles.tool.js.map +1 -1
  16. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts +18 -0
  17. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js +307 -68
  19. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js.map +1 -1
  20. package/dist/mcp-server/tools/definitions/find-related.tool.d.ts +12 -0
  21. package/dist/mcp-server/tools/definitions/find-related.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/find-related.tool.js +171 -27
  23. package/dist/mcp-server/tools/definitions/find-related.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/format-citations.tool.d.ts.map +1 -1
  25. package/dist/mcp-server/tools/definitions/format-citations.tool.js +11 -13
  26. package/dist/mcp-server/tools/definitions/format-citations.tool.js.map +1 -1
  27. package/dist/mcp-server/tools/definitions/lookup-citation.tool.d.ts.map +1 -1
  28. package/dist/mcp-server/tools/definitions/lookup-citation.tool.js +42 -8
  29. package/dist/mcp-server/tools/definitions/lookup-citation.tool.js.map +1 -1
  30. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.d.ts +6 -0
  31. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.d.ts.map +1 -1
  32. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.js +14 -3
  33. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.js.map +1 -1
  34. package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts +10 -0
  35. package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts.map +1 -1
  36. package/dist/mcp-server/tools/definitions/search-articles.tool.js +52 -5
  37. package/dist/mcp-server/tools/definitions/search-articles.tool.js.map +1 -1
  38. package/dist/mcp-server/tools/definitions/spell-check.tool.d.ts +6 -0
  39. package/dist/mcp-server/tools/definitions/spell-check.tool.d.ts.map +1 -1
  40. package/dist/mcp-server/tools/definitions/spell-check.tool.js +15 -3
  41. package/dist/mcp-server/tools/definitions/spell-check.tool.js.map +1 -1
  42. package/dist/services/error-contracts.d.ts +39 -2
  43. package/dist/services/error-contracts.d.ts.map +1 -1
  44. package/dist/services/error-contracts.js +43 -2
  45. package/dist/services/error-contracts.js.map +1 -1
  46. package/dist/services/ncbi/formatting/citation-formatter.d.ts +0 -29
  47. package/dist/services/ncbi/formatting/citation-formatter.d.ts.map +1 -1
  48. package/dist/services/ncbi/formatting/citation-formatter.js +381 -30
  49. package/dist/services/ncbi/formatting/citation-formatter.js.map +1 -1
  50. package/dist/services/ncbi/ncbi-service.d.ts +3 -2
  51. package/dist/services/ncbi/ncbi-service.d.ts.map +1 -1
  52. package/dist/services/ncbi/ncbi-service.js +22 -10
  53. package/dist/services/ncbi/ncbi-service.js.map +1 -1
  54. package/dist/services/ncbi/parsing/article-parser.d.ts +45 -2
  55. package/dist/services/ncbi/parsing/article-parser.d.ts.map +1 -1
  56. package/dist/services/ncbi/parsing/article-parser.js +208 -1
  57. package/dist/services/ncbi/parsing/article-parser.js.map +1 -1
  58. package/dist/services/ncbi/parsing/esummary-parser.d.ts.map +1 -1
  59. package/dist/services/ncbi/parsing/esummary-parser.js +32 -1
  60. package/dist/services/ncbi/parsing/esummary-parser.js.map +1 -1
  61. package/dist/services/ncbi/parsing/pmc-article-parser.d.ts +24 -4
  62. package/dist/services/ncbi/parsing/pmc-article-parser.d.ts.map +1 -1
  63. package/dist/services/ncbi/parsing/pmc-article-parser.js +505 -57
  64. package/dist/services/ncbi/parsing/pmc-article-parser.js.map +1 -1
  65. package/dist/services/ncbi/response-handler.d.ts.map +1 -1
  66. package/dist/services/ncbi/response-handler.js +42 -1
  67. package/dist/services/ncbi/response-handler.js.map +1 -1
  68. package/dist/services/ncbi/types.d.ts +215 -2
  69. package/dist/services/ncbi/types.d.ts.map +1 -1
  70. package/dist/services/openalex/api-client.d.ts +13 -4
  71. package/dist/services/openalex/api-client.d.ts.map +1 -1
  72. package/dist/services/openalex/api-client.js +19 -8
  73. package/dist/services/openalex/api-client.js.map +1 -1
  74. package/dist/services/openalex/openalex-service.d.ts +34 -17
  75. package/dist/services/openalex/openalex-service.d.ts.map +1 -1
  76. package/dist/services/openalex/openalex-service.js +119 -35
  77. package/dist/services/openalex/openalex-service.js.map +1 -1
  78. package/dist/services/openalex/types.d.ts +34 -1
  79. package/dist/services/openalex/types.d.ts.map +1 -1
  80. package/dist/services/openalex/types.js +20 -0
  81. package/dist/services/openalex/types.js.map +1 -1
  82. package/package.json +1 -1
  83. package/server.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/openalex/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,sDAAsD;AACtD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/openalex/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kFAAkF;IAClF,WAAW,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -12,4 +12,24 @@
12
12
  */
13
13
  /** Base URL for the OpenAlex public API. */
14
14
  export const OPENALEX_API_BASE = 'https://api.openalex.org';
15
+ /**
16
+ * Rows OpenAlex serves per request. The documented `per_page` range is 1-100,
17
+ * and basic paging is additionally bounded by `page × per_page ≤ 10,000` —
18
+ * beyond that the API returns HTTP 400 and demands cursor paging.
19
+ */
20
+ export const OPENALEX_MAX_PAGE_SIZE = 100;
21
+ /**
22
+ * Values one `filter=openalex:W1|W2|…` OR-clause accepts. A 101st value is
23
+ * rejected with HTTP 400 ("Maximum number of values exceeded"), so a caller
24
+ * resolving a long ID list must split it into batches of this size.
25
+ */
26
+ export const OPENALEX_MAX_FILTER_VALUES = 100;
27
+ /**
28
+ * Upstream requests one service call may spend reaching the window — pages of
29
+ * the `cites:` filter, or ID-resolution batches. Ten pages of 100 reach 1,000
30
+ * upstream rows: past the 50-row `maxResults` ceiling at any realistic offset,
31
+ * inside the `page × per_page ≤ 10,000` basic-paging limit, and ~3s of
32
+ * sequential requests at the ~0.3s a page costs (~0.7s for a 100-ID batch).
33
+ */
34
+ export const OPENALEX_MAX_UPSTREAM_REQUESTS = 10;
15
35
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/openalex/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/openalex/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAE5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/pubmed-mcp-server",
3
- "version": "2.10.9",
3
+ "version": "2.10.11",
4
4
  "mcpName": "io.github.cyanheads/pubmed-mcp-server",
5
5
  "description": "Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms via MCP. STDIO or Streamable HTTP.",
6
6
  "type": "module",
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/cyanheads/pubmed-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "2.10.9",
9
+ "version": "2.10.11",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",
@@ -19,7 +19,7 @@
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/pubmed-mcp-server",
21
21
  "runtimeHint": "bun",
22
- "version": "2.10.9",
22
+ "version": "2.10.11",
23
23
  "packageArguments": [
24
24
  {
25
25
  "type": "positional",
@@ -66,7 +66,7 @@
66
66
  "registryBaseUrl": "https://registry.npmjs.org",
67
67
  "identifier": "@cyanheads/pubmed-mcp-server",
68
68
  "runtimeHint": "bun",
69
- "version": "2.10.9",
69
+ "version": "2.10.11",
70
70
  "packageArguments": [
71
71
  {
72
72
  "type": "positional",