@cyanheads/brapi-mcp-server 0.4.13 → 0.5.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.
- package/CLAUDE.md +25 -19
- package/README.md +40 -26
- package/changelog/0.4.x/0.4.13.md +15 -0
- package/changelog/0.4.x/0.4.14.md +22 -0
- package/changelog/0.5.x/0.5.0.md +59 -0
- package/dist/config/builtin-aliases.d.ts +1 -1
- package/dist/config/builtin-aliases.js +1 -1
- package/dist/config/server-config.d.ts +3 -3
- package/dist/config/server-config.d.ts.map +1 -1
- package/dist/config/server-config.js +13 -13
- package/dist/config/server-config.js.map +1 -1
- package/dist/index.js +62 -15
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/prompts/definitions/brapi-eda-study.prompt.js +1 -1
- package/dist/mcp-server/prompts/definitions/brapi-eda-study.prompt.js.map +1 -1
- package/dist/mcp-server/prompts/definitions/brapi-meta-analysis.prompt.js +3 -3
- package/dist/mcp-server/prompts/definitions/brapi-meta-analysis.prompt.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts +8 -11
- package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.js +15 -25
- package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.d.ts +6 -10
- package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.js +6 -16
- package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts +69 -0
- package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.js +233 -0
- package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts +19 -11
- package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.js +80 -28
- package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts +4 -6
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js +28 -36
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts +3 -5
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js +21 -17
- package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts +4 -6
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js +16 -16
- package/dist/mcp-server/tools/definitions/brapi-find-images.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts +3 -5
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js +15 -15
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts +4 -6
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js +17 -17
- package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts +4 -6
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js +17 -17
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts +2 -4
- package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js +60 -19
- package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts +3 -5
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js +15 -15
- package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.js +6 -2
- package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts +17 -2
- package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.js +51 -7
- package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts +16 -2
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js +51 -5
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/index.d.ts +141 -165
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/index.js +28 -17
- package/dist/mcp-server/tools/definitions/index.js.map +1 -1
- package/dist/mcp-server/tools/shared/find-helpers.d.ts +79 -39
- package/dist/mcp-server/tools/shared/find-helpers.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/find-helpers.js +167 -70
- package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
- package/dist/mcp-server/tools/shared/raw-routing-hints.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/raw-routing-hints.js +6 -6
- package/dist/mcp-server/tools/shared/raw-routing-hints.js.map +1 -1
- package/dist/services/canvas-bridge/canvas-bridge.d.ts +69 -44
- package/dist/services/canvas-bridge/canvas-bridge.d.ts.map +1 -1
- package/dist/services/canvas-bridge/canvas-bridge.js +220 -103
- package/dist/services/canvas-bridge/canvas-bridge.js.map +1 -1
- package/dist/services/canvas-bridge/index.d.ts +1 -1
- package/dist/services/canvas-bridge/index.d.ts.map +1 -1
- package/dist/services/canvas-bridge/index.js +1 -1
- package/dist/services/canvas-bridge/index.js.map +1 -1
- package/dist/services/canvas-bridge/types.d.ts +11 -12
- package/dist/services/canvas-bridge/types.d.ts.map +1 -1
- package/dist/services/canvas-bridge/types.js +4 -4
- package/package.json +3 -11
- package/server.json +3 -3
- package/dist/mcp-server/resources/definitions/brapi-dataset.resource.d.ts +0 -13
- package/dist/mcp-server/resources/definitions/brapi-dataset.resource.d.ts.map +0 -1
- package/dist/mcp-server/resources/definitions/brapi-dataset.resource.js +0 -26
- package/dist/mcp-server/resources/definitions/brapi-dataset.resource.js.map +0 -1
- package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.d.ts +0 -89
- package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.d.ts.map +0 -1
- package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.js +0 -306
- package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.js.map +0 -1
- package/dist/services/dataset-store/dataset-store.d.ts +0 -44
- package/dist/services/dataset-store/dataset-store.d.ts.map +0 -1
- package/dist/services/dataset-store/dataset-store.js +0 -208
- package/dist/services/dataset-store/dataset-store.js.map +0 -1
- package/dist/services/dataset-store/index.d.ts +0 -8
- package/dist/services/dataset-store/index.d.ts.map +0 -1
- package/dist/services/dataset-store/index.js +0 -7
- package/dist/services/dataset-store/index.js.map +0 -1
- package/dist/services/dataset-store/types.d.ts +0 -72
- package/dist/services/dataset-store/types.d.ts.map +0 -1
- package/dist/services/dataset-store/types.js +0 -8
- package/dist/services/dataset-store/types.js.map +0 -1
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Tool registration barrel.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* @fileoverview Tool registration barrel. Splits definitions into four groups
|
|
3
|
+
* the entry point composes based on operator gates: read-only tools register
|
|
4
|
+
* unconditionally, `brapi_dataframe_drop` registers only when
|
|
5
|
+
* `BRAPI_CANVAS_DROP_ENABLED=true`, `brapi_dataframe_export` registers only
|
|
6
|
+
* when `BRAPI_EXPORT_DIR` is set AND `MCP_TRANSPORT_TYPE=stdio`, and
|
|
7
|
+
* `brapi_submit_observations` registers only when `BRAPI_ENABLE_WRITES=true`.
|
|
8
|
+
* Keeping the gating in `src/index.ts` keeps this module free of eager
|
|
9
|
+
* config reads.
|
|
10
|
+
*
|
|
6
11
|
* @module mcp-server/tools/definitions/index
|
|
7
12
|
*/
|
|
8
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Read-only tools registered unconditionally on every server. Includes
|
|
15
|
+
* `brapi_dataframe_describe` and `brapi_dataframe_query` — canvas is
|
|
16
|
+
* mandatory, so the discovery + read surface always registers.
|
|
17
|
+
*/
|
|
9
18
|
export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
10
19
|
endpoint: import("zod").ZodEnum<{
|
|
11
20
|
[x: string]: string;
|
|
@@ -292,6 +301,44 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
292
301
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Forbidden;
|
|
293
302
|
readonly when: "Token endpoint responded but did not return an access_token";
|
|
294
303
|
readonly recovery: "Confirm the credentials are valid and the upstream IdP issues access tokens for this grant.";
|
|
304
|
+
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
305
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
306
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
307
|
+
tables: import("zod").ZodArray<import("zod").ZodObject<{
|
|
308
|
+
name: import("zod").ZodString;
|
|
309
|
+
rowCount: import("zod").ZodNumber;
|
|
310
|
+
columns: import("zod").ZodArray<import("zod").ZodObject<{
|
|
311
|
+
name: import("zod").ZodString;
|
|
312
|
+
type: import("zod").ZodString;
|
|
313
|
+
nullable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
314
|
+
}, import("zod/v4/core").$strip>>;
|
|
315
|
+
approxSizeBytes: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
316
|
+
provenance: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
317
|
+
source: import("zod").ZodString;
|
|
318
|
+
baseUrl: import("zod").ZodString;
|
|
319
|
+
query: import("zod").ZodUnknown;
|
|
320
|
+
createdAt: import("zod").ZodString;
|
|
321
|
+
expiresAt: import("zod").ZodString;
|
|
322
|
+
}, import("zod/v4/core").$strip>>;
|
|
323
|
+
}, import("zod/v4/core").$strip>>;
|
|
324
|
+
}, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
325
|
+
sql: import("zod").ZodString;
|
|
326
|
+
registerAs: import("zod").ZodOptional<import("zod").ZodString>;
|
|
327
|
+
preview: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
328
|
+
rowLimit: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
329
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
330
|
+
rowCount: import("zod").ZodNumber;
|
|
331
|
+
columns: import("zod").ZodArray<import("zod").ZodObject<{
|
|
332
|
+
name: import("zod").ZodString;
|
|
333
|
+
type: import("zod").ZodString;
|
|
334
|
+
}, import("zod/v4/core").$strip>>;
|
|
335
|
+
rows: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
336
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
337
|
+
}, import("zod/v4/core").$strip>, readonly [{
|
|
338
|
+
readonly reason: "sql_rejected";
|
|
339
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
340
|
+
readonly when: "SQL violated read-only rules (multi-statement, non-SELECT, or disallowed operation)";
|
|
341
|
+
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.";
|
|
295
342
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
296
343
|
alias: import("zod").ZodOptional<import("zod").ZodString>;
|
|
297
344
|
variantSetDbId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -334,16 +381,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
334
381
|
variantName: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
|
|
335
382
|
variantSetDbId: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
|
|
336
383
|
}, import("zod/v4/core").$strip>;
|
|
337
|
-
|
|
338
|
-
|
|
384
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
385
|
+
tableName: import("zod").ZodString;
|
|
339
386
|
rowCount: import("zod").ZodNumber;
|
|
340
|
-
sizeBytes: import("zod").ZodNumber;
|
|
341
387
|
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
342
388
|
createdAt: import("zod").ZodString;
|
|
343
389
|
expiresAt: import("zod").ZodString;
|
|
344
390
|
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
345
391
|
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
346
|
-
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
347
392
|
}, import("zod/v4/core").$strip>>;
|
|
348
393
|
truncated: import("zod").ZodBoolean;
|
|
349
394
|
warnings: import("zod").ZodArray<import("zod").ZodString>;
|
|
@@ -407,16 +452,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
407
452
|
countryOfOriginCode: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
|
|
408
453
|
}, import("zod/v4/core").$strip>;
|
|
409
454
|
refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
|
|
410
|
-
|
|
411
|
-
|
|
455
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
456
|
+
tableName: import("zod").ZodString;
|
|
412
457
|
rowCount: import("zod").ZodNumber;
|
|
413
|
-
sizeBytes: import("zod").ZodNumber;
|
|
414
458
|
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
415
459
|
createdAt: import("zod").ZodString;
|
|
416
460
|
expiresAt: import("zod").ZodString;
|
|
417
461
|
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
418
462
|
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
419
|
-
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
420
463
|
}, import("zod/v4/core").$strip>>;
|
|
421
464
|
warnings: import("zod").ZodArray<import("zod").ZodString>;
|
|
422
465
|
appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
@@ -467,16 +510,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
467
510
|
descriptiveOntologyTerms: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
|
|
468
511
|
}, import("zod/v4/core").$strip>;
|
|
469
512
|
refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
|
|
470
|
-
|
|
471
|
-
|
|
513
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
514
|
+
tableName: import("zod").ZodString;
|
|
472
515
|
rowCount: import("zod").ZodNumber;
|
|
473
|
-
sizeBytes: import("zod").ZodNumber;
|
|
474
516
|
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
475
517
|
createdAt: import("zod").ZodString;
|
|
476
518
|
expiresAt: import("zod").ZodString;
|
|
477
519
|
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
478
520
|
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
479
|
-
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
480
521
|
}, import("zod/v4/core").$strip>>;
|
|
481
522
|
warnings: import("zod").ZodArray<import("zod").ZodString>;
|
|
482
523
|
appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
@@ -525,16 +566,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
525
566
|
locationType: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
|
|
526
567
|
}, import("zod/v4/core").$strip>;
|
|
527
568
|
refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
|
|
528
|
-
|
|
529
|
-
|
|
569
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
570
|
+
tableName: import("zod").ZodString;
|
|
530
571
|
rowCount: import("zod").ZodNumber;
|
|
531
|
-
sizeBytes: import("zod").ZodNumber;
|
|
532
572
|
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
533
573
|
createdAt: import("zod").ZodString;
|
|
534
574
|
expiresAt: import("zod").ZodString;
|
|
535
575
|
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
536
576
|
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
537
|
-
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
538
577
|
}, import("zod/v4/core").$strip>>;
|
|
539
578
|
warnings: import("zod").ZodArray<import("zod").ZodString>;
|
|
540
579
|
appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
@@ -597,16 +636,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
597
636
|
season: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
|
|
598
637
|
}, import("zod/v4/core").$strip>;
|
|
599
638
|
refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
|
|
600
|
-
|
|
601
|
-
|
|
639
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
640
|
+
tableName: import("zod").ZodString;
|
|
602
641
|
rowCount: import("zod").ZodNumber;
|
|
603
|
-
sizeBytes: import("zod").ZodNumber;
|
|
604
642
|
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
605
643
|
createdAt: import("zod").ZodString;
|
|
606
644
|
expiresAt: import("zod").ZodString;
|
|
607
645
|
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
608
646
|
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
609
|
-
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
610
647
|
}, import("zod/v4/core").$strip>>;
|
|
611
648
|
warnings: import("zod").ZodArray<import("zod").ZodString>;
|
|
612
649
|
appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
@@ -659,16 +696,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
659
696
|
commonCropName: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
|
|
660
697
|
}, import("zod/v4/core").$strip>;
|
|
661
698
|
refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
|
|
662
|
-
|
|
663
|
-
|
|
699
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
700
|
+
tableName: import("zod").ZodString;
|
|
664
701
|
rowCount: import("zod").ZodNumber;
|
|
665
|
-
sizeBytes: import("zod").ZodNumber;
|
|
666
702
|
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
667
703
|
createdAt: import("zod").ZodString;
|
|
668
704
|
expiresAt: import("zod").ZodString;
|
|
669
705
|
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
670
706
|
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
671
|
-
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
672
707
|
}, import("zod/v4/core").$strip>>;
|
|
673
708
|
warnings: import("zod").ZodArray<import("zod").ZodString>;
|
|
674
709
|
appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
@@ -740,16 +775,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
740
775
|
}>;
|
|
741
776
|
}, import("zod/v4/core").$strip>>;
|
|
742
777
|
refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
|
|
743
|
-
|
|
744
|
-
|
|
778
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
779
|
+
tableName: import("zod").ZodString;
|
|
745
780
|
rowCount: import("zod").ZodNumber;
|
|
746
|
-
sizeBytes: import("zod").ZodNumber;
|
|
747
781
|
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
748
782
|
createdAt: import("zod").ZodString;
|
|
749
783
|
expiresAt: import("zod").ZodString;
|
|
750
784
|
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
751
785
|
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
752
|
-
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
753
786
|
}, import("zod/v4/core").$strip>>;
|
|
754
787
|
warnings: import("zod").ZodArray<import("zod").ZodString>;
|
|
755
788
|
appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
@@ -794,16 +827,14 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
794
827
|
variantSetDbId: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
|
|
795
828
|
}, import("zod/v4/core").$strip>;
|
|
796
829
|
refinementHint: import("zod").ZodOptional<import("zod").ZodString>;
|
|
797
|
-
|
|
798
|
-
|
|
830
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
831
|
+
tableName: import("zod").ZodString;
|
|
799
832
|
rowCount: import("zod").ZodNumber;
|
|
800
|
-
sizeBytes: import("zod").ZodNumber;
|
|
801
833
|
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
802
834
|
createdAt: import("zod").ZodString;
|
|
803
835
|
expiresAt: import("zod").ZodString;
|
|
804
836
|
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
805
837
|
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
806
|
-
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
807
838
|
}, import("zod/v4/core").$strip>>;
|
|
808
839
|
warnings: import("zod").ZodArray<import("zod").ZodString>;
|
|
809
840
|
appliedFilters: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
@@ -856,85 +887,11 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
856
887
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
857
888
|
readonly when: "BrAPI server does not advertise /images in /serverinfo";
|
|
858
889
|
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.";
|
|
859
|
-
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
860
|
-
mode: import("zod").ZodEnum<{
|
|
861
|
-
delete: "delete";
|
|
862
|
-
list: "list";
|
|
863
|
-
summary: "summary";
|
|
864
|
-
load: "load";
|
|
865
|
-
}>;
|
|
866
|
-
datasetId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
867
|
-
cursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
868
|
-
limit: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
869
|
-
page: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
870
|
-
pageSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
871
|
-
columns: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
872
|
-
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
873
|
-
result: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
874
|
-
mode: import("zod").ZodLiteral<"list">;
|
|
875
|
-
datasets: import("zod").ZodArray<import("zod").ZodObject<{
|
|
876
|
-
datasetId: import("zod").ZodString;
|
|
877
|
-
source: import("zod").ZodString;
|
|
878
|
-
baseUrl: import("zod").ZodString;
|
|
879
|
-
query: import("zod").ZodUnknown;
|
|
880
|
-
rowCount: import("zod").ZodNumber;
|
|
881
|
-
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
882
|
-
sizeBytes: import("zod").ZodNumber;
|
|
883
|
-
createdAt: import("zod").ZodString;
|
|
884
|
-
expiresAt: import("zod").ZodString;
|
|
885
|
-
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
886
|
-
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
887
|
-
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
888
|
-
}, import("zod/v4/core").$strip>>;
|
|
889
|
-
cursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
890
|
-
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
891
|
-
mode: import("zod").ZodLiteral<"summary">;
|
|
892
|
-
dataset: import("zod").ZodObject<{
|
|
893
|
-
datasetId: import("zod").ZodString;
|
|
894
|
-
source: import("zod").ZodString;
|
|
895
|
-
baseUrl: import("zod").ZodString;
|
|
896
|
-
query: import("zod").ZodUnknown;
|
|
897
|
-
rowCount: import("zod").ZodNumber;
|
|
898
|
-
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
899
|
-
sizeBytes: import("zod").ZodNumber;
|
|
900
|
-
createdAt: import("zod").ZodString;
|
|
901
|
-
expiresAt: import("zod").ZodString;
|
|
902
|
-
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
903
|
-
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
904
|
-
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
905
|
-
}, import("zod/v4/core").$strip>;
|
|
906
|
-
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
907
|
-
mode: import("zod").ZodLiteral<"load">;
|
|
908
|
-
datasetId: import("zod").ZodString;
|
|
909
|
-
page: import("zod").ZodNumber;
|
|
910
|
-
pageSize: import("zod").ZodNumber;
|
|
911
|
-
totalRows: import("zod").ZodNumber;
|
|
912
|
-
totalPages: import("zod").ZodNumber;
|
|
913
|
-
rows: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
914
|
-
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
915
|
-
mode: import("zod").ZodLiteral<"delete">;
|
|
916
|
-
datasetId: import("zod").ZodString;
|
|
917
|
-
deleted: import("zod").ZodLiteral<true>;
|
|
918
|
-
}, import("zod/v4/core").$strip>], "mode">;
|
|
919
|
-
}, import("zod/v4/core").$strip>, readonly [{
|
|
920
|
-
readonly reason: "datasetid_required";
|
|
921
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
922
|
-
readonly when: "Mode summary, load, or delete was selected without a datasetId";
|
|
923
|
-
readonly recovery: "Call mode=list first to discover available dataset IDs, then retry with one.";
|
|
924
|
-
}, {
|
|
925
|
-
readonly reason: "dataset_not_found";
|
|
926
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
927
|
-
readonly when: "Requested dataset is not present in the store (never existed or already expired)";
|
|
928
|
-
readonly recovery: "Run mode=list to confirm available datasets, or rerun the find_* tool that produced it.";
|
|
929
|
-
}, {
|
|
930
|
-
readonly reason: "dataset_rows_missing";
|
|
931
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
932
|
-
readonly when: "Dataset metadata is present but the row payload was lost or partially expired";
|
|
933
|
-
readonly recovery: "Delete the stale dataset via mode=delete and rerun the find_* tool that produced it.";
|
|
934
890
|
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
935
891
|
alias: import("zod").ZodOptional<import("zod").ZodString>;
|
|
936
892
|
path: import("zod").ZodString;
|
|
937
893
|
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]>>]>>>;
|
|
894
|
+
loadLimit: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
938
895
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
939
896
|
alias: import("zod").ZodString;
|
|
940
897
|
url: import("zod").ZodString;
|
|
@@ -949,6 +906,15 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
949
906
|
}, import("zod/v4/core").$loose>;
|
|
950
907
|
result: import("zod").ZodUnknown;
|
|
951
908
|
suggestion: import("zod").ZodOptional<import("zod").ZodString>;
|
|
909
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
910
|
+
tableName: import("zod").ZodString;
|
|
911
|
+
rowCount: import("zod").ZodNumber;
|
|
912
|
+
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
913
|
+
createdAt: import("zod").ZodString;
|
|
914
|
+
expiresAt: import("zod").ZodString;
|
|
915
|
+
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
916
|
+
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
917
|
+
}, import("zod/v4/core").$strip>>;
|
|
952
918
|
}, import("zod/v4/core").$strip>, readonly [{
|
|
953
919
|
readonly reason: "cross_origin_path";
|
|
954
920
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
@@ -958,6 +924,7 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
958
924
|
alias: import("zod").ZodOptional<import("zod").ZodString>;
|
|
959
925
|
noun: import("zod").ZodString;
|
|
960
926
|
body: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
927
|
+
loadLimit: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
961
928
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
962
929
|
alias: import("zod").ZodString;
|
|
963
930
|
noun: import("zod").ZodString;
|
|
@@ -976,6 +943,15 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
976
943
|
}, import("zod/v4/core").$loose>;
|
|
977
944
|
result: import("zod").ZodUnknown;
|
|
978
945
|
suggestion: import("zod").ZodOptional<import("zod").ZodString>;
|
|
946
|
+
dataframe: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
947
|
+
tableName: import("zod").ZodString;
|
|
948
|
+
rowCount: import("zod").ZodNumber;
|
|
949
|
+
columns: import("zod").ZodArray<import("zod").ZodString>;
|
|
950
|
+
createdAt: import("zod").ZodString;
|
|
951
|
+
expiresAt: import("zod").ZodString;
|
|
952
|
+
truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
953
|
+
maxRows: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
954
|
+
}, import("zod/v4/core").$strip>>;
|
|
979
955
|
}, import("zod/v4/core").$strip>, readonly [{
|
|
980
956
|
readonly reason: "search_endpoint_disabled";
|
|
981
957
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
@@ -1022,69 +998,69 @@ export declare const readOnlyToolDefinitions: (import("@cyanheads/mcp-ts-core").
|
|
|
1022
998
|
warnings: import("zod").ZodArray<import("zod").ZodString>;
|
|
1023
999
|
}, import("zod/v4/core").$strip>, undefined>)[];
|
|
1024
1000
|
/**
|
|
1025
|
-
*
|
|
1026
|
-
*
|
|
1027
|
-
*
|
|
1028
|
-
*
|
|
1029
|
-
* use.
|
|
1001
|
+
* Drop tool — opt-in via `BRAPI_CANVAS_DROP_ENABLED`. Off by default; the
|
|
1002
|
+
* underlying canvas tables expire via TTL when left unmanaged, so explicit
|
|
1003
|
+
* drop is only needed when the operator wants to free workspace memory
|
|
1004
|
+
* immediately.
|
|
1030
1005
|
*/
|
|
1031
|
-
export declare const
|
|
1032
|
-
dataframe: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1033
|
-
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
1034
|
-
tables: import("zod").ZodArray<import("zod").ZodObject<{
|
|
1035
|
-
name: import("zod").ZodString;
|
|
1036
|
-
rowCount: import("zod").ZodNumber;
|
|
1037
|
-
columns: import("zod").ZodArray<import("zod").ZodObject<{
|
|
1038
|
-
name: import("zod").ZodString;
|
|
1039
|
-
type: import("zod").ZodString;
|
|
1040
|
-
nullable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
1041
|
-
}, import("zod/v4/core").$strip>>;
|
|
1042
|
-
approxSizeBytes: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
1043
|
-
provenance: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
1044
|
-
datasetId: import("zod").ZodString;
|
|
1045
|
-
source: import("zod").ZodString;
|
|
1046
|
-
baseUrl: import("zod").ZodString;
|
|
1047
|
-
query: import("zod").ZodUnknown;
|
|
1048
|
-
createdAt: import("zod").ZodString;
|
|
1049
|
-
expiresAt: import("zod").ZodString;
|
|
1050
|
-
}, import("zod/v4/core").$strip>>;
|
|
1051
|
-
}, import("zod/v4/core").$strip>>;
|
|
1052
|
-
}, import("zod/v4/core").$strip>, readonly [{
|
|
1053
|
-
readonly reason: "dataframe_disabled";
|
|
1054
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
|
|
1055
|
-
readonly when: "Dataframe surface is not enabled on this deployment";
|
|
1056
|
-
readonly recovery: "Use brapi_manage_dataset (mode=list) to enumerate datasets directly — the dataframe surface is gated off here.";
|
|
1057
|
-
}]> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
1006
|
+
export declare const dropToolDefinitions: import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
1058
1007
|
dataframe: import("zod").ZodString;
|
|
1059
1008
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
1060
1009
|
dataframe: import("zod").ZodString;
|
|
1061
1010
|
dropped: import("zod").ZodBoolean;
|
|
1062
|
-
}, import("zod/v4/core").$strip>,
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1011
|
+
}, import("zod/v4/core").$strip>, undefined>[];
|
|
1012
|
+
/**
|
|
1013
|
+
* Export tool — gated by `BRAPI_EXPORT_DIR` (the opt-in) AND
|
|
1014
|
+
* `MCP_TRANSPORT_TYPE=stdio` (path output is meaningful only when the server
|
|
1015
|
+
* runs on the user's machine). Both checks live in `src/index.ts`.
|
|
1016
|
+
*/
|
|
1017
|
+
export declare const exportToolDefinitions: import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
1018
|
+
dataframe: import("zod").ZodString;
|
|
1019
|
+
format: import("zod").ZodEnum<{
|
|
1020
|
+
csv: "csv";
|
|
1021
|
+
parquet: "parquet";
|
|
1022
|
+
json: "json";
|
|
1023
|
+
}>;
|
|
1024
|
+
filename: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1025
|
+
columns: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
1026
|
+
sql: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1072
1027
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
1028
|
+
dataframe: import("zod").ZodString;
|
|
1029
|
+
format: import("zod").ZodEnum<{
|
|
1030
|
+
csv: "csv";
|
|
1031
|
+
parquet: "parquet";
|
|
1032
|
+
json: "json";
|
|
1033
|
+
}>;
|
|
1034
|
+
path: import("zod").ZodString;
|
|
1035
|
+
filename: import("zod").ZodString;
|
|
1036
|
+
sizeBytes: import("zod").ZodNumber;
|
|
1073
1037
|
rowCount: import("zod").ZodNumber;
|
|
1074
|
-
columns: import("zod").ZodArray<import("zod").
|
|
1075
|
-
|
|
1076
|
-
|
|
1038
|
+
columns: import("zod").ZodArray<import("zod").ZodObject<{
|
|
1039
|
+
name: import("zod").ZodString;
|
|
1040
|
+
type: import("zod").ZodString;
|
|
1041
|
+
}, import("zod/v4/core").$strip>>;
|
|
1042
|
+
expiresAt: import("zod").ZodString;
|
|
1077
1043
|
}, import("zod/v4/core").$strip>, readonly [{
|
|
1078
|
-
readonly reason: "
|
|
1079
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.
|
|
1080
|
-
readonly when: "
|
|
1081
|
-
readonly recovery: "
|
|
1044
|
+
readonly reason: "export_dir_unset";
|
|
1045
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ConfigurationError;
|
|
1046
|
+
readonly when: "BRAPI_EXPORT_DIR is not configured (defensive — the registration gate normally hides the tool when this happens)";
|
|
1047
|
+
readonly recovery: "Set BRAPI_EXPORT_DIR on the server before retrying.";
|
|
1082
1048
|
}, {
|
|
1083
|
-
readonly reason: "
|
|
1049
|
+
readonly reason: "dataframe_not_found";
|
|
1050
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
1051
|
+
readonly when: "No dataframe with this name exists on the canvas (expired, dropped, or typo)";
|
|
1052
|
+
readonly recovery: "Call brapi_dataframe_describe to list available dataframes.";
|
|
1053
|
+
}, {
|
|
1054
|
+
readonly reason: "invalid_filename";
|
|
1084
1055
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
1085
|
-
readonly when: "
|
|
1086
|
-
readonly recovery: "
|
|
1087
|
-
}
|
|
1056
|
+
readonly when: "filename contains path separators or traversal segments";
|
|
1057
|
+
readonly recovery: "Provide a filename without \"/\", \"\\\", or \"..\" — leave it unset to use the default.";
|
|
1058
|
+
}, {
|
|
1059
|
+
readonly reason: "mutually_exclusive_projection";
|
|
1060
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
1061
|
+
readonly when: "Both `columns` and `sql` were supplied";
|
|
1062
|
+
readonly recovery: "Pass either `columns` for a thin projection or `sql` for filtering/aggregation, not both.";
|
|
1063
|
+
}]>[];
|
|
1088
1064
|
/** Write tools — registered only when `BRAPI_ENABLE_WRITES=true`. */
|
|
1089
1065
|
export declare const writeToolDefinitions: import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
1090
1066
|
alias: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAoBnC,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,13 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview Tool registration barrel.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* @fileoverview Tool registration barrel. Splits definitions into four groups
|
|
3
|
+
* the entry point composes based on operator gates: read-only tools register
|
|
4
|
+
* unconditionally, `brapi_dataframe_drop` registers only when
|
|
5
|
+
* `BRAPI_CANVAS_DROP_ENABLED=true`, `brapi_dataframe_export` registers only
|
|
6
|
+
* when `BRAPI_EXPORT_DIR` is set AND `MCP_TRANSPORT_TYPE=stdio`, and
|
|
7
|
+
* `brapi_submit_observations` registers only when `BRAPI_ENABLE_WRITES=true`.
|
|
8
|
+
* Keeping the gating in `src/index.ts` keeps this module free of eager
|
|
9
|
+
* config reads.
|
|
10
|
+
*
|
|
6
11
|
* @module mcp-server/tools/definitions/index
|
|
7
12
|
*/
|
|
8
13
|
import { brapiConnect } from './brapi-connect.tool.js';
|
|
9
14
|
import { brapiDataframeDescribe } from './brapi-dataframe-describe.tool.js';
|
|
10
15
|
import { brapiDataframeDrop } from './brapi-dataframe-drop.tool.js';
|
|
16
|
+
import { brapiDataframeExport } from './brapi-dataframe-export.tool.js';
|
|
11
17
|
import { brapiDataframeQuery } from './brapi-dataframe-query.tool.js';
|
|
12
18
|
import { brapiDescribeFilters } from './brapi-describe-filters.tool.js';
|
|
13
19
|
import { brapiFindGenotypeCalls } from './brapi-find-genotype-calls.tool.js';
|
|
@@ -21,13 +27,16 @@ import { brapiFindVariants } from './brapi-find-variants.tool.js';
|
|
|
21
27
|
import { brapiGetGermplasm } from './brapi-get-germplasm.tool.js';
|
|
22
28
|
import { brapiGetImage } from './brapi-get-image.tool.js';
|
|
23
29
|
import { brapiGetStudy } from './brapi-get-study.tool.js';
|
|
24
|
-
import { brapiManageDataset } from './brapi-manage-dataset.tool.js';
|
|
25
30
|
import { brapiRawGet } from './brapi-raw-get.tool.js';
|
|
26
31
|
import { brapiRawSearch } from './brapi-raw-search.tool.js';
|
|
27
32
|
import { brapiServerInfo } from './brapi-server-info.tool.js';
|
|
28
33
|
import { brapiSubmitObservations } from './brapi-submit-observations.tool.js';
|
|
29
34
|
import { brapiWalkPedigree } from './brapi-walk-pedigree.tool.js';
|
|
30
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Read-only tools registered unconditionally on every server. Includes
|
|
37
|
+
* `brapi_dataframe_describe` and `brapi_dataframe_query` — canvas is
|
|
38
|
+
* mandatory, so the discovery + read surface always registers.
|
|
39
|
+
*/
|
|
31
40
|
export const readOnlyToolDefinitions = [
|
|
32
41
|
brapiConnect,
|
|
33
42
|
brapiServerInfo,
|
|
@@ -44,22 +53,24 @@ export const readOnlyToolDefinitions = [
|
|
|
44
53
|
brapiFindLocations,
|
|
45
54
|
brapiFindVariants,
|
|
46
55
|
brapiFindGenotypeCalls,
|
|
47
|
-
|
|
56
|
+
brapiDataframeDescribe,
|
|
57
|
+
brapiDataframeQuery,
|
|
48
58
|
brapiRawGet,
|
|
49
59
|
brapiRawSearch,
|
|
50
60
|
];
|
|
51
61
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* use.
|
|
62
|
+
* Drop tool — opt-in via `BRAPI_CANVAS_DROP_ENABLED`. Off by default; the
|
|
63
|
+
* underlying canvas tables expire via TTL when left unmanaged, so explicit
|
|
64
|
+
* drop is only needed when the operator wants to free workspace memory
|
|
65
|
+
* immediately.
|
|
57
66
|
*/
|
|
58
|
-
export const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
67
|
+
export const dropToolDefinitions = [brapiDataframeDrop];
|
|
68
|
+
/**
|
|
69
|
+
* Export tool — gated by `BRAPI_EXPORT_DIR` (the opt-in) AND
|
|
70
|
+
* `MCP_TRANSPORT_TYPE=stdio` (path output is meaningful only when the server
|
|
71
|
+
* runs on the user's machine). Both checks live in `src/index.ts`.
|
|
72
|
+
*/
|
|
73
|
+
export const exportToolDefinitions = [brapiDataframeExport];
|
|
63
74
|
/** Write tools — registered only when `BRAPI_ENABLE_WRITES=true`. */
|
|
64
75
|
export const writeToolDefinitions = [brapiSubmitObservations];
|
|
65
76
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,qBAAqB;IACrB,eAAe;IACf,aAAa;IACb,kBAAkB;IAClB,iBAAiB;IACjB,sBAAsB;IACtB,sBAAsB;IACtB,mBAAmB;IACnB,WAAW;IACX,cAAc;CACf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAE5D,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,uBAAuB,CAAC,CAAC"}
|