@cyanheads/brapi-mcp-server 0.4.4 → 0.4.6

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 (91) hide show
  1. package/CLAUDE.md +4 -4
  2. package/README.md +12 -3
  3. package/changelog/0.4.x/0.4.5.md +25 -0
  4. package/changelog/0.4.x/0.4.6.md +26 -0
  5. package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts +1 -0
  6. package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts.map +1 -1
  7. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts +7 -1
  8. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts.map +1 -1
  9. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js +23 -5
  10. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js.map +1 -1
  11. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts +7 -1
  12. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts.map +1 -1
  13. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js +23 -5
  14. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts +7 -1
  16. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts.map +1 -1
  17. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js +23 -5
  18. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js.map +1 -1
  19. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts +7 -1
  20. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js +23 -5
  22. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts +7 -1
  24. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts.map +1 -1
  25. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js +23 -5
  26. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js.map +1 -1
  27. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts +7 -1
  28. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts.map +1 -1
  29. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js +22 -5
  30. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js.map +1 -1
  31. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts +7 -1
  32. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts.map +1 -1
  33. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js +23 -5
  34. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js.map +1 -1
  35. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts +1 -0
  36. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts.map +1 -1
  37. package/dist/mcp-server/tools/definitions/index.d.ts +44 -7
  38. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  39. package/dist/mcp-server/tools/shared/connect-auth-schema.js +2 -2
  40. package/dist/mcp-server/tools/shared/connect-auth-schema.js.map +1 -1
  41. package/dist/mcp-server/tools/shared/find-helpers.d.ts +45 -6
  42. package/dist/mcp-server/tools/shared/find-helpers.d.ts.map +1 -1
  43. package/dist/mcp-server/tools/shared/find-helpers.js +99 -17
  44. package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
  45. package/dist/mcp-server/tools/shared/orientation-envelope.d.ts +2 -0
  46. package/dist/mcp-server/tools/shared/orientation-envelope.d.ts.map +1 -1
  47. package/dist/mcp-server/tools/shared/orientation-envelope.js +11 -0
  48. package/dist/mcp-server/tools/shared/orientation-envelope.js.map +1 -1
  49. package/dist/services/brapi-client/brapi-client.d.ts.map +1 -1
  50. package/dist/services/brapi-client/brapi-client.js +1 -1
  51. package/dist/services/brapi-client/brapi-client.js.map +1 -1
  52. package/dist/services/brapi-dialect/brapi-test-dialect.d.ts +24 -0
  53. package/dist/services/brapi-dialect/brapi-test-dialect.d.ts.map +1 -0
  54. package/dist/services/brapi-dialect/brapi-test-dialect.js +148 -0
  55. package/dist/services/brapi-dialect/brapi-test-dialect.js.map +1 -0
  56. package/dist/services/brapi-dialect/cassavabase-dialect.d.ts +7 -6
  57. package/dist/services/brapi-dialect/cassavabase-dialect.d.ts.map +1 -1
  58. package/dist/services/brapi-dialect/cassavabase-dialect.js +23 -42
  59. package/dist/services/brapi-dialect/cassavabase-dialect.js.map +1 -1
  60. package/dist/services/brapi-dialect/detect.d.ts +5 -3
  61. package/dist/services/brapi-dialect/detect.d.ts.map +1 -1
  62. package/dist/services/brapi-dialect/detect.js +21 -7
  63. package/dist/services/brapi-dialect/detect.js.map +1 -1
  64. package/dist/services/brapi-dialect/index.d.ts +2 -1
  65. package/dist/services/brapi-dialect/index.d.ts.map +1 -1
  66. package/dist/services/brapi-dialect/index.js +2 -1
  67. package/dist/services/brapi-dialect/index.js.map +1 -1
  68. package/dist/services/brapi-dialect/registry.d.ts.map +1 -1
  69. package/dist/services/brapi-dialect/registry.js +4 -1
  70. package/dist/services/brapi-dialect/registry.js.map +1 -1
  71. package/dist/services/brapi-dialect/singularizing-dialect.d.ts +47 -0
  72. package/dist/services/brapi-dialect/singularizing-dialect.d.ts.map +1 -0
  73. package/dist/services/brapi-dialect/singularizing-dialect.js +63 -0
  74. package/dist/services/brapi-dialect/singularizing-dialect.js.map +1 -0
  75. package/dist/services/brapi-dialect/spec-dialect.d.ts +7 -5
  76. package/dist/services/brapi-dialect/spec-dialect.d.ts.map +1 -1
  77. package/dist/services/brapi-dialect/spec-dialect.js +8 -6
  78. package/dist/services/brapi-dialect/spec-dialect.js.map +1 -1
  79. package/dist/services/brapi-dialect/types.d.ts +16 -1
  80. package/dist/services/brapi-dialect/types.d.ts.map +1 -1
  81. package/dist/services/capability-registry/capability-registry.d.ts.map +1 -1
  82. package/dist/services/capability-registry/capability-registry.js +30 -10
  83. package/dist/services/capability-registry/capability-registry.js.map +1 -1
  84. package/dist/services/capability-registry/types.d.ts +6 -0
  85. package/dist/services/capability-registry/types.d.ts.map +1 -1
  86. package/dist/services/server-registry/server-registry.d.ts +1 -0
  87. package/dist/services/server-registry/server-registry.d.ts.map +1 -1
  88. package/dist/services/server-registry/server-registry.js +31 -1
  89. package/dist/services/server-registry/server-registry.js.map +1 -1
  90. package/package.json +4 -4
  91. package/server.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-find-variants.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-find-variants.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AA8HjD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAsL5B,CAAC"}
1
+ {"version":3,"file":"brapi-find-variants.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-find-variants.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA+HjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkM5B,CAAC"}
@@ -7,13 +7,14 @@
7
7
  * @module mcp-server/tools/definitions/brapi-find-variants.tool
8
8
  */
9
9
  import { tool, z } from '@cyanheads/mcp-ts-core';
10
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
10
11
  import { getServerConfig } from '../../../config/server-config.js';
11
12
  import { getBrapiClient } from '../../../services/brapi-client/index.js';
12
13
  import { resolveDialect } from '../../../services/brapi-dialect/index.js';
13
14
  import { getCapabilityRegistry } from '../../../services/capability-registry/index.js';
14
15
  import { getDatasetStore } from '../../../services/dataset-store/index.js';
15
16
  import { DEFAULT_ALIAS, getServerRegistry } from '../../../services/server-registry/index.js';
16
- import { AliasInput, applyDialectFilters, asString, buildRefinementHint, collectPassthroughParts, computeDistribution, DatasetHandleSchema, ExtraFiltersInput, LoadLimitInput, loadInitialPage, maybeSpill, mergeFilters, renderAppliedFilters, renderDatasetHandle, renderDistributions, renderFindHeader, } from '../shared/find-helpers.js';
17
+ import { AliasInput, applyDialectFiltersOrFail, asString, buildRefinementHint, collectPassthroughParts, computeDistribution, DatasetHandleSchema, ExtraFiltersInput, LoadLimitInput, loadInitialFindPage, maybeSpill, mergeFilters, renderAppliedFilters, renderDatasetHandle, renderDistributions, renderFindHeader, resolveFindRoute, } from '../shared/find-helpers.js';
17
18
  const VariantRowSchema = z
18
19
  .object({
19
20
  variantDbId: z.string().describe('Server-side identifier for the variant.'),
@@ -108,6 +109,14 @@ const SERVER_TO_USER = {
108
109
  export const brapiFindVariants = tool('brapi_find_variants', {
109
110
  description: 'Find variant records by variant set, reference sequence, or genomic region (start/end, 1-based inclusive / exclusive). Returns a dataset handle when the upstream total exceeds loadLimit.',
110
111
  annotations: { readOnlyHint: true, openWorldHint: true },
112
+ errors: [
113
+ {
114
+ reason: 'all_filters_dropped',
115
+ code: JsonRpcErrorCode.ValidationError,
116
+ when: 'The active dialect dropped every filter the agent supplied — the upstream server does not honor any of the requested scope filters on this endpoint, so the call would silently widen to the unfiltered baseline.',
117
+ recovery: 'Drop the unsupported filters and rescope by variants, variantSets, references, or referenceName + start/end — these filter paths are honored on the active dialect.',
118
+ },
119
+ ],
111
120
  input: z.object({
112
121
  alias: AliasInput,
113
122
  variantSets: z.array(z.string()).optional().describe('Filter by variantSetDbIds.'),
@@ -130,7 +139,7 @@ export const brapiFindVariants = tool('brapi_find_variants', {
130
139
  const capabilityLookup = {};
131
140
  if (connection.resolvedAuth)
132
141
  capabilityLookup.auth = connection.resolvedAuth;
133
- await capabilities.ensure(connection.baseUrl, { service: 'variants', method: 'GET' }, ctx, capabilityLookup);
142
+ const profile = await capabilities.profile(connection.baseUrl, ctx, capabilityLookup);
134
143
  const dialect = await resolveDialect(connection, ctx, capabilityLookup);
135
144
  const warnings = [];
136
145
  if (input.start !== undefined && input.end !== undefined && input.start >= input.end) {
@@ -144,15 +153,24 @@ export const brapiFindVariants = tool('brapi_find_variants', {
144
153
  start: input.start,
145
154
  end: input.end,
146
155
  }, input.extraFilters, warnings);
147
- const filters = applyDialectFilters(dialect, 'variants', merged, warnings);
156
+ const filters = applyDialectFiltersOrFail(ctx, dialect, 'variants', merged, warnings);
157
+ const route = resolveFindRoute({
158
+ profile,
159
+ dialect,
160
+ endpoint: 'variants',
161
+ filters,
162
+ searchBody: merged,
163
+ warnings,
164
+ });
148
165
  const loadLimit = input.loadLimit ?? config.loadLimit;
149
- const firstPage = await loadInitialPage(client, connection, '/variants', filters, loadLimit, ctx);
166
+ const firstPage = await loadInitialFindPage(client, connection, route, loadLimit, ctx);
150
167
  const { fullRows, dataset: datasetMeta } = await maybeSpill({
151
168
  firstPage,
152
169
  client,
153
170
  connection,
154
171
  path: '/variants',
155
172
  filters,
173
+ route,
156
174
  source: 'find_variants',
157
175
  loadLimit,
158
176
  ctx,
@@ -175,7 +193,7 @@ export const brapiFindVariants = tool('brapi_find_variants', {
175
193
  hasMore: firstPage.hasMore,
176
194
  distributions,
177
195
  warnings,
178
- appliedFilters: filters,
196
+ appliedFilters: route.kind === 'search' ? route.searchBody : filters,
179
197
  };
180
198
  if (refinementHint)
181
199
  result.refinementHint = refinementHint;
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-find-variants.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-find-variants.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brapi-find-variants.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-find-variants.tool.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,7 @@ export declare const brapiServerInfo: import("@cyanheads/mcp-ts-core").ToolDefin
48
48
  }>;
49
49
  envVar: z.ZodString;
50
50
  disabledSearchEndpoints: z.ZodArray<z.ZodString>;
51
+ notes: z.ZodArray<z.ZodString>;
51
52
  }, z.core.$strip>;
52
53
  content: z.ZodObject<{
53
54
  crops: z.ZodArray<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-server-info.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-server-info.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAUjD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAkC1B,CAAC"}
1
+ {"version":3,"file":"brapi-server-info.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-server-info.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAUjD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAkC1B,CAAC"}
@@ -122,6 +122,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
122
122
  }>;
123
123
  envVar: import("zod").ZodString;
124
124
  disabledSearchEndpoints: import("zod").ZodArray<import("zod").ZodString>;
125
+ notes: import("zod").ZodArray<import("zod").ZodString>;
125
126
  }, import("zod/v4/core").$strip>;
126
127
  content: import("zod").ZodObject<{
127
128
  crops: import("zod").ZodArray<import("zod").ZodString>;
@@ -256,6 +257,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
256
257
  }>;
257
258
  envVar: import("zod").ZodString;
258
259
  disabledSearchEndpoints: import("zod").ZodArray<import("zod").ZodString>;
260
+ notes: import("zod").ZodArray<import("zod").ZodString>;
259
261
  }, import("zod/v4/core").$strip>;
260
262
  content: import("zod").ZodObject<{
261
263
  crops: import("zod").ZodArray<import("zod").ZodString>;
@@ -403,7 +405,12 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
403
405
  }, import("zod/v4/core").$strip>>;
404
406
  warnings: import("zod").ZodArray<import("zod").ZodString>;
405
407
  appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
406
- }, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
408
+ }, import("zod/v4/core").$strip>, readonly [{
409
+ readonly reason: "all_filters_dropped";
410
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
411
+ readonly when: "The active dialect dropped every filter the agent supplied — the upstream server does not honor any of the requested scope filters on this endpoint, so the call would silently widen to the unfiltered baseline.";
412
+ readonly recovery: "Drop the unsupported filters and rescope by names, germplasmDbIds, germplasmPUIs, accessionNumbers, crops, synonyms, genus, or species — these filter paths are honored on the active dialect.";
413
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
407
414
  alias: import("zod").ZodOptional<import("zod").ZodString>;
408
415
  images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
409
416
  observationUnits: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -457,7 +464,12 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
457
464
  }, import("zod/v4/core").$strip>>;
458
465
  warnings: import("zod").ZodArray<import("zod").ZodString>;
459
466
  appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
460
- }, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
467
+ }, import("zod/v4/core").$strip>, readonly [{
468
+ readonly reason: "all_filters_dropped";
469
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
470
+ readonly when: "The active dialect dropped every filter the agent supplied — the upstream server does not honor any of the requested scope filters on this endpoint, so the call would silently widen to the unfiltered baseline.";
471
+ readonly recovery: "Drop the unsupported filters and rescope by images, observationUnits, observations, studies, descriptiveOntologyTerms, imageFileNames, or mimeTypes — these filter paths are honored on the active dialect.";
472
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
461
473
  alias: import("zod").ZodOptional<import("zod").ZodString>;
462
474
  locations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
463
475
  locationNames: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -513,7 +525,12 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
513
525
  spec: "spec";
514
526
  swapped: "swapped";
515
527
  }>;
516
- }, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
528
+ }, import("zod/v4/core").$strip>, readonly [{
529
+ readonly reason: "all_filters_dropped";
530
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
531
+ readonly when: "The active dialect dropped every filter the agent supplied — the upstream server does not honor any of the requested scope filters on this endpoint, so the call would silently widen to the unfiltered baseline.";
532
+ readonly recovery: "Drop the unsupported filters and rescope by locations, locationNames, countryCodes, locationTypes, abbreviations, or bbox — these filter paths are honored on the active dialect.";
533
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
517
534
  alias: import("zod").ZodOptional<import("zod").ZodString>;
518
535
  studies: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
519
536
  germplasm: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -575,7 +592,12 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
575
592
  }, import("zod/v4/core").$strip>>;
576
593
  warnings: import("zod").ZodArray<import("zod").ZodString>;
577
594
  appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
578
- }, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
595
+ }, import("zod/v4/core").$strip>, readonly [{
596
+ readonly reason: "all_filters_dropped";
597
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
598
+ readonly when: "The active dialect dropped every filter the agent supplied — the upstream server does not honor any of the requested scope filters on this endpoint, so the call would silently widen to the unfiltered baseline.";
599
+ readonly recovery: "Drop the unsupported filters and rescope by germplasm, variables, observationUnits, observations, seasons, programs, or trials — these filter paths are honored on the active dialect.";
600
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
579
601
  alias: import("zod").ZodOptional<import("zod").ZodString>;
580
602
  crop: import("zod").ZodOptional<import("zod").ZodString>;
581
603
  trialTypes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -631,7 +653,12 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
631
653
  }, import("zod/v4/core").$strip>>;
632
654
  warnings: import("zod").ZodArray<import("zod").ZodString>;
633
655
  appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
634
- }, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
656
+ }, import("zod/v4/core").$strip>, readonly [{
657
+ readonly reason: "all_filters_dropped";
658
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
659
+ readonly when: "The active dialect dropped every filter the agent supplied — the upstream server does not honor any of the requested scope filters on this endpoint, so the call would silently widen to the unfiltered baseline.";
660
+ readonly recovery: "Drop the unsupported filters and rescope by crop, trialTypes, seasons, programs, trials, studyNames, or active — these filter paths are honored on the active dialect.";
661
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
635
662
  alias: import("zod").ZodOptional<import("zod").ZodString>;
636
663
  variables: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
637
664
  variableNames: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -706,7 +733,12 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
706
733
  }, import("zod/v4/core").$strip>>;
707
734
  warnings: import("zod").ZodArray<import("zod").ZodString>;
708
735
  appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
709
- }, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
736
+ }, import("zod/v4/core").$strip>, readonly [{
737
+ readonly reason: "all_filters_dropped";
738
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
739
+ readonly when: "The active dialect dropped every filter the agent supplied — the upstream server does not honor any of the requested scope filters on this endpoint, so the call would silently widen to the unfiltered baseline.";
740
+ readonly recovery: "Drop the unsupported filters and rescope by variables, traitClasses, ontologyDbIds, methodDbIds, scaleDbIds, or text — these filter paths are honored on the active dialect.";
741
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
710
742
  alias: import("zod").ZodOptional<import("zod").ZodString>;
711
743
  variantSets: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
712
744
  variants: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -754,7 +786,12 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
754
786
  }, import("zod/v4/core").$strip>>;
755
787
  warnings: import("zod").ZodArray<import("zod").ZodString>;
756
788
  appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
757
- }, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
789
+ }, import("zod/v4/core").$strip>, readonly [{
790
+ readonly reason: "all_filters_dropped";
791
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
792
+ readonly when: "The active dialect dropped every filter the agent supplied — the upstream server does not honor any of the requested scope filters on this endpoint, so the call would silently widen to the unfiltered baseline.";
793
+ readonly recovery: "Drop the unsupported filters and rescope by variants, variantSets, references, or referenceName + start/end — these filter paths are honored on the active dialect.";
794
+ }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
758
795
  imageDbIds: import("zod").ZodArray<import("zod").ZodString>;
759
796
  alias: import("zod").ZodOptional<import("zod").ZodString>;
760
797
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,kEAAkE;AAClE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAmBnC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,kEAAkE;AAClE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAmBnC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAA4B,CAAC"}
@@ -40,7 +40,7 @@ export const ConnectAuthSchema = z
40
40
  .object({
41
41
  mode: z
42
42
  .literal('oauth2')
43
- .describe('OAuth2 client-credentials flow. Not yet implemented use mode="bearer".'),
43
+ .describe('OAuth2 client-credentials flow; exchanged for an access token at connect time.'),
44
44
  clientId: z.string().min(1).describe('OAuth2 client ID.'),
45
45
  clientSecret: z.string().min(1).describe('OAuth2 client secret.'),
46
46
  tokenUrl: z
@@ -49,7 +49,7 @@ export const ConnectAuthSchema = z
49
49
  .optional()
50
50
  .describe('OAuth2 token endpoint URL. Defaults derived from the base URL when omitted.'),
51
51
  })
52
- .describe('OAuth2 client-credentials variant (accepted at schema level, rejected at runtime).'),
52
+ .describe('OAuth2 client-credentials variant.'),
53
53
  ])
54
54
  .describe('Connection auth configuration. Discriminated by `mode`. Omit the entire `auth` field for no-auth servers.');
55
55
  //# sourceMappingURL=connect-auth-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect-auth-schema.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/shared/connect-auth-schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,kBAAkB,CAAC,MAAM,EAAE;IAC1B,CAAC;SACE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;SAClE,QAAQ,CAAC,2CAA2C,CAAC;IACxD,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;KACzF,CAAC;SACD,QAAQ,CAAC,4DAA4D,CAAC;IACzE,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACzE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACpD,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6EAA6E,CAAC;KAC3F,CAAC;SACD,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC;aACJ,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,0EAA0E,CAAC;QACvF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC9D,CAAC;SACD,QAAQ,CAAC,2EAA2E,CAAC;IACxF,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC;aACJ,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CAAC,0EAA0E,CAAC;QACvF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACzD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACjE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,6EAA6E,CAAC;KAC3F,CAAC;SACD,QAAQ,CACP,oFAAoF,CACrF;CACJ,CAAC;KACD,QAAQ,CACP,2GAA2G,CAC5G,CAAC"}
1
+ {"version":3,"file":"connect-auth-schema.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/shared/connect-auth-schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,kBAAkB,CAAC,MAAM,EAAE;IAC1B,CAAC;SACE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;SAClE,QAAQ,CAAC,2CAA2C,CAAC;IACxD,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;KACzF,CAAC;SACD,QAAQ,CAAC,4DAA4D,CAAC;IACzE,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACzE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACpD,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6EAA6E,CAAC;KAC3F,CAAC;SACD,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC;aACJ,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,0EAA0E,CAAC;QACvF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC9D,CAAC;SACD,QAAQ,CAAC,2EAA2E,CAAC;IACxF,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC;aACJ,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CACP,gFAAgF,CACjF;QACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACzD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACjE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,6EAA6E,CAAC;KAC3F,CAAC;SACD,QAAQ,CAAC,oCAAoC,CAAC;CAClD,CAAC;KACD,QAAQ,CACP,2GAA2G,CAC5G,CAAC"}
@@ -7,10 +7,11 @@
7
7
  *
8
8
  * @module mcp-server/tools/shared/find-helpers
9
9
  */
10
- import { type Context, z } from '@cyanheads/mcp-ts-core';
10
+ import { type Context, type HandlerContext, z } from '@cyanheads/mcp-ts-core';
11
11
  import type { ServerConfig } from '../../../config/server-config.js';
12
12
  import type { BrapiClient, BrapiEnvelope, BrapiPagination, BrapiRequestOptions, ResolvedAuth } from '../../../services/brapi-client/index.js';
13
13
  import type { BrapiDialect } from '../../../services/brapi-dialect/index.js';
14
+ import type { CapabilityProfile } from '../../../services/capability-registry/types.js';
14
15
  import type { DatasetMetadata, DatasetStore } from '../../../services/dataset-store/index.js';
15
16
  import type { RegisteredServer } from '../../../services/server-registry/index.js';
16
17
  /** True when the thrown value is an upstream 404 surfaced by the BrAPI client. */
@@ -28,12 +29,45 @@ export declare const ExtraFiltersInput: z.ZodOptional<z.ZodRecord<z.ZodString, z
28
29
  */
29
30
  export declare function mergeFilters(named: Record<string, unknown>, extra: Record<string, unknown> | undefined, warnings: string[]): Record<string, unknown>;
30
31
  /**
31
- * Apply the dialect's GET-filter adapter and append any warnings to the
32
- * caller's collector. Returns the wire-shape filter map. Mirrors the
33
- * `(input, …, warnings) Record` shape of `mergeFilters` so find_* call
34
- * sites stay readable.
32
+ * Apply the dialect's GET-filter adapter, append warnings, and fail with a
33
+ * typed `all_filters_dropped` error when the dialect dropped every supplied
34
+ * filter the call would otherwise silently widen to the unfiltered baseline.
35
+ * Tools that call this MUST declare `'all_filters_dropped'` in their `errors[]`
36
+ * contract; the helper looks up the recovery hint via `ctx.recoveryFor` and
37
+ * spreads it into `data` so the wire-level shape stays consistent across the
38
+ * find_* surface. The bare-baseline call (no filters supplied) is exempt:
39
+ * `dropped` is empty so the all-dropped predicate is false.
35
40
  */
36
- export declare function applyDialectFilters(dialect: BrapiDialect, endpoint: string, filters: Readonly<Record<string, unknown>>, warnings: string[]): Record<string, unknown>;
41
+ export declare function applyDialectFiltersOrFail(ctx: HandlerContext<'all_filters_dropped'>, dialect: BrapiDialect, endpoint: string, filters: Readonly<Record<string, unknown>>, warnings: string[]): Record<string, unknown>;
42
+ export type FindRoute = {
43
+ filters: Record<string, unknown>;
44
+ kind: 'get';
45
+ path: string;
46
+ service: string;
47
+ } | {
48
+ kind: 'search';
49
+ noun: string;
50
+ searchBody: Record<string, unknown>;
51
+ service: string;
52
+ };
53
+ export interface ResolveFindRouteInput {
54
+ dialect: BrapiDialect;
55
+ endpoint: string;
56
+ filters: Record<string, unknown>;
57
+ profile: CapabilityProfile;
58
+ searchBody: Record<string, unknown>;
59
+ searchNoun?: string;
60
+ service?: string;
61
+ warnings: string[];
62
+ }
63
+ /**
64
+ * Select the transport for a curated find tool from the advertised capability
65
+ * profile. GET stays the default because it has the widest real-world support
66
+ * and can run through dialect-specific query-string adapters. When a server
67
+ * exposes only POST `/search/{noun}`, the same semantic filters are sent as a
68
+ * search body instead.
69
+ */
70
+ export declare function resolveFindRoute(input: ResolveFindRouteInput): FindRoute;
37
71
  /** Build request options with optional auth. */
38
72
  export declare function buildRequestOptions(connection: RegisteredServer, params?: BrapiRequestOptions['params']): BrapiRequestOptions;
39
73
  /**
@@ -83,6 +117,8 @@ export interface LoadedRows<T> {
83
117
  * spill via `spillToDataset`.
84
118
  */
85
119
  export declare function loadInitialPage<T>(client: BrapiClient, connection: RegisteredServer, path: string, filters: Record<string, unknown>, loadLimit: number, ctx: Context): Promise<LoadedRows<T>>;
120
+ /** Pull the first page for either a GET list endpoint or POST /search route. */
121
+ export declare function loadInitialFindPage<T>(client: BrapiClient, connection: RegisteredServer, route: FindRoute, loadLimit: number, ctx: Context): Promise<LoadedRows<T>>;
86
122
  export interface SpillInput<T> {
87
123
  client: BrapiClient;
88
124
  connection: RegisteredServer;
@@ -92,6 +128,8 @@ export interface SpillInput<T> {
92
128
  firstPage: T[];
93
129
  loadLimit: number;
94
130
  path: string;
131
+ /** Optional route selected by resolveFindRoute; defaults to GET path + filters. */
132
+ route?: FindRoute;
95
133
  /**
96
134
  * Optional client-side predicate applied to every row (first-page + spilled)
97
135
  * before persistence. When present, only rows that pass are persisted to
@@ -150,6 +188,7 @@ export interface MaybeSpillInput<T> {
150
188
  firstPage: LoadedRows<T>;
151
189
  loadLimit: number;
152
190
  path: string;
191
+ route?: FindRoute;
153
192
  /**
154
193
  * Optional client-side predicate applied to every row before persistence.
155
194
  * Forwarded to `spillToDataset`. When present and no spillover happens, the
@@ -1 +1 @@
1
- {"version":3,"file":"find-helpers.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/shared/find-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-helpers.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/shared/find-helpers.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * @module mcp-server/tools/shared/find-helpers
9
9
  */
10
10
  import { z } from '@cyanheads/mcp-ts-core';
11
- import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
11
+ import { JsonRpcErrorCode, McpError, validationError } from '@cyanheads/mcp-ts-core/errors';
12
12
  /** True when the thrown value is an upstream 404 surfaced by the BrAPI client. */
13
13
  export function isUpstreamNotFound(err) {
14
14
  return err instanceof McpError && err.code === JsonRpcErrorCode.NotFound;
@@ -56,16 +56,76 @@ export function mergeFilters(named, extra, warnings) {
56
56
  return merged;
57
57
  }
58
58
  /**
59
- * Apply the dialect's GET-filter adapter and append any warnings to the
60
- * caller's collector. Returns the wire-shape filter map. Mirrors the
61
- * `(input, …, warnings) Record` shape of `mergeFilters` so find_* call
62
- * sites stay readable.
59
+ * Apply the dialect's GET-filter adapter, append warnings, and fail with a
60
+ * typed `all_filters_dropped` error when the dialect dropped every supplied
61
+ * filter the call would otherwise silently widen to the unfiltered baseline.
62
+ * Tools that call this MUST declare `'all_filters_dropped'` in their `errors[]`
63
+ * contract; the helper looks up the recovery hint via `ctx.recoveryFor` and
64
+ * spreads it into `data` so the wire-level shape stays consistent across the
65
+ * find_* surface. The bare-baseline call (no filters supplied) is exempt:
66
+ * `dropped` is empty so the all-dropped predicate is false.
63
67
  */
64
- export function applyDialectFilters(dialect, endpoint, filters, warnings) {
68
+ export function applyDialectFiltersOrFail(ctx, dialect, endpoint, filters, warnings) {
65
69
  const adapted = dialect.adaptGetFilters(endpoint, filters);
66
70
  warnings.push(...adapted.warnings);
71
+ if (adapted.dropped.length > 0 && Object.keys(adapted.filters).length === 0) {
72
+ throw ctx.fail('all_filters_dropped', `Every filter you supplied was dropped by the ${dialect.id} dialect (${adapted.dropped.join(', ')}); the call would silently widen to the unfiltered baseline.`, {
73
+ ...ctx.recoveryFor('all_filters_dropped'),
74
+ dropped: adapted.dropped,
75
+ dialect: dialect.id,
76
+ });
77
+ }
67
78
  return adapted.filters;
68
79
  }
80
+ /**
81
+ * Select the transport for a curated find tool from the advertised capability
82
+ * profile. GET stays the default because it has the widest real-world support
83
+ * and can run through dialect-specific query-string adapters. When a server
84
+ * exposes only POST `/search/{noun}`, the same semantic filters are sent as a
85
+ * search body instead.
86
+ */
87
+ export function resolveFindRoute(input) {
88
+ const service = input.service ?? input.endpoint;
89
+ const path = `/${input.endpoint}`;
90
+ const searchNoun = input.searchNoun ?? input.endpoint;
91
+ const searchService = `search/${searchNoun}`;
92
+ const getDescriptor = input.profile.supported[service];
93
+ const searchDescriptor = input.profile.supported[searchService];
94
+ const getSupported = supportsMethod(getDescriptor, 'GET');
95
+ const searchSupported = supportsMethod(searchDescriptor, 'POST');
96
+ const searchDisabled = Boolean(input.dialect.disabledSearchEndpoints?.has(searchNoun));
97
+ if (getSupported) {
98
+ return { kind: 'get', service, path, filters: input.filters };
99
+ }
100
+ if (searchSupported && !searchDisabled) {
101
+ input.warnings.push(`Route selected: POST /search/${searchNoun} because GET ${path} was not advertised by this server.`);
102
+ return {
103
+ kind: 'search',
104
+ service: searchService,
105
+ noun: searchNoun,
106
+ searchBody: pruneUndefined(input.searchBody),
107
+ };
108
+ }
109
+ if (searchSupported && searchDisabled) {
110
+ throw validationError(`BrAPI server advertises POST /search/${searchNoun}, but the active '${input.dialect.id}' dialect marks that route as known-dead.`, {
111
+ service,
112
+ searchService,
113
+ dialectId: input.dialect.id,
114
+ reason: 'search_endpoint_disabled',
115
+ });
116
+ }
117
+ throw validationError(`BrAPI server does not advertise a usable route for '${service}'. Expected GET ${path} or POST /search/${searchNoun}. Check brapi_server_info for the full capability list.`, {
118
+ service,
119
+ searchService,
120
+ supportedCount: Object.keys(input.profile.supported).length,
121
+ reason: 'missing_find_route',
122
+ });
123
+ }
124
+ function supportsMethod(descriptor, method) {
125
+ if (!descriptor)
126
+ return false;
127
+ return (!descriptor.methods || descriptor.methods.length === 0 || descriptor.methods.includes(method));
128
+ }
69
129
  function pruneUndefined(record) {
70
130
  const pruned = {};
71
131
  for (const [key, value] of Object.entries(record)) {
@@ -167,11 +227,11 @@ export function renderDistributions(distributions) {
167
227
  * spill via `spillToDataset`.
168
228
  */
169
229
  export async function loadInitialPage(client, connection, path, filters, loadLimit, ctx) {
170
- const params = {
171
- ...filters,
172
- };
173
- params.pageSize = loadLimit;
174
- const envelope = await client.get(connection.baseUrl, path, ctx, buildRequestOptions(connection, params));
230
+ return await loadInitialFindPage(client, connection, getRouteForPath(path, filters), loadLimit, ctx);
231
+ }
232
+ /** Pull the first page for either a GET list endpoint or POST /search route. */
233
+ export async function loadInitialFindPage(client, connection, route, loadLimit, ctx) {
234
+ const envelope = await fetchFindRoutePage(client, connection, route, loadLimit, 0, ctx);
175
235
  const rows = extractRows(envelope.result);
176
236
  const pagination = envelope.metadata?.pagination;
177
237
  const totalCount = pagination?.totalCount;
@@ -181,6 +241,22 @@ export async function loadInitialPage(client, connection, path, filters, loadLim
181
241
  result.totalCount = totalCount;
182
242
  return result;
183
243
  }
244
+ async function fetchFindRoutePage(client, connection, route, pageSize, page, ctx) {
245
+ if (route.kind === 'get') {
246
+ const params = {
247
+ ...route.filters,
248
+ };
249
+ params.pageSize = pageSize;
250
+ if (page > 0)
251
+ params.page = page;
252
+ return await client.get(connection.baseUrl, route.path, ctx, buildRequestOptions(connection, params));
253
+ }
254
+ const body = { ...route.searchBody, pageSize, page };
255
+ const response = await client.postSearch(connection.baseUrl, route.noun, body, ctx, buildRequestOptions(connection));
256
+ if (response.kind === 'sync')
257
+ return response.envelope;
258
+ return await client.getSearchResults(connection.baseUrl, route.noun, response.searchResultsDbId, ctx, buildRequestOptions(connection, { pageSize, page }));
259
+ }
184
260
  /**
185
261
  * Shape of the dataset handle returned inline by `find_*` tools. Drops the
186
262
  * provenance fields (source/baseUrl/query) since those are internal and
@@ -296,6 +372,8 @@ export async function maybeSpill(input) {
296
372
  };
297
373
  if (rowFilter)
298
374
  spillInput.rowFilter = rowFilter;
375
+ if (input.route)
376
+ spillInput.route = input.route;
299
377
  const spill = await spillToDataset(spillInput);
300
378
  return {
301
379
  fullRows: spill.fullRows,
@@ -319,12 +397,8 @@ export async function spillToDataset(input) {
319
397
  break;
320
398
  if (input.ctx.signal.aborted)
321
399
  break;
322
- const params = {
323
- ...input.filters,
324
- };
325
- params.pageSize = pageSize;
326
- params.page = page;
327
- const envelope = await input.client.get(input.connection.baseUrl, input.path, input.ctx, buildRequestOptions(input.connection, params));
400
+ const route = input.route ?? getRouteForPath(input.path, input.filters);
401
+ const envelope = await fetchFindRoutePage(input.client, input.connection, route, pageSize, page, input.ctx);
328
402
  const pageRows = extractRows(envelope.result);
329
403
  rows.push(...pageRows);
330
404
  pagesFetched += 1;
@@ -348,6 +422,14 @@ export async function spillToDataset(input) {
348
422
  const dataset = await input.store.create(input.ctx, createInput);
349
423
  return { dataset, fullRows: persistedRows, pagesFetched };
350
424
  }
425
+ function getRouteForPath(path, filters) {
426
+ return {
427
+ kind: 'get',
428
+ path,
429
+ service: path.replace(/^\/+/, ''),
430
+ filters,
431
+ };
432
+ }
351
433
  export function extractRows(result) {
352
434
  if (Array.isArray(result))
353
435
  return result;