@cyanheads/zenodo-mcp-server 0.1.1 → 0.1.3

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 (62) hide show
  1. package/AGENTS.md +30 -22
  2. package/CLAUDE.md +30 -22
  3. package/Dockerfile +86 -40
  4. package/README.md +31 -4
  5. package/changelog/0.1.x/0.1.2.md +33 -0
  6. package/changelog/0.1.x/0.1.3.md +35 -0
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/mcp-server/tools/definitions/get-record.tool.d.ts +106 -2
  10. package/dist/mcp-server/tools/definitions/get-record.tool.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/definitions/get-record.tool.js +453 -107
  12. package/dist/mcp-server/tools/definitions/get-record.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/index.d.ts +283 -180
  14. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/list-files.tool.d.ts.map +1 -1
  16. package/dist/mcp-server/tools/definitions/list-files.tool.js +28 -22
  17. package/dist/mcp-server/tools/definitions/list-files.tool.js.map +1 -1
  18. package/dist/mcp-server/tools/definitions/list-versions.tool.d.ts +1 -1
  19. package/dist/mcp-server/tools/definitions/list-versions.tool.d.ts.map +1 -1
  20. package/dist/mcp-server/tools/definitions/list-versions.tool.js +30 -21
  21. package/dist/mcp-server/tools/definitions/list-versions.tool.js.map +1 -1
  22. package/dist/mcp-server/tools/definitions/lookup-vocabulary.tool.d.ts +2 -1
  23. package/dist/mcp-server/tools/definitions/lookup-vocabulary.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/definitions/lookup-vocabulary.tool.js +41 -24
  25. package/dist/mcp-server/tools/definitions/lookup-vocabulary.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/definitions/read-file.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/read-file.tool.js +29 -27
  28. package/dist/mcp-server/tools/definitions/read-file.tool.js.map +1 -1
  29. package/dist/mcp-server/tools/definitions/search-records.tool.d.ts +3 -3
  30. package/dist/mcp-server/tools/definitions/search-records.tool.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/definitions/search-records.tool.js +145 -35
  32. package/dist/mcp-server/tools/definitions/search-records.tool.js.map +1 -1
  33. package/dist/mcp-server/tools/paging.d.ts +42 -0
  34. package/dist/mcp-server/tools/paging.d.ts.map +1 -0
  35. package/dist/mcp-server/tools/paging.js +44 -0
  36. package/dist/mcp-server/tools/paging.js.map +1 -0
  37. package/dist/mcp-server/tools/record-miss.d.ts +5 -1
  38. package/dist/mcp-server/tools/record-miss.d.ts.map +1 -1
  39. package/dist/mcp-server/tools/record-miss.js +6 -2
  40. package/dist/mcp-server/tools/record-miss.js.map +1 -1
  41. package/dist/services/zenodo/html-to-text.d.ts +19 -8
  42. package/dist/services/zenodo/html-to-text.d.ts.map +1 -1
  43. package/dist/services/zenodo/html-to-text.js +175 -48
  44. package/dist/services/zenodo/html-to-text.js.map +1 -1
  45. package/dist/services/zenodo/http.d.ts.map +1 -1
  46. package/dist/services/zenodo/http.js +21 -32
  47. package/dist/services/zenodo/http.js.map +1 -1
  48. package/dist/services/zenodo/identifiers.js +1 -1
  49. package/dist/services/zenodo/identifiers.js.map +1 -1
  50. package/dist/services/zenodo/normalize.d.ts.map +1 -1
  51. package/dist/services/zenodo/normalize.js +5 -2
  52. package/dist/services/zenodo/normalize.js.map +1 -1
  53. package/dist/services/zenodo/query-builder.d.ts +84 -8
  54. package/dist/services/zenodo/query-builder.d.ts.map +1 -1
  55. package/dist/services/zenodo/query-builder.js +484 -21
  56. package/dist/services/zenodo/query-builder.js.map +1 -1
  57. package/dist/services/zenodo/text-preview.d.ts +1 -1
  58. package/dist/services/zenodo/text-preview.d.ts.map +1 -1
  59. package/dist/services/zenodo/text-preview.js +38 -38
  60. package/dist/services/zenodo/text-preview.js.map +1 -1
  61. package/package.json +14 -12
  62. package/server.json +16 -24
@@ -9,8 +9,11 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
9
9
  import { parseRecordRef } from '../../../services/zenodo/identifiers.js';
10
10
  import { isZip, previewMode } from '../../../services/zenodo/text-preview.js';
11
11
  import { getZenodoService } from '../../../services/zenodo/zenodo-service.js';
12
+ import { applyCap } from '../paging.js';
12
13
  import { inline } from '../render.js';
13
14
  import { blankToUndefined } from '../schema-helpers.js';
15
+ /** Entries per page: a larger `limit` is served at this many. */
16
+ const LIMIT_CAP = 200;
14
17
  /** True when zenodo_read_file reads the file rather than refusing it unread. */
15
18
  const readsAsText = (key, mimetype) => previewMode(key, mimetype) !== 'binary';
16
19
  const PREVIEWABLE_DESCRIPTION = 'True when zenodo_read_file reads this as text: a text MIME type or extension, or an extensionless application/octet-stream file (LICENSE, Makefile) whose content is checked on read and returned only if it is UTF-8 text.';
@@ -38,7 +41,13 @@ export const listFiles = tool('zenodo_list_files', {
38
41
  .preprocess(blankToUndefined, z.string().max(200).optional())
39
42
  .describe('Case-insensitive substring filter on file keys (manifest) or member paths (archive), applied before paging.'),
40
43
  offset: z.number().int().min(0).default(0).describe('Entries to skip before this page.'),
41
- limit: z.number().int().min(1).max(200).default(50).describe('Entries per page (1–200).'),
44
+ limit: z
45
+ .number()
46
+ .int()
47
+ .min(1)
48
+ .max(10_000)
49
+ .default(50)
50
+ .describe('Entries per page, at most 200 per call; larger values return 200.'),
42
51
  }),
43
52
  output: z.object({
44
53
  recid: z
@@ -58,7 +67,7 @@ export const listFiles = tool('zenodo_list_files', {
58
67
  files_enabled: z.boolean().describe('False for a metadata-only deposit.'),
59
68
  key_contains: z.string().optional().describe('The key filter applied, when set.'),
60
69
  offset: z.number().describe('Entries skipped before this page.'),
61
- limit: z.number().describe('Page size applied.'),
70
+ limit: z.number().describe('Page size applied: limit, or 200 when limit asked for more.'),
62
71
  matched: z.number().describe('Entries matching the filter, before paging.'),
63
72
  has_more: z.boolean().describe('True when more matching entries follow this page.'),
64
73
  next_offset: z.number().optional().describe('Offset of the next page, when has_more.'),
@@ -122,12 +131,12 @@ export const listFiles = tool('zenodo_list_files', {
122
131
  enrichment: {
123
132
  truncated: z.boolean().describe('True when more matching entries follow this page.'),
124
133
  shown: z.number().describe('Entries returned on this page.'),
125
- cap: z.number().describe('Page size applied.'),
134
+ cap: z.number().describe('Page size applied (at most 200).'),
126
135
  totalCount: z.number().describe('Entries matching the filter, before paging.'),
127
136
  notice: z
128
137
  .string()
129
138
  .optional()
130
- .describe('File access notes, empty-filter guidance, listing caps, or paging guidance.'),
139
+ .describe('File access notes, empty-filter guidance, listing caps, the 200-per-call limit cap, or paging guidance.'),
131
140
  },
132
141
  errors: [
133
142
  {
@@ -184,29 +193,30 @@ export const listFiles = tool('zenodo_list_files', {
184
193
  },
185
194
  ],
186
195
  async handler(input, ctx) {
187
- ctx.enrich({ truncated: false, shown: 0, cap: input.limit, totalCount: 0 });
196
+ const { applied: limit, capNote } = applyCap('limit', input.limit, LIMIT_CAP);
197
+ ctx.enrich({ truncated: false, shown: 0, cap: limit, totalCount: 0 });
188
198
  const ref = parseRecordRef(input.id);
189
199
  if (ref.kind === 'invalid') {
190
- throw ctx.fail('invalid_identifier', ref.message, ctx.recoveryFor('invalid_identifier'));
200
+ throw ctx.fail('invalid_identifier', ref.message);
191
201
  }
192
202
  const service = getZenodoService();
193
203
  let record;
194
204
  if (ref.kind === 'external_doi') {
195
205
  const resolution = await service.resolveDoi(ref.doi, ref.strippedDoi, ctx);
196
206
  if (resolution.status === 'not_on_zenodo') {
197
- throw ctx.fail('record_not_found', `DOI ${ref.strippedDoi ?? ref.doi} is not registered to a Zenodo record.`, ctx.recoveryFor('record_not_found'));
207
+ throw ctx.fail('record_not_found', `DOI ${ref.strippedDoi ?? ref.doi} is not registered to a Zenodo record.`);
198
208
  }
199
209
  record = resolution.record;
200
210
  }
201
211
  else {
202
212
  const lookup = await service.getRecord(ref.recid, ctx);
203
213
  if (lookup.status === 'deleted') {
204
- throw ctx.fail('record_deleted', `Record ${ref.recid} was deleted from Zenodo; only its tombstone remains.`, ctx.recoveryFor('record_deleted'));
214
+ throw ctx.fail('record_deleted', `Record ${ref.recid} was deleted from Zenodo; only its tombstone remains.`);
205
215
  }
206
216
  if (lookup.status !== 'found') {
207
217
  throw ctx.fail('record_not_found', lookup.status === 'restricted'
208
218
  ? `Record ${ref.recid} exists but its metadata is restricted and cannot be read anonymously.`
209
- : `No Zenodo record has id ${ref.recid}.`, ctx.recoveryFor('record_not_found'));
219
+ : `No Zenodo record has id ${ref.recid}.`);
210
220
  }
211
221
  record = lookup.record;
212
222
  }
@@ -221,7 +231,7 @@ export const listFiles = tool('zenodo_list_files', {
221
231
  files_enabled: files.enabled,
222
232
  ...(input.key_contains ? { key_contains: input.key_contains } : {}),
223
233
  offset: input.offset,
224
- limit: input.limit,
234
+ limit,
225
235
  };
226
236
  const needle = input.key_contains?.toLowerCase();
227
237
  if (files.enabled && access.files === 'restricted') {
@@ -245,15 +255,11 @@ export const listFiles = tool('zenodo_list_files', {
245
255
  : `No ${noun} contain "${filter}"; call zenodo_list_files again without key_contains.`);
246
256
  }
247
257
  else if (page.matched > 0 && input.offset >= page.matched) {
248
- notice.push(`Offset ${input.offset} is past the last of ${page.matched} ${noun}; call again with a lower offset.`);
258
+ notice.push(`Offset ${input.offset} is past the last of ${page.matched.toLocaleString('en-US')} ${noun}; call again with a lower offset.`);
249
259
  }
250
260
  if (page.hasMore) {
251
- notice.push(`Showing ${page.slice.length} of ${page.matched}; call again with offset ${page.nextOffset}.`);
252
- ctx.enrich.truncated({
253
- shown: page.slice.length,
254
- cap: input.limit,
255
- guidance: notice.join(' '),
256
- });
261
+ notice.push(`Showing ${page.slice.length} of ${page.matched.toLocaleString('en-US')}${capNote ? ` (${capNote})` : ''}; call again with offset ${page.nextOffset}.`);
262
+ ctx.enrich.truncated({ shown: page.slice.length, cap: limit, guidance: notice.join(' ') });
257
263
  }
258
264
  else if (notice.length) {
259
265
  ctx.enrich.notice(notice.join(' '));
@@ -270,7 +276,7 @@ export const listFiles = tool('zenodo_list_files', {
270
276
  const matching = needle
271
277
  ? files.entries.filter((e) => e.key.toLowerCase().includes(needle))
272
278
  : files.entries;
273
- const page = pageOf(matching, input.offset, input.limit);
279
+ const page = pageOf(matching, input.offset, limit);
274
280
  const paging = finish(page, 'files');
275
281
  return {
276
282
  ...common,
@@ -288,14 +294,14 @@ export const listFiles = tool('zenodo_list_files', {
288
294
  if (!entry) {
289
295
  throw ctx.fail('file_not_found', files.enabled
290
296
  ? `Record ${record.recid} has no file with key "${inline(archiveKey)}".`
291
- : `Record ${record.recid} is a metadata-only deposit with no files.`, ctx.recoveryFor('file_not_found'));
297
+ : `Record ${record.recid} is a metadata-only deposit with no files.`);
292
298
  }
293
299
  if (!isZip(entry.key, entry.mimetype)) {
294
- throw ctx.fail('not_an_archive', `"${inline(archiveKey)}" is not a .zip file${entry.mimetype ? ` (${entry.mimetype})` : ''}; only ZIP archives can be listed.`, ctx.recoveryFor('not_an_archive'));
300
+ throw ctx.fail('not_an_archive', `"${inline(archiveKey)}" is not a .zip file${entry.mimetype ? ` (${entry.mimetype})` : ''}; only ZIP archives can be listed.`);
295
301
  }
296
302
  const container = await service.getContainer(record.recid, entry.key, ctx);
297
303
  if (container.status === 'not_found') {
298
- throw ctx.fail('file_not_found', `Zenodo has no member listing for "${inline(archiveKey)}" in record ${record.recid}.`, ctx.recoveryFor('file_not_found'));
304
+ throw ctx.fail('file_not_found', `Zenodo has no member listing for "${inline(archiveKey)}" in record ${record.recid}.`);
299
305
  }
300
306
  const { listing } = container;
301
307
  if (listing.upstream_truncated) {
@@ -304,7 +310,7 @@ export const listFiles = tool('zenodo_list_files', {
304
310
  const matching = needle
305
311
  ? listing.members.filter((m) => m.path.toLowerCase().includes(needle))
306
312
  : listing.members;
307
- const page = pageOf(matching, input.offset, input.limit);
313
+ const page = pageOf(matching, input.offset, limit);
308
314
  const paging = finish(page, 'members', listing.upstream_truncated);
309
315
  return {
310
316
  ...common,
@@ -1 +1 @@
1
- {"version":3,"file":"list-files.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/list-files.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-files.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/list-files.tool.ts"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ export declare const listVersions: import("@cyanheads/mcp-ts-core").ToolDefiniti
60
60
  }, {
61
61
  readonly reason: "result_window_exceeded";
62
62
  readonly code: JsonRpcErrorCode.ValidationError;
63
- readonly when: "page × size exceeds 10,000";
63
+ readonly when: "The page starts past the first 10,000 versions: (page − 1) × size is 10,000 or more, counting a size above 25 as 25";
64
64
  readonly recovery: "Zenodo pages only the first 10,000 versions of a series, and no series comes near that; call zenodo_list_versions with page 1 (total_versions and has_more show how far the series goes).";
65
65
  }, {
66
66
  readonly reason: "record_unavailable";
@@ -1 +1 @@
1
- {"version":3,"file":"list-versions.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/list-versions.tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAUjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuSvB,CAAC"}
1
+ {"version":3,"file":"list-versions.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/list-versions.tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8SvB,CAAC"}
@@ -8,10 +8,9 @@ import { tool, z } from '@cyanheads/mcp-ts-core';
8
8
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
9
9
  import { parseRecordRef } from '../../../services/zenodo/identifiers.js';
10
10
  import { getZenodoService } from '../../../services/zenodo/zenodo-service.js';
11
+ import { applyCap, hasMorePages, PAGE_SIZE_CAP, windowRejection } from '../paging.js';
11
12
  import { notOnZenodoMiss, recordMiss, TombstoneSchema } from '../record-miss.js';
12
13
  import { inline, quoteBlock } from '../render.js';
13
- /** Zenodo answers HTTP 400 when page × size passes this window. */
14
- const RESULT_WINDOW = 10_000;
15
14
  export const listVersions = tool('zenodo_list_versions', {
16
15
  title: 'List Zenodo record versions',
17
16
  description: "List every version of a Zenodo deposit's version series, newest first, with each version's record id, DOI, version label, publication date, file totals, and usage counts. Accepts any identifier zenodo_get_record accepts; a concept DOI and any single version's DOI list the same series. Use it to find the version a paper cited or the current release. A miss (an unknown id, a deleted record with its removal tombstone, restricted metadata, or a DOI not registered on Zenodo) returns found: false with guidance instead of an error.",
@@ -28,8 +27,14 @@ export const listVersions = tool('zenodo_list_versions', {
28
27
  .int()
29
28
  .min(1)
30
29
  .default(1)
31
- .describe('Result page, starting at 1. page × size may not exceed 10,000.'),
32
- size: z.number().int().min(1).max(25).default(25).describe('Versions per page (1–25).'),
30
+ .describe('Result page, starting at 1. Zenodo pages through only the first 10,000 versions, so the last reachable page is 10,000 ÷ size rounded up (400 at size 25).'),
31
+ size: z
32
+ .number()
33
+ .int()
34
+ .min(1)
35
+ .max(10_000)
36
+ .default(25)
37
+ .describe('Versions per page, at most 25 per call; larger values return 25.'),
33
38
  }),
34
39
  output: z.object({
35
40
  found: z.boolean().describe('True when the version series resolved.'),
@@ -59,7 +64,7 @@ export const listVersions = tool('zenodo_list_versions', {
59
64
  .optional()
60
65
  .describe('Record id of the newest version. Present when found, unless Zenodo cannot name it for a page past the end.'),
61
66
  page: z.number().describe('Page returned.'),
62
- size: z.number().describe('Page size applied.'),
67
+ size: z.number().describe('Page size applied: size, or 25 when size asked for more.'),
63
68
  has_more: z.boolean().describe('True when another page of versions follows.'),
64
69
  next_page: z.number().optional().describe('The next page number, when has_more.'),
65
70
  versions: z
@@ -107,9 +112,12 @@ export const listVersions = tool('zenodo_list_versions', {
107
112
  enrichment: {
108
113
  truncated: z.boolean().describe('True when more versions follow this page.'),
109
114
  shown: z.number().describe('Versions returned on this page.'),
110
- cap: z.number().describe('Page size applied.'),
115
+ cap: z.number().describe('Page size applied (at most 25).'),
111
116
  totalCount: z.number().describe('Number of versions in the series.'),
112
- notice: z.string().optional().describe('Guidance on paging or a page past the end.'),
117
+ notice: z
118
+ .string()
119
+ .optional()
120
+ .describe('Guidance on paging, the 25-per-call size cap, or a page past the end.'),
113
121
  },
114
122
  errors: [
115
123
  {
@@ -121,7 +129,7 @@ export const listVersions = tool('zenodo_list_versions', {
121
129
  {
122
130
  reason: 'result_window_exceeded',
123
131
  code: JsonRpcErrorCode.ValidationError,
124
- when: 'page × size exceeds 10,000',
132
+ when: 'The page starts past the first 10,000 versions: (page − 1) × size is 10,000 or more, counting a size above 25 as 25',
125
133
  recovery: 'Zenodo pages only the first 10,000 versions of a series, and no series comes near that; call zenodo_list_versions with page 1 (total_versions and has_more show how far the series goes).',
126
134
  },
127
135
  {
@@ -149,17 +157,18 @@ export const listVersions = tool('zenodo_list_versions', {
149
157
  },
150
158
  ],
151
159
  async handler(input, ctx) {
152
- ctx.enrich({ truncated: false, shown: 0, cap: input.size, totalCount: 0 });
153
- if (input.page * input.size > RESULT_WINDOW) {
154
- throw ctx.fail('result_window_exceeded', `page ${input.page} × size ${input.size} is past the first ${RESULT_WINDOW.toLocaleString('en-US')} versions Zenodo pages through.`, ctx.recoveryFor('result_window_exceeded'));
155
- }
160
+ const { applied: size, capNote } = applyCap('size', input.size, PAGE_SIZE_CAP);
161
+ ctx.enrich({ truncated: false, shown: 0, cap: size, totalCount: 0 });
162
+ const pastWindow = windowRejection(input.page, size, 'versions', capNote);
163
+ if (pastWindow)
164
+ throw ctx.fail('result_window_exceeded', pastWindow);
156
165
  const ref = parseRecordRef(input.id);
157
166
  if (ref.kind === 'invalid') {
158
- throw ctx.fail('invalid_identifier', ref.message, ctx.recoveryFor('invalid_identifier'));
167
+ throw ctx.fail('invalid_identifier', ref.message);
159
168
  }
160
169
  const service = getZenodoService();
161
170
  const inputKind = ref.inputKind;
162
- const miss = { found: false, input_kind: inputKind, page: input.page, size: input.size };
171
+ const miss = { found: false, input_kind: inputKind, page: input.page, size };
163
172
  let recid;
164
173
  if (ref.kind === 'external_doi') {
165
174
  const resolution = await service.resolveDoi(ref.doi, ref.strippedDoi, ctx);
@@ -176,7 +185,7 @@ export const listVersions = tool('zenodo_list_versions', {
176
185
  else {
177
186
  recid = ref.recid;
178
187
  }
179
- let lookup = await service.listVersions(recid, input.page, input.size, ctx);
188
+ let lookup = await service.listVersions(recid, input.page, size, ctx);
180
189
  if (lookup.status === 'not_found' || lookup.total === 0) {
181
190
  // A concept id 404s on /versions and a deleted recid answers 200 with no hits; the record GET classifies every miss.
182
191
  const record = await service.getRecord(recid, ctx);
@@ -185,7 +194,7 @@ export const listVersions = tool('zenodo_list_versions', {
185
194
  }
186
195
  if (record.record.recid !== recid) {
187
196
  recid = record.record.recid;
188
- lookup = await service.listVersions(recid, input.page, input.size, ctx);
197
+ lookup = await service.listVersions(recid, input.page, size, ctx);
189
198
  }
190
199
  if (lookup.status === 'not_found')
191
200
  lookup = { status: 'ok', total: 0, hits: [] };
@@ -202,18 +211,18 @@ export const listVersions = tool('zenodo_list_versions', {
202
211
  const { hits, total } = lookup;
203
212
  const latestRecid = hits.find((h) => h.is_latest)?.recid ??
204
213
  (input.page === 1 ? hits[0]?.recid : await service.latestRecid(recid, ctx));
205
- const hasMore = input.page * input.size < total;
214
+ const hasMore = hasMorePages(input.page, size, total);
206
215
  ctx.enrich({ shown: hits.length });
207
216
  ctx.enrich.total(total);
208
217
  if (hasMore) {
209
218
  ctx.enrich.truncated({
210
219
  shown: hits.length,
211
- cap: input.size,
212
- guidance: `Showing ${hits.length} of ${total} versions; call again with page ${input.page + 1}.`,
220
+ cap: size,
221
+ guidance: `Showing ${hits.length} of ${total.toLocaleString('en-US')} versions${capNote ? ` (${capNote})` : ''}; call again with page ${input.page + 1}.`,
213
222
  });
214
223
  }
215
224
  else if (total > 0 && hits.length === 0) {
216
- ctx.enrich.notice(`Page ${input.page} is past the last page (${Math.max(1, Math.ceil(total / input.size))}).`);
225
+ ctx.enrich.notice(`Page ${input.page} is past the last page (${Math.max(1, Math.ceil(total / size))}).`);
217
226
  }
218
227
  return {
219
228
  found: true,
@@ -223,7 +232,7 @@ export const listVersions = tool('zenodo_list_versions', {
223
232
  total_versions: total,
224
233
  ...(latestRecid ? { latest_recid: latestRecid } : {}),
225
234
  page: input.page,
226
- size: input.size,
235
+ size,
227
236
  has_more: hasMore,
228
237
  ...(hasMore ? { next_page: input.page + 1 } : {}),
229
238
  versions: hits,
@@ -1 +1 @@
1
- {"version":3,"file":"list-versions.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/list-versions.tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAElD,mEAAmE;AACnE,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,EAAE;IACvD,KAAK,EAAE,6BAA6B;IACpC,WAAW,EACT,ohBAAohB;IACthB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,CACP,6OAA6O,CAC9O;QACH,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,CAAC,CAAC;aACV,QAAQ,CAAC,gEAAgE,CAAC;QAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KACxF,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACrE,UAAU,EAAE,CAAC;aACV,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;aACxD,QAAQ,CACP,sJAAsJ,CACvJ;QACH,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;aAC7D,QAAQ,EAAE;aACV,QAAQ,CAAC,+CAA+C,CAAC;QAC5D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QACpF,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC5C,uDAAuD,CACxD;QACD,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,6FAA6F,CAC9F;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,0FAA0F,CAC3F;QACH,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,uDAAuD,CAAC;QACpE,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4GAA4G,CAC7G;QACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC7E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACjF,QAAQ,EAAE,CAAC;aACR,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YACrF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACvF,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,iEAAiE,CAAC;YAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACpD,gBAAgB,EAAE,CAAC;iBAChB,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6DAA6D,CAAC;YAC1E,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,kFAAkF,CACnF;YACH,SAAS,EAAE,CAAC;iBACT,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,mEAAmE,CAAC;YAChF,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,iEAAiE,CAAC;YAC9E,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0EAA0E,CAAC;YACvF,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,yDAAyD,CAAC;YACtE,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6DAA6D,CAAC;SAC3E,CAAC;aACD,QAAQ,CAAC,cAAc,CAAC,CAC5B;aACA,QAAQ,CAAC,4DAA4D,CAAC;KAC1E,CAAC;IACF,UAAU,EAAE;QACV,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAC5E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC7D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;KACrF;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,yFAAyF;YAC/F,QAAQ,EACN,4JAA4J;SAC/J;QACD;YACE,MAAM,EAAE,wBAAwB;YAChC,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,4BAA4B;YAClC,QAAQ,EACN,2LAA2L;SAC9L;QACD;YACE,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,0QAA0Q;YAChR,QAAQ,EAAE,SAAS;YACnB,QAAQ,EACN,0QAA0Q;SAC7Q;QACD;YACE,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,gBAAgB,CAAC,OAAO;YAC9B,IAAI,EAAE,mEAAmE;YACzE,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EACN,kGAAkG;SACrG;QACD;YACE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,gBAAgB,CAAC,WAAW;YAClC,IAAI,EAAE,yGAAyG;YAC/G,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,SAAS;YACnB,QAAQ,EACN,kHAAkH;SACrH;KACF;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QAE3E,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC;YAC5C,MAAM,GAAG,CAAC,IAAI,CACZ,wBAAwB,EACxB,QAAQ,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,IAAI,sBAAsB,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,iCAAiC,EACnI,GAAG,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAC1C,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAEzF,IAAI,KAAa,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC3E,IAAI,UAAU,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;gBAC1C,OAAO;oBACL,GAAG,IAAI;oBACP,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,CAAC;oBAC9C,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,EAAE;iBACb,CAAC;YACJ,CAAC;YACD,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,MAAM,GAAmB,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5F,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACxD,qHAAqH;YACrH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9B,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAClF,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAClC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC5B,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;gBAAE,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACjF,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa;oBACtD,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBACnD,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW;oBAClD,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;aAChD,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAC/B,MAAM,WAAW,GACf,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK;YACpC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QAEhD,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACnC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,GAAG,EAAE,KAAK,CAAC,IAAI;gBACf,QAAQ,EAAE,WAAW,IAAI,CAAC,MAAM,OAAO,KAAK,mCAAmC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG;aACjG,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,MAAM,CACf,QAAQ,KAAK,CAAC,IAAI,2BAA2B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAC5F,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,SAAS;YACrB,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,cAAc,EAAE,KAAK;YACrB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,OAAO;YACjB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAa,CAAC,cAAc,MAAM,CAAC,KAAK,sBAAsB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9F,IAAI,MAAM,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5E,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QAC3B,IAAI,CAAC,EAAE,CAAC;YACN,KAAK,CAAC,IAAI,CACR,0BAA0B,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,uBAAuB,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CACpJ,CAAC;YACF,IAAI,CAAC,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,CAAC,aAAa;gBACjB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,iCAAiC,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,MAAM,GAAG;YACb,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,uBAAuB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS;YAChF,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YACjF,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS;YAC1F,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,sBAAsB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS;SAC9E,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CACR,aAAa,MAAM,CAAC,IAAI,gBAAgB,MAAM,CAAC,IAAI,oBAAoB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACzK,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CACR,EAAE,EACF,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EACrG,cAAc,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAC/B;gBACE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC/C,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC/E,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC3D,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;aACrE;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,KAAK,CAAC,EACd,cAAc,CAAC,CAAC,UAAU,IAAI,eAAe,KAAK,CAAC,CAAC,WAAW,IAAI,eAAe,wBAAwB,CAAC,CAAC,KAAK,IAAI,eAAe,qBAAqB,CAAC,CAAC,SAAS,IAAI,eAAe,EAAE,CAC1L,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"list-versions.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/list-versions.tool.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export declare const lookupVocabulary: import("@cyanheads/mcp-ts-core").ToolDefi
28
28
  }>;
29
29
  query: z.ZodOptional<z.ZodString>;
30
30
  total: z.ZodNumber;
31
+ reachable: z.ZodNumber;
31
32
  page: z.ZodNumber;
32
33
  size: z.ZodNumber;
33
34
  has_more: z.ZodBoolean;
@@ -80,7 +81,7 @@ export declare const lookupVocabulary: import("@cyanheads/mcp-ts-core").ToolDefi
80
81
  }, {
81
82
  readonly reason: "result_window_exceeded";
82
83
  readonly code: JsonRpcErrorCode.ValidationError;
83
- readonly when: "page × size exceeds 10,000";
84
+ readonly when: "The page starts past the first 10,000 entries: (page − 1) × size is 10,000 or more, counting a size above 25 as 25";
84
85
  readonly recovery: "Narrow the query and call zenodo_lookup_vocabulary again instead of paging past 10,000 entries.";
85
86
  }, {
86
87
  readonly reason: "rate_limited";
@@ -1 +1 @@
1
- {"version":3,"file":"lookup-vocabulary.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/lookup-vocabulary.tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAmJjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsO3B,CAAC"}
1
+ {"version":3,"file":"lookup-vocabulary.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/lookup-vocabulary.tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA0JjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwP3B,CAAC"}
@@ -9,10 +9,10 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
9
9
  import { parseFunderRef } from '../../../services/zenodo/identifiers.js';
10
10
  import { filterResourceTypes } from '../../../services/zenodo/resource-types.js';
11
11
  import { getZenodoService } from '../../../services/zenodo/zenodo-service.js';
12
+ import { applyCap, hasMorePages, PAGE_SIZE_CAP, RESULT_WINDOW, reachableHits, windowRejection, } from '../paging.js';
12
13
  import { hasLineBreak, inline, quoteBlock } from '../render.js';
13
14
  import { blankToUndefined, enumPreprocess } from '../schema-helpers.js';
14
15
  const VOCABULARIES = ['communities', 'funders', 'awards', 'licenses', 'resource_types'];
15
- const RESULT_WINDOW = 10_000;
16
16
  /** What to try after a query matched nothing, per vocabulary. */
17
17
  const ZERO_HIT_ADVICE = {
18
18
  communities: "try a shorter name, a keyword from the community's title, or the project's acronym",
@@ -153,28 +153,40 @@ export const lookupVocabulary = tool('zenodo_lookup_vocabulary', {
153
153
  funder: z
154
154
  .preprocess(blankToUndefined, z.string().max(200).optional())
155
155
  .describe('awards only: scope grants to one funder, given as a ROR id (00k4n6c32), a ROR URL, or a Crossref Funder DOI (10.13039/100000002). Resolve a funder name to its ROR id with vocabulary funders first.'),
156
- page: z.number().int().min(1).default(1).describe('Result page, starting at 1.'),
157
- size: z.number().int().min(1).max(25).default(10).describe('Entries per page (1–25).'),
156
+ page: z
157
+ .number()
158
+ .int()
159
+ .min(1)
160
+ .default(1)
161
+ .describe('Result page, starting at 1. Only the first 10,000 entries of a list are reachable, so the last reachable page is 10,000 ÷ size rounded up (400 at size 25).'),
162
+ size: z
163
+ .number()
164
+ .int()
165
+ .min(1)
166
+ .max(10_000)
167
+ .default(10)
168
+ .describe('Entries per page, at most 25 per call; larger values return 25.'),
158
169
  }),
159
170
  output: z.object({
160
171
  vocabulary: z.enum(VOCABULARIES).describe('The vocabulary searched.'),
161
172
  query: z.string().optional().describe('The query as applied; absent when browsing.'),
162
173
  total: z.number().describe('Total entries matching the query.'),
174
+ reachable: z.number().describe('Entries reachable by paging: min(total, 10,000).'),
163
175
  page: z.number().describe('Page returned.'),
164
- size: z.number().describe('Page size applied.'),
165
- has_more: z.boolean().describe('True when more pages follow this one.'),
176
+ size: z.number().describe('Page size applied: size, or 25 when size asked for more.'),
177
+ has_more: z.boolean().describe('True when another page of reachable entries follows.'),
166
178
  next_page: z.number().optional().describe('The next page number, when has_more.'),
167
179
  entries: z.array(EntrySchema).describe('Matching entries for this page.'),
168
180
  }),
169
181
  enrichment: {
170
- truncated: z.boolean().describe('True when more entries exist beyond this page.'),
182
+ truncated: z.boolean().describe('True when more reachable entries follow this page.'),
171
183
  shown: z.number().describe('Entries returned on this page.'),
172
- cap: z.number().describe('Page size applied.'),
184
+ cap: z.number().describe('Page size applied (at most 25).'),
173
185
  totalCount: z.number().describe('Total entries matching the query.'),
174
186
  notice: z
175
187
  .string()
176
188
  .optional()
177
- .describe('Guidance on empty results, ambiguous funders, or further pages.'),
189
+ .describe('Guidance on empty results, ambiguous funders, the 10,000-entry window, the 25-per-call size cap, or further pages.'),
178
190
  },
179
191
  errors: [
180
192
  {
@@ -192,7 +204,7 @@ export const lookupVocabulary = tool('zenodo_lookup_vocabulary', {
192
204
  {
193
205
  reason: 'result_window_exceeded',
194
206
  code: JsonRpcErrorCode.ValidationError,
195
- when: 'page × size exceeds 10,000',
207
+ when: 'The page starts past the first 10,000 entries: (page − 1) × size is 10,000 or more, counting a size above 25 as 25',
196
208
  recovery: 'Narrow the query and call zenodo_lookup_vocabulary again instead of paging past 10,000 entries.',
197
209
  },
198
210
  {
@@ -205,19 +217,20 @@ export const lookupVocabulary = tool('zenodo_lookup_vocabulary', {
205
217
  },
206
218
  ],
207
219
  async handler(input, ctx) {
208
- ctx.enrich({ truncated: false, shown: 0, cap: input.size, totalCount: 0 });
220
+ const { applied: size, capNote } = applyCap('size', input.size, PAGE_SIZE_CAP);
221
+ ctx.enrich({ truncated: false, shown: 0, cap: size, totalCount: 0 });
209
222
  if (input.funder && input.vocabulary !== 'awards') {
210
- throw ctx.fail('funder_only_for_awards', `funder applies only to vocabulary awards, not ${input.vocabulary}.`, ctx.recoveryFor('funder_only_for_awards'));
211
- }
212
- if (input.page * input.size > RESULT_WINDOW) {
213
- throw ctx.fail('result_window_exceeded', `page ${input.page} × size ${input.size} is past the first ${RESULT_WINDOW.toLocaleString('en-US')} entries.`, ctx.recoveryFor('result_window_exceeded'));
223
+ throw ctx.fail('funder_only_for_awards', `funder applies only to vocabulary awards, not ${input.vocabulary}.`);
214
224
  }
225
+ const pastWindow = windowRejection(input.page, size, 'entries', capNote);
226
+ if (pastWindow)
227
+ throw ctx.fail('result_window_exceeded', pastWindow);
215
228
  let total;
216
229
  let entries;
217
230
  if (input.vocabulary === 'resource_types') {
218
231
  const matched = filterResourceTypes(input.query);
219
232
  total = matched.length;
220
- entries = matched.slice((input.page - 1) * input.size, input.page * input.size).map((t) => ({
233
+ entries = matched.slice((input.page - 1) * size, input.page * size).map((t) => ({
221
234
  filter_param: 'resource_type',
222
235
  filter_value: t.id,
223
236
  label: t.label,
@@ -232,16 +245,16 @@ export const lookupVocabulary = tool('zenodo_lookup_vocabulary', {
232
245
  const ref = parseFunderRef(input.funder);
233
246
  const funder = ref ? await service.resolveFunder(ref, ctx) : undefined;
234
247
  if (!funder) {
235
- throw ctx.fail('unknown_funder', `"${inline(input.funder)}" is not a known ROR id and no funder carries that Crossref Funder DOI.`, ctx.recoveryFor('unknown_funder'));
248
+ throw ctx.fail('unknown_funder', `"${inline(input.funder)}" is not a known ROR id and no funder carries that Crossref Funder DOI.`);
236
249
  }
237
250
  funderRor = funder.ror_id;
238
251
  }
239
- const page = await service.searchVocabulary(input.vocabulary, { query: input.query, funderRor, page: input.page, size: input.size }, ctx);
252
+ const page = await service.searchVocabulary(input.vocabulary, { query: input.query, funderRor, page: input.page, size }, ctx);
240
253
  total = page.total;
241
254
  entries = toEntries(page);
242
255
  }
243
- const reachable = Math.min(total, RESULT_WINDOW);
244
- const hasMore = input.page * input.size < reachable;
256
+ const reachable = reachableHits(total);
257
+ const hasMore = hasMorePages(input.page, size, total);
245
258
  ctx.enrich({ shown: entries.length });
246
259
  ctx.enrich.total(total);
247
260
  const notice = [];
@@ -251,15 +264,18 @@ export const lookupVocabulary = tool('zenodo_lookup_vocabulary', {
251
264
  : `No ${input.vocabulary} entries were returned.`);
252
265
  }
253
266
  else if (entries.length === 0) {
254
- const last = Math.max(1, Math.ceil(reachable / input.size));
267
+ const last = Math.max(1, Math.ceil(reachable / size));
255
268
  notice.push(`Page ${input.page} is past the last page (${last}); call again with page ${last} or lower.`);
256
269
  }
257
270
  if (input.vocabulary === 'funders' && entries.length > 1) {
258
271
  notice.push('Several funders share names across countries; pick by country and ROR id.');
259
272
  }
273
+ if (total > RESULT_WINDOW) {
274
+ notice.push(`Only the first 10,000 of ${total.toLocaleString('en-US')} ${input.vocabulary} are reachable; narrow the list with query${input.vocabulary === 'awards' ? ' or funder' : ''}.`);
275
+ }
260
276
  if (hasMore) {
261
- notice.push(`Showing ${entries.length} of ${total}; call again with page ${input.page + 1}.`);
262
- ctx.enrich.truncated({ shown: entries.length, cap: input.size, guidance: notice.join(' ') });
277
+ notice.push(`Showing ${entries.length} of ${reachable.toLocaleString('en-US')}${capNote ? ` (${capNote})` : ''}; call again with page ${input.page + 1}.`);
278
+ ctx.enrich.truncated({ shown: entries.length, cap: size, guidance: notice.join(' ') });
263
279
  }
264
280
  else if (notice.length) {
265
281
  ctx.enrich.notice(notice.join(' '));
@@ -268,8 +284,9 @@ export const lookupVocabulary = tool('zenodo_lookup_vocabulary', {
268
284
  vocabulary: input.vocabulary,
269
285
  ...(input.query ? { query: input.query } : {}),
270
286
  total,
287
+ reachable,
271
288
  page: input.page,
272
- size: input.size,
289
+ size,
273
290
  has_more: hasMore,
274
291
  ...(hasMore ? { next_page: input.page + 1 } : {}),
275
292
  entries,
@@ -278,7 +295,7 @@ export const lookupVocabulary = tool('zenodo_lookup_vocabulary', {
278
295
  format: (result) => {
279
296
  const lines = [
280
297
  `## Zenodo ${result.vocabulary}${result.query ? ` matching "${inline(result.query)}"` : ''}`,
281
- `**Total:** ${result.total} | **Page:** ${result.page} | **Size:** ${result.size} | **Has more:** ${result.has_more}${result.next_page !== undefined ? ` | **Next page:** ${result.next_page}` : ''}`,
298
+ `**Total:** ${result.total} (${result.reachable} reachable) | **Page:** ${result.page} | **Size:** ${result.size} | **Has more:** ${result.has_more}${result.next_page !== undefined ? ` | **Next page:** ${result.next_page}` : ''}`,
282
299
  ];
283
300
  for (const e of result.entries) {
284
301
  lines.push('', `### ${inline(e.label)}`, `- **Filter:** ${e.filter_param} = \`${inline(e.filter_value)}\``);