@cyanheads/brapi-mcp-server 0.6.3 → 0.7.0

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 (106) hide show
  1. package/CLAUDE.md +11 -4
  2. package/README.md +7 -3
  3. package/changelog/0.6.x/0.6.4.md +14 -0
  4. package/changelog/0.7.x/0.7.0.md +23 -0
  5. package/changelog/template.md +1 -1
  6. package/dist/index.js +2 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/mcp-server/resources/definitions/brapi-variable.resource.d.ts +30 -0
  9. package/dist/mcp-server/resources/definitions/brapi-variable.resource.d.ts.map +1 -0
  10. package/dist/mcp-server/resources/definitions/brapi-variable.resource.js +78 -0
  11. package/dist/mcp-server/resources/definitions/brapi-variable.resource.js.map +1 -0
  12. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.d.ts +81 -0
  13. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.d.ts.map +1 -0
  14. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.js +366 -0
  15. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.js.map +1 -0
  16. package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts +1 -1
  17. package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts +1 -1
  19. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts.map +1 -1
  20. package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.d.ts +1 -1
  21. package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts +1 -1
  23. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts +1 -1
  25. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts.map +1 -1
  26. package/dist/mcp-server/tools/definitions/brapi-describe-filters.tool.d.ts +1 -1
  27. package/dist/mcp-server/tools/definitions/brapi-describe-filters.tool.d.ts.map +1 -1
  28. package/dist/mcp-server/tools/definitions/brapi-export-genotype-matrix.tool.d.ts +88 -0
  29. package/dist/mcp-server/tools/definitions/brapi-export-genotype-matrix.tool.d.ts.map +1 -0
  30. package/dist/mcp-server/tools/definitions/brapi-export-genotype-matrix.tool.js +494 -0
  31. package/dist/mcp-server/tools/definitions/brapi-export-genotype-matrix.tool.js.map +1 -0
  32. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts +7 -5
  33. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts.map +1 -1
  34. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js +67 -120
  35. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js.map +1 -1
  36. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts +8 -6
  37. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts.map +1 -1
  38. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js +54 -33
  39. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js.map +1 -1
  40. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts +8 -6
  41. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js +54 -33
  43. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js.map +1 -1
  44. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts +8 -6
  45. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts.map +1 -1
  46. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js +62 -41
  47. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js.map +1 -1
  48. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts +8 -6
  49. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js +54 -33
  51. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js.map +1 -1
  52. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts +8 -6
  53. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts.map +1 -1
  54. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js +52 -33
  55. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js.map +1 -1
  56. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts +8 -6
  57. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts.map +1 -1
  58. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js +54 -33
  59. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js.map +1 -1
  60. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts +8 -6
  61. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts.map +1 -1
  62. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js +54 -33
  63. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js.map +1 -1
  64. package/dist/mcp-server/tools/definitions/brapi-germplasm-performance.tool.d.ts +60 -0
  65. package/dist/mcp-server/tools/definitions/brapi-germplasm-performance.tool.d.ts.map +1 -0
  66. package/dist/mcp-server/tools/definitions/brapi-germplasm-performance.tool.js +416 -0
  67. package/dist/mcp-server/tools/definitions/brapi-germplasm-performance.tool.js.map +1 -0
  68. package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.d.ts +1 -1
  69. package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.d.ts.map +1 -1
  70. package/dist/mcp-server/tools/definitions/brapi-get-image.tool.d.ts +1 -1
  71. package/dist/mcp-server/tools/definitions/brapi-get-image.tool.d.ts.map +1 -1
  72. package/dist/mcp-server/tools/definitions/brapi-get-study.tool.d.ts +1 -1
  73. package/dist/mcp-server/tools/definitions/brapi-get-study.tool.d.ts.map +1 -1
  74. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts +1 -1
  75. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts.map +1 -1
  76. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts +1 -1
  77. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts.map +1 -1
  78. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts +1 -1
  79. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts.map +1 -1
  80. package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.d.ts +1 -1
  81. package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.d.ts.map +1 -1
  82. package/dist/mcp-server/tools/definitions/brapi-walk-pedigree.tool.d.ts +1 -1
  83. package/dist/mcp-server/tools/definitions/brapi-walk-pedigree.tool.d.ts.map +1 -1
  84. package/dist/mcp-server/tools/definitions/index.d.ts +225 -61
  85. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  86. package/dist/mcp-server/tools/definitions/index.js +6 -0
  87. package/dist/mcp-server/tools/definitions/index.js.map +1 -1
  88. package/dist/mcp-server/tools/shared/canvas-columns.d.ts +32 -0
  89. package/dist/mcp-server/tools/shared/canvas-columns.d.ts.map +1 -0
  90. package/dist/mcp-server/tools/shared/canvas-columns.js +98 -0
  91. package/dist/mcp-server/tools/shared/canvas-columns.js.map +1 -0
  92. package/dist/mcp-server/tools/shared/find-helpers.d.ts +1 -1
  93. package/dist/mcp-server/tools/shared/find-helpers.d.ts.map +1 -1
  94. package/dist/mcp-server/tools/shared/find-helpers.js +6 -2
  95. package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
  96. package/dist/mcp-server/tools/shared/genotype-calls.d.ts +81 -0
  97. package/dist/mcp-server/tools/shared/genotype-calls.d.ts.map +1 -0
  98. package/dist/mcp-server/tools/shared/genotype-calls.js +172 -0
  99. package/dist/mcp-server/tools/shared/genotype-calls.js.map +1 -0
  100. package/dist/mcp-server/tools/shared/observations.d.ts +87 -0
  101. package/dist/mcp-server/tools/shared/observations.d.ts.map +1 -0
  102. package/dist/mcp-server/tools/shared/observations.js +285 -0
  103. package/dist/mcp-server/tools/shared/observations.js.map +1 -0
  104. package/manifest.json +1 -1
  105. package/package.json +6 -5
  106. package/server.json +3 -3
@@ -43,7 +43,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
43
43
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
44
44
  readonly when: "No filter catalog is registered for the requested endpoint";
45
45
  readonly recovery: "Pick an endpoint from data.availableEndpoints — same set as the input enum (studies, germplasm, observations, variables, images, variants, locations).";
46
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
46
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
47
47
  germplasmDbId: import("zod").ZodString;
48
48
  alias: import("zod").ZodOptional<import("zod").ZodString>;
49
49
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -95,7 +95,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
95
95
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
96
96
  readonly when: "Upstream returned no germplasm record for the requested DbId";
97
97
  readonly recovery: "Verify the germplasmDbId on the target server, or run brapi_find_germplasm to discover valid IDs.";
98
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
98
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
99
99
  alias: import("zod").ZodOptional<import("zod").ZodString>;
100
100
  forceRefresh: import("zod").ZodDefault<import("zod").ZodBoolean>;
101
101
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -161,7 +161,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
161
161
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
162
162
  readonly when: "No connection has been registered under the requested alias";
163
163
  readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_server_info.";
164
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
164
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
165
165
  studyDbId: import("zod").ZodString;
166
166
  alias: import("zod").ZodOptional<import("zod").ZodString>;
167
167
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -230,7 +230,66 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
230
230
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
231
231
  readonly when: "Upstream returned no study record for the requested DbId";
232
232
  readonly recovery: "Verify the studyDbId on the target server, or run brapi_find_studies to discover valid IDs.";
233
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
233
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
234
+ alias: import("zod").ZodOptional<import("zod").ZodString>;
235
+ studies: import("zod").ZodArray<import("zod").ZodString>;
236
+ variables: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
237
+ germplasm: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
238
+ shape: import("zod").ZodDefault<import("zod").ZodEnum<{
239
+ wide: "wide";
240
+ long: "long";
241
+ }>>;
242
+ aggregate: import("zod").ZodDefault<import("zod").ZodEnum<{
243
+ all: "all";
244
+ mean: "mean";
245
+ median: "median";
246
+ first: "first";
247
+ }>>;
248
+ loadLimit: import("zod").ZodOptional<import("zod").ZodNumber>;
249
+ extraFilters: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
250
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
251
+ alias: import("zod").ZodString;
252
+ studies: import("zod").ZodArray<import("zod").ZodString>;
253
+ shape: import("zod").ZodEnum<{
254
+ wide: "wide";
255
+ long: "long";
256
+ }>;
257
+ aggregate: import("zod").ZodEnum<{
258
+ all: "all";
259
+ mean: "mean";
260
+ median: "median";
261
+ first: "first";
262
+ }>;
263
+ observationCount: import("zod").ZodNumber;
264
+ germplasmCount: import("zod").ZodNumber;
265
+ variableCount: import("zod").ZodNumber;
266
+ variableLegend: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
267
+ dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
268
+ tableName: import("zod").ZodString;
269
+ rowCount: import("zod").ZodNumber;
270
+ columns: import("zod").ZodArray<import("zod").ZodString>;
271
+ createdAt: import("zod").ZodString;
272
+ expiresAt: import("zod").ZodString;
273
+ truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
274
+ maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
275
+ }, import("zod/v4/core").$strip>>;
276
+ warnings: import("zod").ZodArray<import("zod").ZodString>;
277
+ }, import("zod/v4/core").$strip>, readonly [{
278
+ readonly reason: "unknown_alias";
279
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
280
+ readonly when: "No connection has been registered under the requested alias";
281
+ readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_build_phenotype_matrix.";
282
+ }, {
283
+ readonly reason: "all_filters_dropped";
284
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
285
+ readonly when: "The active dialect dropped every filter supplied — the call would silently widen to the unfiltered baseline";
286
+ readonly recovery: "Drop unsupported filters or use studies / germplasm / variables to scope the query to supported filter paths on the active dialect.";
287
+ }, {
288
+ readonly reason: "no_observation_path";
289
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
290
+ readonly when: "Neither /observations nor /observationunits returned data for any requested study after probing both paths";
291
+ readonly recovery: "Verify the studyDbIds exist and the BrAPI server exposes /observations or /observationunits. Use brapi_server_info to inspect the capability list.";
292
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
234
293
  baseUrl: import("zod").ZodOptional<import("zod").ZodString>;
235
294
  auth: import("zod").ZodOptional<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
236
295
  mode: import("zod").ZodLiteral<"none">;
@@ -320,7 +379,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
320
379
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
321
380
  readonly when: "Token endpoint responded but did not return an access_token";
322
381
  readonly recovery: "Confirm the credentials are valid and the upstream IdP issues access tokens for this grant.";
323
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
382
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
324
383
  dataframe: import("zod").ZodOptional<import("zod").ZodString>;
325
384
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
326
385
  tables: import("zod").ZodArray<import("zod").ZodObject<{
@@ -345,7 +404,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
345
404
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
346
405
  readonly when: "This server is running as a shared HTTP endpoint without per-caller auth — listing every dataframe would expose other concurrent clients' workspaces, since all callers resolve to one shared tenant.";
347
406
  readonly recovery: "Pass `dataframe` with a specific name — either from a prior find_* spillover result (`result.dataframe.tableName`) or one you registered via `brapi_dataframe_query` with `registerAs`. Listing all dataframes is not available on this deployment.";
348
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
407
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
349
408
  sql: import("zod").ZodString;
350
409
  registerAs: import("zod").ZodOptional<import("zod").ZodString>;
351
410
  preview: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -363,7 +422,62 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
363
422
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
364
423
  readonly when: "SQL violated read-only rules (multi-statement, non-SELECT, or disallowed operation)";
365
424
  readonly recovery: "Submit a single SELECT statement using only registered dataframes. For changes, use `registerAs` in this tool to materialize a result, or brapi_dataframe_drop to remove a dataframe.";
366
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
425
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
426
+ alias: import("zod").ZodOptional<import("zod").ZodString>;
427
+ germplasmDbIds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
428
+ variantSetDbId: import("zod").ZodString;
429
+ format: import("zod").ZodEnum<{
430
+ plink: "plink";
431
+ "vcf-lite": "vcf-lite";
432
+ "matrix-json": "matrix-json";
433
+ }>;
434
+ maxCalls: import("zod").ZodOptional<import("zod").ZodNumber>;
435
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
436
+ alias: import("zod").ZodString;
437
+ format: import("zod").ZodEnum<{
438
+ plink: "plink";
439
+ "vcf-lite": "vcf-lite";
440
+ "matrix-json": "matrix-json";
441
+ }>;
442
+ rowCount: import("zod").ZodNumber;
443
+ columnCount: import("zod").ZodNumber;
444
+ variantColumnLegend: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
445
+ callFormatting: import("zod").ZodObject<{
446
+ expandHomozygotes: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodBoolean>>;
447
+ unknownString: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
448
+ sepPhased: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
449
+ sepUnphased: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
450
+ }, import("zod/v4/core").$strip>;
451
+ dataframe: import("zod").ZodObject<{
452
+ tableName: import("zod").ZodString;
453
+ rowCount: import("zod").ZodNumber;
454
+ columns: import("zod").ZodArray<import("zod").ZodString>;
455
+ createdAt: import("zod").ZodString;
456
+ expiresAt: import("zod").ZodString;
457
+ truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
458
+ maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
459
+ }, import("zod/v4/core").$strip>;
460
+ vcf: import("zod").ZodOptional<import("zod").ZodString>;
461
+ ped: import("zod").ZodOptional<import("zod").ZodString>;
462
+ map: import("zod").ZodOptional<import("zod").ZodString>;
463
+ truncated: import("zod").ZodBoolean;
464
+ warnings: import("zod").ZodArray<import("zod").ZodString>;
465
+ }, import("zod/v4/core").$strip>, readonly [{
466
+ readonly reason: "unknown_alias";
467
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
468
+ readonly when: "No connection has been registered under the requested alias";
469
+ readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_export_genotype_matrix.";
470
+ }, {
471
+ readonly reason: "no_filters";
472
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
473
+ readonly when: "No variantSetDbId was provided";
474
+ readonly recovery: "Provide variantSetDbId before retrying — unfiltered genotype-call pulls are too expensive.";
475
+ }, {
476
+ readonly reason: "search_endpoint_disabled";
477
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
478
+ readonly when: "The active dialect declares POST /search/calls as known-dead on this server";
479
+ readonly recovery: "Connect to a different BrAPI server that exposes a working /search/calls route — genotype-call workflows are not viable here.";
480
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
367
481
  alias: import("zod").ZodOptional<import("zod").ZodString>;
368
482
  variantSetDbId: import("zod").ZodOptional<import("zod").ZodString>;
369
483
  variantSetDbIds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -391,8 +505,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
391
505
  genotypeValue: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
392
506
  phaseSet: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
393
507
  }, import("zod/v4/core").$loose>>;
394
- returnedCount: import("zod").ZodNumber;
395
- totalCount: import("zod").ZodNumber;
396
508
  hasMore: import("zod").ZodBoolean;
397
509
  callFormatting: import("zod").ZodObject<{
398
510
  expandHomozygotes: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodBoolean>>;
@@ -415,8 +527,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
415
527
  maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
416
528
  }, import("zod/v4/core").$strip>>;
417
529
  truncated: import("zod").ZodBoolean;
418
- warnings: import("zod").ZodArray<import("zod").ZodString>;
419
- searchBody: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
420
530
  }, import("zod/v4/core").$strip>, readonly [{
421
531
  readonly reason: "unknown_alias";
422
532
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
@@ -432,7 +542,13 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
432
542
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
433
543
  readonly when: "The active dialect declares POST /search/calls as known-dead on this server";
434
544
  readonly recovery: "Connect to a different BrAPI server that exposes a working /search/calls route — genotype-call workflows are not viable here.";
435
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
545
+ }], {
546
+ readonly totalCount: import("zod").ZodNumber;
547
+ readonly returnedCount: import("zod").ZodNumber;
548
+ readonly appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
549
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
550
+ readonly warnings: import("zod").ZodArray<import("zod").ZodString>;
551
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
436
552
  alias: import("zod").ZodOptional<import("zod").ZodString>;
437
553
  names: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
438
554
  germplasmDbIds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -470,8 +586,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
470
586
  type: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
471
587
  }, import("zod/v4/core").$loose>>>>;
472
588
  }, import("zod/v4/core").$loose>>;
473
- returnedCount: import("zod").ZodNumber;
474
- totalCount: import("zod").ZodNumber;
475
589
  hasMore: import("zod").ZodBoolean;
476
590
  distributions: import("zod").ZodObject<{
477
591
  commonCropName: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
@@ -480,7 +594,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
480
594
  collection: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
481
595
  countryOfOriginCode: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
482
596
  }, import("zod/v4/core").$strip>;
483
- refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
484
597
  dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
485
598
  tableName: import("zod").ZodString;
486
599
  rowCount: import("zod").ZodNumber;
@@ -490,8 +603,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
490
603
  truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
491
604
  maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
492
605
  }, import("zod/v4/core").$strip>>;
493
- warnings: import("zod").ZodArray<import("zod").ZodString>;
494
- appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
495
606
  }, import("zod/v4/core").$strip>, readonly [{
496
607
  readonly reason: "unknown_alias";
497
608
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
@@ -502,7 +613,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
502
613
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
503
614
  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.";
504
615
  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.";
505
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
616
+ }], {
617
+ readonly totalCount: import("zod").ZodNumber;
618
+ readonly returnedCount: import("zod").ZodNumber;
619
+ readonly appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
620
+ readonly refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
621
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
622
+ readonly warnings: import("zod").ZodArray<import("zod").ZodString>;
623
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
506
624
  alias: import("zod").ZodOptional<import("zod").ZodString>;
507
625
  images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
508
626
  observationUnits: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -534,8 +652,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
534
652
  copyright: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
535
653
  description: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
536
654
  }, import("zod/v4/core").$loose>>;
537
- returnedCount: import("zod").ZodNumber;
538
- totalCount: import("zod").ZodNumber;
539
655
  hasMore: import("zod").ZodBoolean;
540
656
  distributions: import("zod").ZodObject<{
541
657
  mimeType: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
@@ -543,7 +659,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
543
659
  observationUnitName: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
544
660
  descriptiveOntologyTerms: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
545
661
  }, import("zod/v4/core").$strip>;
546
- refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
547
662
  dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
548
663
  tableName: import("zod").ZodString;
549
664
  rowCount: import("zod").ZodNumber;
@@ -553,8 +668,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
553
668
  truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
554
669
  maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
555
670
  }, import("zod/v4/core").$strip>>;
556
- warnings: import("zod").ZodArray<import("zod").ZodString>;
557
- appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
558
671
  }, import("zod/v4/core").$strip>, readonly [{
559
672
  readonly reason: "unknown_alias";
560
673
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
@@ -565,7 +678,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
565
678
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
566
679
  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.";
567
680
  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.";
568
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
681
+ }], {
682
+ readonly totalCount: import("zod").ZodNumber;
683
+ readonly returnedCount: import("zod").ZodNumber;
684
+ readonly appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
685
+ readonly refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
686
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
687
+ readonly warnings: import("zod").ZodArray<import("zod").ZodString>;
688
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
569
689
  alias: import("zod").ZodOptional<import("zod").ZodString>;
570
690
  locations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
571
691
  locationNames: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -597,14 +717,11 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
597
717
  instituteAddress: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
598
718
  documentationURL: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
599
719
  }, import("zod/v4/core").$loose>>;
600
- returnedCount: import("zod").ZodNumber;
601
- totalCount: import("zod").ZodNumber;
602
720
  hasMore: import("zod").ZodBoolean;
603
721
  distributions: import("zod").ZodObject<{
604
722
  countryCode: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
605
723
  locationType: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
606
724
  }, import("zod/v4/core").$strip>;
607
- refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
608
725
  dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
609
726
  tableName: import("zod").ZodString;
610
727
  rowCount: import("zod").ZodNumber;
@@ -614,8 +731,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
614
731
  truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
615
732
  maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
616
733
  }, import("zod/v4/core").$strip>>;
617
- warnings: import("zod").ZodArray<import("zod").ZodString>;
618
- appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
619
734
  coordinateAxisOrder: import("zod").ZodEnum<{
620
735
  spec: "spec";
621
736
  swapped: "swapped";
@@ -630,7 +745,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
630
745
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
631
746
  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.";
632
747
  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.";
633
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
748
+ }], {
749
+ readonly totalCount: import("zod").ZodNumber;
750
+ readonly returnedCount: import("zod").ZodNumber;
751
+ readonly appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
752
+ readonly refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
753
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
754
+ readonly warnings: import("zod").ZodArray<import("zod").ZodString>;
755
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
634
756
  alias: import("zod").ZodOptional<import("zod").ZodString>;
635
757
  studies: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
636
758
  germplasm: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -664,8 +786,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
664
786
  collector: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
665
787
  uploadedBy: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
666
788
  }, import("zod/v4/core").$loose>>;
667
- returnedCount: import("zod").ZodNumber;
668
- totalCount: import("zod").ZodNumber;
669
789
  hasMore: import("zod").ZodBoolean;
670
790
  distributions: import("zod").ZodObject<{
671
791
  observationVariableName: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
@@ -674,7 +794,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
674
794
  observationLevel: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
675
795
  season: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
676
796
  }, import("zod/v4/core").$strip>;
677
- refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
678
797
  dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
679
798
  tableName: import("zod").ZodString;
680
799
  rowCount: import("zod").ZodNumber;
@@ -684,8 +803,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
684
803
  truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
685
804
  maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
686
805
  }, import("zod/v4/core").$strip>>;
687
- warnings: import("zod").ZodArray<import("zod").ZodString>;
688
- appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
689
806
  }, import("zod/v4/core").$strip>, readonly [{
690
807
  readonly reason: "unknown_alias";
691
808
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
@@ -696,7 +813,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
696
813
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
697
814
  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.";
698
815
  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.";
699
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
816
+ }], {
817
+ readonly totalCount: import("zod").ZodNumber;
818
+ readonly returnedCount: import("zod").ZodNumber;
819
+ readonly appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
820
+ readonly refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
821
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
822
+ readonly warnings: import("zod").ZodArray<import("zod").ZodString>;
823
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
700
824
  alias: import("zod").ZodOptional<import("zod").ZodString>;
701
825
  crop: import("zod").ZodOptional<import("zod").ZodString>;
702
826
  trialTypes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -729,8 +853,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
729
853
  studyCode: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
730
854
  studyPUI: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
731
855
  }, import("zod/v4/core").$loose>>;
732
- returnedCount: import("zod").ZodNumber;
733
- totalCount: import("zod").ZodNumber;
734
856
  hasMore: import("zod").ZodBoolean;
735
857
  distributions: import("zod").ZodObject<{
736
858
  programName: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
@@ -739,7 +861,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
739
861
  locationName: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
740
862
  commonCropName: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
741
863
  }, import("zod/v4/core").$strip>;
742
- refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
743
864
  dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
744
865
  tableName: import("zod").ZodString;
745
866
  rowCount: import("zod").ZodNumber;
@@ -749,8 +870,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
749
870
  truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
750
871
  maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
751
872
  }, import("zod/v4/core").$strip>>;
752
- warnings: import("zod").ZodArray<import("zod").ZodString>;
753
- appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
754
873
  }, import("zod/v4/core").$strip>, readonly [{
755
874
  readonly reason: "unknown_alias";
756
875
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
@@ -761,7 +880,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
761
880
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
762
881
  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.";
763
882
  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.";
764
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
883
+ }], {
884
+ readonly totalCount: import("zod").ZodNumber;
885
+ readonly returnedCount: import("zod").ZodNumber;
886
+ readonly appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
887
+ readonly refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
888
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
889
+ readonly warnings: import("zod").ZodArray<import("zod").ZodString>;
890
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
765
891
  alias: import("zod").ZodOptional<import("zod").ZodString>;
766
892
  variables: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
767
893
  variableNames: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -801,8 +927,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
801
927
  methodName: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
802
928
  }, import("zod/v4/core").$loose>>>;
803
929
  }, import("zod/v4/core").$loose>>;
804
- returnedCount: import("zod").ZodNumber;
805
- totalCount: import("zod").ZodNumber;
806
930
  hasMore: import("zod").ZodBoolean;
807
931
  distributions: import("zod").ZodObject<{
808
932
  ontologyDbId: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
@@ -823,7 +947,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
823
947
  traitClassMatch: "traitClassMatch";
824
948
  }>;
825
949
  }, import("zod/v4/core").$strip>>;
826
- refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
827
950
  dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
828
951
  tableName: import("zod").ZodString;
829
952
  rowCount: import("zod").ZodNumber;
@@ -833,8 +956,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
833
956
  truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
834
957
  maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
835
958
  }, import("zod/v4/core").$strip>>;
836
- warnings: import("zod").ZodArray<import("zod").ZodString>;
837
- appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
838
959
  }, import("zod/v4/core").$strip>, readonly [{
839
960
  readonly reason: "unknown_alias";
840
961
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
@@ -845,7 +966,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
845
966
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
846
967
  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.";
847
968
  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.";
848
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
969
+ }], {
970
+ readonly totalCount: import("zod").ZodNumber;
971
+ readonly returnedCount: import("zod").ZodNumber;
972
+ readonly appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
973
+ readonly refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
974
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
975
+ readonly warnings: import("zod").ZodArray<import("zod").ZodString>;
976
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
849
977
  alias: import("zod").ZodOptional<import("zod").ZodString>;
850
978
  variantSets: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
851
979
  variants: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
@@ -872,15 +1000,12 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
872
1000
  filtersApplied: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodBoolean>>;
873
1001
  filtersFailed: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>>;
874
1002
  }, import("zod/v4/core").$loose>>;
875
- returnedCount: import("zod").ZodNumber;
876
- totalCount: import("zod").ZodNumber;
877
1003
  hasMore: import("zod").ZodBoolean;
878
1004
  distributions: import("zod").ZodObject<{
879
1005
  variantType: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
880
1006
  referenceName: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
881
1007
  variantSetDbId: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
882
1008
  }, import("zod/v4/core").$strip>;
883
- refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
884
1009
  dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
885
1010
  tableName: import("zod").ZodString;
886
1011
  rowCount: import("zod").ZodNumber;
@@ -890,8 +1015,6 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
890
1015
  truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
891
1016
  maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
892
1017
  }, import("zod/v4/core").$strip>>;
893
- warnings: import("zod").ZodArray<import("zod").ZodString>;
894
- appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
895
1018
  }, import("zod/v4/core").$strip>, readonly [{
896
1019
  readonly reason: "unknown_alias";
897
1020
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
@@ -902,7 +1025,48 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
902
1025
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
903
1026
  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.";
904
1027
  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.";
905
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
1028
+ }], {
1029
+ readonly totalCount: import("zod").ZodNumber;
1030
+ readonly returnedCount: import("zod").ZodNumber;
1031
+ readonly appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
1032
+ readonly refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
1033
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
1034
+ readonly warnings: import("zod").ZodArray<import("zod").ZodString>;
1035
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
1036
+ alias: import("zod").ZodOptional<import("zod").ZodString>;
1037
+ germplasmDbId: import("zod").ZodString;
1038
+ variables: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
1039
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1040
+ alias: import("zod").ZodString;
1041
+ germplasmDbId: import("zod").ZodString;
1042
+ germplasmName: import("zod").ZodOptional<import("zod").ZodString>;
1043
+ studyCount: import("zod").ZodNumber;
1044
+ studyDbIds: import("zod").ZodArray<import("zod").ZodString>;
1045
+ perVariable: import("zod").ZodArray<import("zod").ZodObject<{
1046
+ observationVariableDbId: import("zod").ZodString;
1047
+ observationVariableName: import("zod").ZodOptional<import("zod").ZodString>;
1048
+ n: import("zod").ZodNumber;
1049
+ mean: import("zod").ZodOptional<import("zod").ZodNumber>;
1050
+ median: import("zod").ZodOptional<import("zod").ZodNumber>;
1051
+ sd: import("zod").ZodOptional<import("zod").ZodNumber>;
1052
+ min: import("zod").ZodOptional<import("zod").ZodString>;
1053
+ max: import("zod").ZodOptional<import("zod").ZodString>;
1054
+ studyCount: import("zod").ZodNumber;
1055
+ studyDbIds: import("zod").ZodArray<import("zod").ZodString>;
1056
+ seasons: import("zod").ZodArray<import("zod").ZodString>;
1057
+ }, import("zod/v4/core").$strip>>;
1058
+ warnings: import("zod").ZodArray<import("zod").ZodString>;
1059
+ }, import("zod/v4/core").$strip>, readonly [{
1060
+ readonly reason: "unknown_alias";
1061
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
1062
+ readonly when: "No connection has been registered under the requested alias";
1063
+ readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_germplasm_performance.";
1064
+ }, {
1065
+ readonly reason: "germplasm_not_found";
1066
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
1067
+ readonly when: "Upstream returned no germplasm record for the requested germplasmDbId";
1068
+ readonly recovery: "Verify the germplasmDbId on the target server, or run brapi_find_germplasm to discover valid IDs.";
1069
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
906
1070
  imageDbIds: import("zod").ZodArray<import("zod").ZodString>;
907
1071
  alias: import("zod").ZodOptional<import("zod").ZodString>;
908
1072
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -951,7 +1115,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
951
1115
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
952
1116
  readonly when: "BrAPI server does not advertise /images in /serverinfo";
953
1117
  readonly recovery: "Run brapi_server_info to inspect the advertised endpoints, or call brapi_connect with a different alias for a server that exposes /images.";
954
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
1118
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
955
1119
  alias: import("zod").ZodOptional<import("zod").ZodString>;
956
1120
  path: import("zod").ZodString;
957
1121
  params: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber, import("zod").ZodBoolean, import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber]>>]>>>;
@@ -989,7 +1153,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
989
1153
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
990
1154
  readonly when: "path argument was a full URL instead of a relative BrAPI route";
991
1155
  readonly recovery: "Pass a path like \"/samples\" or \"/methods\" — the connection alias supplies the baseUrl.";
992
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
1156
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
993
1157
  alias: import("zod").ZodOptional<import("zod").ZodString>;
994
1158
  noun: import("zod").ZodString;
995
1159
  body: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
@@ -1031,7 +1195,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
1031
1195
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
1032
1196
  readonly when: "The active dialect declares this POST /search/{noun} route as known-dead on this server";
1033
1197
  readonly recovery: "Use the curated find_* tool for this noun — it routes through GET filters instead and avoids the dead search route.";
1034
- }]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
1198
+ }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
1035
1199
  germplasmDbIds: import("zod").ZodArray<import("zod").ZodString>;
1036
1200
  direction: import("zod").ZodDefault<import("zod").ZodEnum<{
1037
1201
  both: "both";
@@ -1081,7 +1245,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
1081
1245
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
1082
1246
  readonly when: "No connection has been registered under the requested alias";
1083
1247
  readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_walk_pedigree.";
1084
- }]>)[];
1248
+ }], undefined>)[];
1085
1249
  /**
1086
1250
  * Drop tool — opt-in via `BRAPI_CANVAS_DROP_ENABLED`. Off by default; the
1087
1251
  * underlying canvas tables expire via TTL when left unmanaged, so explicit
@@ -1093,7 +1257,7 @@ export declare const dropToolDefinitions: import("@cyanheads/mcp-ts-core").ToolD
1093
1257
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1094
1258
  dataframe: import("zod").ZodString;
1095
1259
  dropped: import("zod").ZodBoolean;
1096
- }, import("zod/v4/core").$strip>, undefined>[];
1260
+ }, import("zod/v4/core").$strip>, undefined, undefined>[];
1097
1261
  /**
1098
1262
  * Export tool — gated by `BRAPI_EXPORT_DIR` (the opt-in) AND
1099
1263
  * `MCP_TRANSPORT_TYPE=stdio` (path output is meaningful only when the server
@@ -1145,7 +1309,7 @@ export declare const exportToolDefinitions: import("@cyanheads/mcp-ts-core").Too
1145
1309
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
1146
1310
  readonly when: "Both `columns` and `sql` were supplied";
1147
1311
  readonly recovery: "Pass either `columns` for a thin projection or `sql` for filtering/aggregation, not both.";
1148
- }]>[];
1312
+ }], undefined>[];
1149
1313
  /** Write tools — registered only when `BRAPI_ENABLE_WRITES=true`. */
1150
1314
  export declare const writeToolDefinitions: import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
1151
1315
  alias: import("zod").ZodOptional<import("zod").ZodString>;
@@ -1255,5 +1419,5 @@ export declare const writeToolDefinitions: import("@cyanheads/mcp-ts-core").Tool
1255
1419
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
1256
1420
  readonly when: "User declined the elicitation prompt for the apply write";
1257
1421
  readonly recovery: "Re-run the tool when the user is ready to confirm the write.";
1258
- }]>[];
1422
+ }], undefined>[];
1259
1423
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyBH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoBnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;8CAAuB,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAyB,CAAC;AAE5D,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;;;;;;;;;;;GAWG;AA4BH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;yDAAuB,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAAyB,CAAC;AAE5D,qEAAqE;AACrE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAA4B,CAAC"}