@cyanheads/zenodo-mcp-server 0.1.2 → 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 (56) hide show
  1. package/AGENTS.md +22 -15
  2. package/CLAUDE.md +22 -15
  3. package/Dockerfile +3 -3
  4. package/README.md +6 -4
  5. package/changelog/0.1.x/0.1.3.md +35 -0
  6. package/dist/mcp-server/tools/definitions/get-record.tool.d.ts +106 -2
  7. package/dist/mcp-server/tools/definitions/get-record.tool.d.ts.map +1 -1
  8. package/dist/mcp-server/tools/definitions/get-record.tool.js +452 -106
  9. package/dist/mcp-server/tools/definitions/get-record.tool.js.map +1 -1
  10. package/dist/mcp-server/tools/definitions/index.d.ts +283 -180
  11. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  12. package/dist/mcp-server/tools/definitions/list-files.tool.d.ts.map +1 -1
  13. package/dist/mcp-server/tools/definitions/list-files.tool.js +21 -15
  14. package/dist/mcp-server/tools/definitions/list-files.tool.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/list-versions.tool.d.ts +1 -1
  16. package/dist/mcp-server/tools/definitions/list-versions.tool.d.ts.map +1 -1
  17. package/dist/mcp-server/tools/definitions/list-versions.tool.js +29 -20
  18. package/dist/mcp-server/tools/definitions/list-versions.tool.js.map +1 -1
  19. package/dist/mcp-server/tools/definitions/lookup-vocabulary.tool.d.ts +2 -1
  20. package/dist/mcp-server/tools/definitions/lookup-vocabulary.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/definitions/lookup-vocabulary.tool.js +39 -22
  22. package/dist/mcp-server/tools/definitions/lookup-vocabulary.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/definitions/read-file.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/definitions/read-file.tool.js +16 -14
  25. package/dist/mcp-server/tools/definitions/read-file.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/definitions/search-records.tool.d.ts +3 -3
  27. package/dist/mcp-server/tools/definitions/search-records.tool.d.ts.map +1 -1
  28. package/dist/mcp-server/tools/definitions/search-records.tool.js +138 -29
  29. package/dist/mcp-server/tools/definitions/search-records.tool.js.map +1 -1
  30. package/dist/mcp-server/tools/paging.d.ts +42 -0
  31. package/dist/mcp-server/tools/paging.d.ts.map +1 -0
  32. package/dist/mcp-server/tools/paging.js +44 -0
  33. package/dist/mcp-server/tools/paging.js.map +1 -0
  34. package/dist/mcp-server/tools/record-miss.d.ts +5 -1
  35. package/dist/mcp-server/tools/record-miss.d.ts.map +1 -1
  36. package/dist/mcp-server/tools/record-miss.js +6 -2
  37. package/dist/mcp-server/tools/record-miss.js.map +1 -1
  38. package/dist/services/zenodo/html-to-text.d.ts +19 -8
  39. package/dist/services/zenodo/html-to-text.d.ts.map +1 -1
  40. package/dist/services/zenodo/html-to-text.js +175 -48
  41. package/dist/services/zenodo/html-to-text.js.map +1 -1
  42. package/dist/services/zenodo/http.js +1 -1
  43. package/dist/services/zenodo/http.js.map +1 -1
  44. package/dist/services/zenodo/normalize.d.ts.map +1 -1
  45. package/dist/services/zenodo/normalize.js +5 -2
  46. package/dist/services/zenodo/normalize.js.map +1 -1
  47. package/dist/services/zenodo/query-builder.d.ts +84 -8
  48. package/dist/services/zenodo/query-builder.d.ts.map +1 -1
  49. package/dist/services/zenodo/query-builder.js +484 -21
  50. package/dist/services/zenodo/query-builder.js.map +1 -1
  51. package/dist/services/zenodo/text-preview.d.ts +1 -1
  52. package/dist/services/zenodo/text-preview.d.ts.map +1 -1
  53. package/dist/services/zenodo/text-preview.js +38 -38
  54. package/dist/services/zenodo/text-preview.js.map +1 -1
  55. package/package.json +7 -7
  56. package/server.json +3 -3
@@ -10,24 +10,26 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
10
10
  import { downloadUrl, hasDotSegment, parseRecordRef, recordUrl, } from '../../../services/zenodo/identifiers.js';
11
11
  import { cutPreview, isZip, languageHint, looksLikeText, previewMode, } from '../../../services/zenodo/text-preview.js';
12
12
  import { getZenodoService } from '../../../services/zenodo/zenodo-service.js';
13
+ import { applyCap } from '../paging.js';
13
14
  import { fence, inline } from '../render.js';
14
15
  import { blankToUndefined } from '../schema-helpers.js';
15
16
  const STATUSES = ['text', 'not_text', 'restricted', 'empty'];
16
- /** The largest max_bytes a call accepts. */
17
+ /** Bytes one read covers: a larger max_bytes is served at this many. */
17
18
  const MAX_READ_BYTES = 65_536;
18
19
  /**
19
- * Guidance when a ZIP member read stops at max_bytes. A member cannot be continued
20
- * at an offset, so the next step depends on whether one larger read covers it.
20
+ * Guidance when a ZIP member read stops at the applied max_bytes. A member cannot
21
+ * be continued at an offset, so the next step depends on whether one larger read
22
+ * covers it.
21
23
  */
22
- function memberTruncationNotice(end, size, maxBytes) {
23
- const shown = `Showing bytes 0–${end} of ${size ?? 'an unknown total'}`;
24
+ function memberTruncationNotice(end, size, maxBytes, capNote) {
25
+ const shown = `Showing bytes 0–${end} of ${size?.toLocaleString('en-US') ?? 'an unknown total'}${capNote ? ` (${capNote})` : ''}`;
24
26
  if (size !== undefined && size <= MAX_READ_BYTES) {
25
27
  return `${shown}; call zenodo_read_file again with max_bytes ${size} to read the whole member.`;
26
28
  }
27
29
  if (size === undefined && maxBytes < MAX_READ_BYTES) {
28
30
  return `${shown}; call zenodo_read_file again with max_bytes ${MAX_READ_BYTES} to read more of this member, and download the archive from download_url if that still stops short.`;
29
31
  }
30
- return `${shown}; the member is larger than the ${MAX_READ_BYTES}-byte read cap, so download the archive from download_url for the rest${maxBytes < MAX_READ_BYTES ? ` (max_bytes ${MAX_READ_BYTES} shows more of its start)` : ''}.`;
32
+ return `${shown}; the member is larger than the ${MAX_READ_BYTES.toLocaleString('en-US')}-byte read cap, so download the archive from download_url for the rest${maxBytes < MAX_READ_BYTES ? ` (max_bytes ${MAX_READ_BYTES} shows more of its start)` : ''}.`;
31
33
  }
32
34
  export const readFile = tool('zenodo_read_file', {
33
35
  title: 'Read a Zenodo file excerpt',
@@ -58,9 +60,8 @@ export const readFile = tool('zenodo_read_file', {
58
60
  .number()
59
61
  .int()
60
62
  .min(256)
61
- .max(MAX_READ_BYTES)
62
63
  .default(16_384)
63
- .describe('Maximum bytes to read (256–65536).'),
64
+ .describe('Maximum bytes to read (256 or more), at most 65536 per call; larger values return 65536.'),
64
65
  }),
65
66
  output: z.object({
66
67
  recid: z.string().describe('Record id read from (the latest version for a concept id).'),
@@ -112,7 +113,7 @@ export const readFile = tool('zenodo_read_file', {
112
113
  notice: z
113
114
  .string()
114
115
  .optional()
115
- .describe('Why no text was returned, or how to read the rest of the file.'),
116
+ .describe('Why no text was returned, or how to read the rest of the file, naming the 65,536-byte cap when it held back bytes.'),
116
117
  },
117
118
  errors: [
118
119
  {
@@ -187,6 +188,7 @@ export const readFile = tool('zenodo_read_file', {
187
188
  },
188
189
  ],
189
190
  async handler(input, ctx) {
191
+ const { applied: maxBytes, capNote } = applyCap('max_bytes', input.max_bytes, MAX_READ_BYTES);
190
192
  const ref = parseRecordRef(input.id);
191
193
  if (ref.kind === 'invalid') {
192
194
  throw ctx.fail('invalid_identifier', ref.message);
@@ -276,7 +278,7 @@ export const readFile = tool('zenodo_read_file', {
276
278
  mode = previewMode(member, meta.mimetype);
277
279
  if (mode === 'binary')
278
280
  return notPreviewable();
279
- read = await service.readMember(recid, entry.key, member, input.max_bytes, ctx);
281
+ read = await service.readMember(recid, entry.key, member, maxBytes, ctx);
280
282
  if (read.status === 'not_found') {
281
283
  throw ctx.fail('member_not_found', `The .zip "${inline(input.key)}" in record ${recid} has no member "${displayName}".`);
282
284
  }
@@ -287,7 +289,7 @@ export const readFile = tool('zenodo_read_file', {
287
289
  ...(entry.size !== undefined ? { size: entry.size } : {}),
288
290
  };
289
291
  if (meta.size !== undefined && input.offset_bytes >= meta.size && meta.size > 0) {
290
- throw ctx.fail('offset_out_of_range', `offset_bytes ${input.offset_bytes} is at or past the end of ${displayName} (${meta.size} bytes).`);
292
+ throw ctx.fail('offset_out_of_range', `offset_bytes ${input.offset_bytes} is at or past the end of ${displayName} (${meta.size.toLocaleString('en-US')} bytes).`);
291
293
  }
292
294
  if (meta.size === 0) {
293
295
  if (input.offset_bytes > 0) {
@@ -298,7 +300,7 @@ export const readFile = tool('zenodo_read_file', {
298
300
  mode = previewMode(entry.key, meta.mimetype);
299
301
  if (mode === 'binary')
300
302
  return notPreviewable();
301
- read = await service.readContent(recid, entry.key, input.offset_bytes, input.max_bytes, ctx);
303
+ read = await service.readContent(recid, entry.key, input.offset_bytes, maxBytes, ctx);
302
304
  if (read.status === 'range_not_satisfiable') {
303
305
  throw ctx.fail('offset_out_of_range', `offset_bytes ${input.offset_bytes} is past the end of ${displayName}.`);
304
306
  }
@@ -334,8 +336,8 @@ export const readFile = tool('zenodo_read_file', {
334
336
  if (hasMore) {
335
337
  const end = nextOffset - 1;
336
338
  ctx.enrich.notice(member
337
- ? memberTruncationNotice(end, meta.size, input.max_bytes)
338
- : `Showing bytes ${input.offset_bytes}–${end} of ${meta.size ?? 'an unknown total'}; call zenodo_read_file again with offset_bytes ${nextOffset}.`);
339
+ ? memberTruncationNotice(end, meta.size, maxBytes, capNote)
340
+ : `Showing bytes ${input.offset_bytes}–${end} of ${meta.size?.toLocaleString('en-US') ?? 'an unknown total'}${capNote ? ` (${capNote})` : ''}; call zenodo_read_file again with offset_bytes ${nextOffset}.`);
339
341
  }
340
342
  return {
341
343
  ...described('text', meta),
@@ -1 +1 @@
1
- {"version":3,"file":"read-file.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/read-file.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-file.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/read-file.tool.ts"],"names":[],"mappings":"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"}
@@ -117,8 +117,8 @@ export declare const searchRecords: import("@cyanheads/mcp-ts-core").ToolDefinit
117
117
  }, {
118
118
  readonly reason: "query_syntax";
119
119
  readonly code: JsonRpcErrorCode.ValidationError;
120
- readonly when: "The query has an unpaired unescaped / outside quotes";
121
- readonly recovery: "Escape the slash as \\/ or wrap that term in double quotes, then call zenodo_search_records again.";
120
+ readonly when: "The query holds something Zenodo cannot run: a regular expression with no closing / (an unescaped / outside double quotes) or with a \" inside /…/ left open; a \" inside a word whose phrase never closes (with a filter other than community and all_versions set, only when the query still fails once that phrase is closed at its end) or closes past a bracket the query needs; a range bound ending in a backslash, as one holding an escaped space, ] or } does; an unescaped ! with nothing after it; or a boost, fuzziness, or proximity value it cannot convert. Or a filter other than community and all_versions is set and the query is not valid search syntax, which Zenodo would match as plain text with every filter dropped";
121
+ readonly recovery: "Fix the syntax the message names, then call zenodo_search_records again: double-quote or backslash-escape any / [ ] { } ~ ^ : or ! meant as plain text (\"[CMIP6]\", \\[CMIP6\\], 10.5281\\/zenodo.1, climate\\!) and any \" inside a regular expression or a word (12\\\" vinyl), write phrases in double quotes rather than single, drop a doubled or dangling operator (AND AND, or one with nothing after it inside parentheses, as in (climate AND)), give a field: prefix a value, close a range as [a TO b] and double-quote a bound that holds a space, ] or } ([a TO \"b]\"]), and give a boost or fuzziness one decimal number and a phrase proximity a whole number (^2, ~0.5, \"x y\"~2).";
122
122
  }, {
123
123
  readonly reason: "query_failed";
124
124
  readonly code: JsonRpcErrorCode.ServiceUnavailable;
@@ -151,7 +151,7 @@ export declare const searchRecords: import("@cyanheads/mcp-ts-core").ToolDefinit
151
151
  }, {
152
152
  readonly reason: "result_window_exceeded";
153
153
  readonly code: JsonRpcErrorCode.ValidationError;
154
- readonly when: "page × size exceeds 10,000";
154
+ readonly when: "The page starts past the first 10,000 matches: (page − 1) × size is 10,000 or more, counting a size above 25 as 25";
155
155
  readonly recovery: "Zenodo serves only the first 10,000 matches; add filters or a published_from/published_to range to zenodo_search_records instead of paging deeper.";
156
156
  }, {
157
157
  readonly reason: "rate_limited";
@@ -1 +1 @@
1
- {"version":3,"file":"search-records.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-records.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA4LjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgexB,CAAC"}
1
+ {"version":3,"file":"search-records.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-records.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA2SjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsfxB,CAAC"}
@@ -8,13 +8,105 @@
8
8
  import { tool, z } from '@cyanheads/mcp-ts-core';
9
9
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
10
10
  import { isValidOrcid, isWholeIdentifier, normalizeOrcid, ORCID_PATTERN, parseAwardRef, parseCommunityRef, parseFunderRef, } from '../../../services/zenodo/identifiers.js';
11
- import { ACCESS_STATUSES, expandPartialDate, hasUnpairedSlash, isValidPartialDate, SEARCH_SORTS, } from '../../../services/zenodo/query-builder.js';
11
+ import { ACCESS_STATUSES, engineSyntaxError, expandPartialDate, isConversionError, isValidPartialDate, queryAsSent, querySyntaxError, SEARCH_SORTS, } from '../../../services/zenodo/query-builder.js';
12
12
  import { RESOURCE_TYPE_IDS, resolveResourceTypeId } from '../../../services/zenodo/resource-types.js';
13
13
  import { getZenodoService } from '../../../services/zenodo/zenodo-service.js';
14
+ import { applyCap, hasMorePages, PAGE_SIZE_CAP, RESULT_WINDOW, reachableHits, windowRejection, } from '../paging.js';
14
15
  import { inline } from '../render.js';
15
16
  import { blankToUndefined, enumPreprocess, toOptionalArray } from '../schema-helpers.js';
16
- const RESULT_WINDOW = 10_000;
17
17
  const PARTIAL_DATE_PATTERN = /^\d{4}(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\d|3[01]))?)?$/;
18
+ /** Inputs that compose into `q`; `community` and `all_versions` ride their own params. */
19
+ const Q_FILTERS = [
20
+ 'resource_type',
21
+ 'funder',
22
+ 'award',
23
+ 'creator_orcid',
24
+ 'file_type',
25
+ 'license',
26
+ 'access_status',
27
+ 'published_from',
28
+ 'published_to',
29
+ ];
30
+ /** `s` cut to `max` characters, marking the cut end with `…`. */
31
+ const clip = (s, max, from) => {
32
+ if (s.length <= max)
33
+ return s;
34
+ return from === 'end' ? `…${s.slice(-max)}` : `${s.slice(0, max)}…`;
35
+ };
36
+ /** Where and why `query` fails to parse, quoting the query around the spot. */
37
+ function describeSyntaxError(query, { index, problem, token }) {
38
+ const before = inline(clip(query.slice(0, index), 40, 'end')).trimEnd();
39
+ const from = inline(clip(query.slice(index), 40, 'start'));
40
+ const value = inline(clip(token, 40, 'start'));
41
+ switch (problem) {
42
+ case 'unexpected':
43
+ return `unexpected "${value}" ${before ? `after "${before}"` : 'at the start'}`;
44
+ case 'end':
45
+ return `it ends after "${before}" where a term must follow`;
46
+ case 'quote':
47
+ return `a term starts with a single quote at "${from}"`;
48
+ case 'escape':
49
+ return `a backslash ${index + 1 < query.length ? 'before a line break' : 'at the end'} escapes nothing (after "${before}")`;
50
+ case 'phrase':
51
+ return `the phrase starting "${from}" has no closing double quote`;
52
+ case 'regex':
53
+ return `the regular expression starting "${from}" has no closing /`;
54
+ case 'regex_quote':
55
+ return `the regular expression "${value}" opens a quoted string with " and never closes it`;
56
+ case 'word_quote':
57
+ return `the double quote after "${before}" opens a phrase that never closes`;
58
+ case 'word_span':
59
+ return `the ${token.startsWith('/') ? 'regular expression' : 'phrase'} "${value}" opened after "${before}" takes in a parenthesis or bracket the query needs`;
60
+ case 'range_escape':
61
+ return `the range bound "${value}" after "${before}" ends in a backslash`;
62
+ case 'dangling_not':
63
+ return `the ! after "${before}" is a NOT with nothing after it`;
64
+ case 'boost':
65
+ return `the boost "${value}" after "${before}" is not one decimal number such as ^2 or ^0.5`;
66
+ case 'fuzzy':
67
+ return `the fuzziness "${value}" after "${before}" is not one decimal number such as ~1 or ~0.5`;
68
+ case 'proximity':
69
+ return `the proximity "${value}" after "${before}" is not a whole number such as ~2`;
70
+ }
71
+ }
72
+ /** How Zenodo's search engine reads the character an {@link engineSyntaxError} problem turns on. */
73
+ function engineReading({ problem, token }) {
74
+ if (problem === 'regex' || (problem === 'word_span' && token.startsWith('/'))) {
75
+ return ' (Zenodo reads any unescaped / outside double quotes as a regular-expression delimiter)';
76
+ }
77
+ switch (problem) {
78
+ case 'regex_quote':
79
+ return '';
80
+ case 'range_escape':
81
+ return ' (Zenodo ends a range bound at its first space, ] or }, even an escaped one, and cannot end one in a backslash)';
82
+ case 'dangling_not':
83
+ return ' (Zenodo reads an unescaped ! outside double quotes as NOT, inside a word too)';
84
+ default:
85
+ return ' (Zenodo reads a " inside a word as the start of a phrase)';
86
+ }
87
+ }
88
+ /** ` as it would be sent ("…")` when the checked query differs from the caller's. */
89
+ const asSentNote = (checked, query) => checked === query ? '' : ` as it would be sent ("${inline(clip(checked, 200, 'start'))}")`;
90
+ /**
91
+ * The search-engine problem the query fails on, with the query its offsets index. It
92
+ * is read as written first, so the message names the cause before balancing could
93
+ * close it. Without filters, a query luqum cannot parse is matched as plain text and
94
+ * the engine never reads it. With filters, Zenodo runs the balanced query, so a
95
+ * problem balancing repairs (a `"` left open inside a word) fails only when that query
96
+ * still fails; a `/` left open fails as written, since balancing would turn the rest
97
+ * of the query into a regular expression.
98
+ */
99
+ function engineFailure(query, sent, filtered, syntaxError) {
100
+ const written = query ? engineSyntaxError(query) : undefined;
101
+ if (!filtered)
102
+ return written && !syntaxError ? { error: written, query } : undefined;
103
+ if (written && (written.problem === 'regex' || syntaxError))
104
+ return { error: written, query };
105
+ const balanced = syntaxError ? undefined : engineSyntaxError(sent);
106
+ if (!balanced)
107
+ return undefined;
108
+ return written ? { error: written, query } : { error: balanced, query: sent };
109
+ }
18
110
  /**
19
111
  * Resource type preprocess: a lone string or array, each value resolved to its id
20
112
  * (any case; `publication::publication-article` → `publication-article`). A value
@@ -162,7 +254,7 @@ export const searchRecords = tool('zenodo_search_records', {
162
254
  input: z.object({
163
255
  query: z
164
256
  .preprocess(blankToUndefined, z.string().max(1000).optional())
165
- .describe('Keyword query. Terms are OR-ed unless joined with AND; "quoted phrases" match exactly; field syntax such as metadata.title:"…" or doi:"10.5281/zenodo.N" works. Escape a literal / as \\/. A bare DOI or record URL is rejected; open it with zenodo_get_record instead. Omit to browse with filters only.'),
257
+ .describe('Keyword query. Terms are OR-ed unless joined with AND; "quoted phrases" (double quotes) match exactly; field syntax such as metadata.title:"…" or doi:"10.5281/zenodo.N" works. Escape a literal / as \\/. A bare DOI or record URL is rejected; open it with zenodo_get_record instead. With any filter other than community and all_versions, a query that is not valid search syntax (AND AND, a field: with no value, an unclosed [a TO b]) is rejected; without one, Zenodo matches it as plain text. Omit to browse with filters only.'),
166
258
  resource_type: resourceTypeInput.describe('Resource type ids, OR-ed (a single string is accepted): dataset, software, publication, publication-article, image-photo, … Any case; a subtype may also be written in the <type>::<id> form zenodo_lookup_vocabulary shows as its search value (publication::publication-article). A top-level type includes its subtypes. Look ids up with zenodo_lookup_vocabulary (vocabulary: resource_types).'),
167
259
  community: z
168
260
  .preprocess(blankToUndefined, z.string().max(200).optional())
@@ -212,14 +304,20 @@ export const searchRecords = tool('zenodo_search_records', {
212
304
  .int()
213
305
  .min(1)
214
306
  .default(1)
215
- .describe('Result page, starting at 1. page × size may not exceed 10,000.'),
216
- size: z.number().int().min(1).max(25).default(10).describe('Results per page (1–25).'),
307
+ .describe('Result page, starting at 1. Only the first 10,000 matches are reachable, so the last reachable page is 10,000 ÷ size rounded up (400 at size 25).'),
308
+ size: z
309
+ .number()
310
+ .int()
311
+ .min(1)
312
+ .max(10_000)
313
+ .default(10)
314
+ .describe('Results per page, at most 25 per call; larger values return 25.'),
217
315
  }),
218
316
  output: z.object({
219
317
  total: z.number().describe('Exact number of matching records.'),
220
318
  reachable: z.number().describe('Matches reachable by paging: min(total, 10,000).'),
221
319
  page: z.number().describe('Page returned.'),
222
- size: z.number().describe('Page size applied.'),
320
+ size: z.number().describe('Page size applied: size, or 25 when size asked for more.'),
223
321
  has_more: z.boolean().describe('True when another reachable page follows.'),
224
322
  next_page: z.number().optional().describe('The next page number, when has_more.'),
225
323
  hits: z.array(HitSchema).describe('Matching deposits on this page.'),
@@ -257,7 +355,7 @@ export const searchRecords = tool('zenodo_search_records', {
257
355
  enrichment: {
258
356
  truncated: z.boolean().describe('True when more reachable matches follow this page.'),
259
357
  shown: z.number().describe('Hits returned on this page.'),
260
- cap: z.number().describe('Page size applied.'),
358
+ cap: z.number().describe('Page size applied (at most 25).'),
261
359
  totalCount: z.number().describe('Exact number of matching records.'),
262
360
  effectiveQuery: z.string().optional().describe('The exact q sent to Zenodo.'),
263
361
  appliedSort: z.enum(SEARCH_SORTS).describe('The sort order applied.'),
@@ -265,7 +363,7 @@ export const searchRecords = tool('zenodo_search_records', {
265
363
  notice: z
266
364
  .string()
267
365
  .optional()
268
- .describe('Guidance on empty results, the 10,000-result window, or further pages.'),
366
+ .describe('Guidance on a query Zenodo matched as plain text, empty results, the 10,000-result window, the 25-per-call size cap, or further pages.'),
269
367
  },
270
368
  errors: [
271
369
  {
@@ -277,8 +375,8 @@ export const searchRecords = tool('zenodo_search_records', {
277
375
  {
278
376
  reason: 'query_syntax',
279
377
  code: JsonRpcErrorCode.ValidationError,
280
- when: 'The query has an unpaired unescaped / outside quotes',
281
- recovery: 'Escape the slash as \\/ or wrap that term in double quotes, then call zenodo_search_records again.',
378
+ when: 'The query holds something Zenodo cannot run: a regular expression with no closing / (an unescaped / outside double quotes) or with a " inside /…/ left open; a " inside a word whose phrase never closes (with a filter other than community and all_versions set, only when the query still fails once that phrase is closed at its end) or closes past a bracket the query needs; a range bound ending in a backslash, as one holding an escaped space, ] or } does; an unescaped ! with nothing after it; or a boost, fuzziness, or proximity value it cannot convert. Or a filter other than community and all_versions is set and the query is not valid search syntax, which Zenodo would match as plain text with every filter dropped',
379
+ recovery: 'Fix the syntax the message names, then call zenodo_search_records again: double-quote or backslash-escape any / [ ] { } ~ ^ : or ! meant as plain text ("[CMIP6]", \\[CMIP6\\], 10.5281\\/zenodo.1, climate\\!) and any " inside a regular expression or a word (12\\" vinyl), write phrases in double quotes rather than single, drop a doubled or dangling operator (AND AND, or one with nothing after it inside parentheses, as in (climate AND)), give a field: prefix a value, close a range as [a TO b] and double-quote a bound that holds a space, ] or } ([a TO "b]"]), and give a boost or fuzziness one decimal number and a phrase proximity a whole number (^2, ~0.5, "x y"~2).',
282
380
  },
283
381
  {
284
382
  reason: 'query_failed',
@@ -317,7 +415,7 @@ export const searchRecords = tool('zenodo_search_records', {
317
415
  {
318
416
  reason: 'result_window_exceeded',
319
417
  code: JsonRpcErrorCode.ValidationError,
320
- when: 'page × size exceeds 10,000',
418
+ when: 'The page starts past the first 10,000 matches: (page − 1) × size is 10,000 or more, counting a size above 25 as 25',
321
419
  recovery: 'Zenodo serves only the first 10,000 matches; add filters or a published_from/published_to range to zenodo_search_records instead of paging deeper.',
322
420
  },
323
421
  {
@@ -331,22 +429,34 @@ export const searchRecords = tool('zenodo_search_records', {
331
429
  ],
332
430
  async handler(input, ctx) {
333
431
  const sort = input.sort ?? (input.query ? 'bestmatch' : 'newest');
432
+ const { applied: size, capNote } = applyCap('size', input.size, PAGE_SIZE_CAP);
334
433
  ctx.enrich({
335
434
  truncated: false,
336
435
  shown: 0,
337
- cap: input.size,
436
+ cap: size,
338
437
  totalCount: 0,
339
438
  appliedSort: sort,
340
439
  allVersions: input.all_versions,
341
440
  });
342
- if (input.page * input.size > RESULT_WINDOW) {
343
- throw ctx.fail('result_window_exceeded', `page ${input.page} × size ${input.size} is past the first ${RESULT_WINDOW.toLocaleString('en-US')} matches.`);
344
- }
441
+ const pastWindow = windowRejection(input.page, size, 'matches', capNote);
442
+ if (pastWindow)
443
+ throw ctx.fail('result_window_exceeded', pastWindow);
345
444
  if (input.query && isWholeIdentifier(input.query)) {
346
445
  throw ctx.fail('query_is_identifier', `The query "${inline(input.query)}" is a record identifier, not search terms.`);
347
446
  }
348
- if (input.query && hasUnpairedSlash(input.query)) {
349
- throw ctx.fail('query_syntax', 'The query has an unpaired / outside quotes, which Zenodo parses as an unterminated regular expression.');
447
+ const filtered = Q_FILTERS.some((name) => input[name] !== undefined);
448
+ const sentQuery = queryAsSent(input.query, filtered);
449
+ const syntaxError = sentQuery ? querySyntaxError(sentQuery) : undefined;
450
+ const engine = engineFailure(input.query ?? '', sentQuery, filtered, syntaxError);
451
+ if (engine) {
452
+ throw ctx.fail('query_syntax', `Zenodo cannot run the query${asSentNote(engine.query, input.query)}: ${describeSyntaxError(engine.query, engine.error)}${engineReading(engine.error)}.`);
453
+ }
454
+ if (syntaxError && (filtered || isConversionError(syntaxError))) {
455
+ const asSent = asSentNote(sentQuery, input.query);
456
+ const detail = describeSyntaxError(sentQuery, syntaxError);
457
+ throw ctx.fail('query_syntax', isConversionError(syntaxError)
458
+ ? `Zenodo cannot convert a number in the query${asSent}: ${detail}.`
459
+ : `Zenodo cannot parse the query${asSent}: ${detail}. With filters set, Zenodo would not apply them to this query.`);
350
460
  }
351
461
  const publishedFrom = input.published_from
352
462
  ? expandPartialDate(input.published_from, 'from')
@@ -379,7 +489,7 @@ export const searchRecords = tool('zenodo_search_records', {
379
489
  const filters = {
380
490
  allVersions: input.all_versions,
381
491
  page: input.page,
382
- size: input.size,
492
+ size,
383
493
  sort,
384
494
  ...(input.query ? { query: input.query } : {}),
385
495
  ...(input.resource_type ? { resourceTypes: input.resource_type } : {}),
@@ -395,13 +505,16 @@ export const searchRecords = tool('zenodo_search_records', {
395
505
  };
396
506
  const result = await service.searchRecords(filters, ctx);
397
507
  const total = result.total;
398
- const reachable = Math.min(total, RESULT_WINDOW);
399
- const hasMore = input.page * input.size < reachable;
508
+ const reachable = reachableHits(total);
509
+ const hasMore = hasMorePages(input.page, size, total);
400
510
  ctx.enrich({ shown: result.hits.length });
401
511
  ctx.enrich.total(total);
402
512
  if (result.q)
403
513
  ctx.enrich.echo(result.q);
404
514
  const notice = [];
515
+ if (syntaxError) {
516
+ notice.push(`Zenodo could not parse the query (${describeSyntaxError(sentQuery, syntaxError)}), so it matched the query's words as plain text and ignored its operators, quotes, and field syntax.`);
517
+ }
405
518
  if (total === 0) {
406
519
  notice.push('No records matched.');
407
520
  const narrowing = [
@@ -430,7 +543,7 @@ export const searchRecords = tool('zenodo_search_records', {
430
543
  if (!input.all_versions) {
431
544
  notice.push('Only the latest version of each deposit is searched; set all_versions to true to include superseded versions.');
432
545
  }
433
- if (input.query && /\bAND\b|"/.test(input.query)) {
546
+ if (input.query && !syntaxError && /\bAND\b|"/.test(input.query)) {
434
547
  notice.push('Terms joined by AND must all match and quoted phrases must match exactly; loosen the query.');
435
548
  }
436
549
  if (input.published_from || input.published_to) {
@@ -438,19 +551,15 @@ export const searchRecords = tool('zenodo_search_records', {
438
551
  }
439
552
  }
440
553
  else if (result.hits.length === 0) {
441
- const last = Math.max(1, Math.ceil(reachable / input.size));
554
+ const last = Math.max(1, Math.ceil(reachable / size));
442
555
  notice.push(`Page ${input.page} is past the last page (${last}); call again with page ${last} or lower.`);
443
556
  }
444
557
  if (total > RESULT_WINDOW) {
445
558
  notice.push(`Only the first 10,000 of ${total.toLocaleString('en-US')} matches are reachable; add filters or a date range, or change sort.`);
446
559
  }
447
560
  if (hasMore) {
448
- notice.push(`Showing ${result.hits.length} of ${reachable.toLocaleString('en-US')}; call again with page ${input.page + 1}.`);
449
- ctx.enrich.truncated({
450
- shown: result.hits.length,
451
- cap: input.size,
452
- guidance: notice.join(' '),
453
- });
561
+ notice.push(`Showing ${result.hits.length} of ${reachable.toLocaleString('en-US')}${capNote ? ` (${capNote})` : ''}; call again with page ${input.page + 1}.`);
562
+ ctx.enrich.truncated({ shown: result.hits.length, cap: size, guidance: notice.join(' ') });
454
563
  }
455
564
  else if (notice.length) {
456
565
  ctx.enrich.notice(notice.join(' '));
@@ -459,7 +568,7 @@ export const searchRecords = tool('zenodo_search_records', {
459
568
  total,
460
569
  reachable,
461
570
  page: input.page,
462
- size: input.size,
571
+ size,
463
572
  has_more: hasMore,
464
573
  ...(hasMore ? { next_page: input.page + 1 } : {}),
465
574
  hits: result.hits,
@@ -1 +1 @@
1
- {"version":3,"file":"search-records.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-records.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-records.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-records.tool.ts"],"names":[],"mappings":"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"}