@cyanheads/brapi-mcp-server 0.4.14 → 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.
Files changed (115) hide show
  1. package/CLAUDE.md +23 -19
  2. package/README.md +40 -26
  3. package/changelog/0.5.x/0.5.0.md +59 -0
  4. package/dist/config/builtin-aliases.d.ts +1 -1
  5. package/dist/config/builtin-aliases.js +1 -1
  6. package/dist/config/server-config.d.ts +3 -3
  7. package/dist/config/server-config.d.ts.map +1 -1
  8. package/dist/config/server-config.js +13 -13
  9. package/dist/config/server-config.js.map +1 -1
  10. package/dist/index.js +62 -15
  11. package/dist/index.js.map +1 -1
  12. package/dist/mcp-server/prompts/definitions/brapi-eda-study.prompt.js +1 -1
  13. package/dist/mcp-server/prompts/definitions/brapi-eda-study.prompt.js.map +1 -1
  14. package/dist/mcp-server/prompts/definitions/brapi-meta-analysis.prompt.js +3 -3
  15. package/dist/mcp-server/prompts/definitions/brapi-meta-analysis.prompt.js.map +1 -1
  16. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts +8 -11
  17. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.js +15 -25
  19. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.js.map +1 -1
  20. package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.d.ts +6 -10
  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-drop.tool.js +6 -16
  23. package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts +69 -0
  25. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts.map +1 -0
  26. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.js +233 -0
  27. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.js.map +1 -0
  28. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts +19 -11
  29. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts.map +1 -1
  30. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.js +80 -28
  31. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.js.map +1 -1
  32. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts +4 -6
  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 +28 -36
  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 +3 -5
  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 +19 -19
  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 +4 -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 +16 -16
  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 +3 -5
  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 +15 -15
  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 +4 -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 +17 -17
  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 +4 -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 +17 -17
  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 +2 -4
  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 +17 -17
  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 +3 -5
  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 +15 -15
  63. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.js.map +1 -1
  64. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts +17 -2
  65. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts.map +1 -1
  66. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.js +51 -7
  67. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.js.map +1 -1
  68. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts +16 -2
  69. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts.map +1 -1
  70. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js +51 -5
  71. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js.map +1 -1
  72. package/dist/mcp-server/tools/definitions/index.d.ts +141 -165
  73. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  74. package/dist/mcp-server/tools/definitions/index.js +28 -17
  75. package/dist/mcp-server/tools/definitions/index.js.map +1 -1
  76. package/dist/mcp-server/tools/shared/find-helpers.d.ts +52 -41
  77. package/dist/mcp-server/tools/shared/find-helpers.d.ts.map +1 -1
  78. package/dist/mcp-server/tools/shared/find-helpers.js +89 -66
  79. package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
  80. package/dist/mcp-server/tools/shared/raw-routing-hints.d.ts.map +1 -1
  81. package/dist/mcp-server/tools/shared/raw-routing-hints.js +6 -6
  82. package/dist/mcp-server/tools/shared/raw-routing-hints.js.map +1 -1
  83. package/dist/services/canvas-bridge/canvas-bridge.d.ts +69 -44
  84. package/dist/services/canvas-bridge/canvas-bridge.d.ts.map +1 -1
  85. package/dist/services/canvas-bridge/canvas-bridge.js +143 -112
  86. package/dist/services/canvas-bridge/canvas-bridge.js.map +1 -1
  87. package/dist/services/canvas-bridge/index.d.ts +1 -1
  88. package/dist/services/canvas-bridge/index.d.ts.map +1 -1
  89. package/dist/services/canvas-bridge/index.js +1 -1
  90. package/dist/services/canvas-bridge/index.js.map +1 -1
  91. package/dist/services/canvas-bridge/types.d.ts +11 -12
  92. package/dist/services/canvas-bridge/types.d.ts.map +1 -1
  93. package/dist/services/canvas-bridge/types.js +4 -4
  94. package/package.json +3 -11
  95. package/server.json +3 -3
  96. package/dist/mcp-server/resources/definitions/brapi-dataset.resource.d.ts +0 -13
  97. package/dist/mcp-server/resources/definitions/brapi-dataset.resource.d.ts.map +0 -1
  98. package/dist/mcp-server/resources/definitions/brapi-dataset.resource.js +0 -26
  99. package/dist/mcp-server/resources/definitions/brapi-dataset.resource.js.map +0 -1
  100. package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.d.ts +0 -89
  101. package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.d.ts.map +0 -1
  102. package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.js +0 -306
  103. package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.js.map +0 -1
  104. package/dist/services/dataset-store/dataset-store.d.ts +0 -44
  105. package/dist/services/dataset-store/dataset-store.d.ts.map +0 -1
  106. package/dist/services/dataset-store/dataset-store.js +0 -208
  107. package/dist/services/dataset-store/dataset-store.js.map +0 -1
  108. package/dist/services/dataset-store/index.d.ts +0 -8
  109. package/dist/services/dataset-store/index.d.ts.map +0 -1
  110. package/dist/services/dataset-store/index.js +0 -7
  111. package/dist/services/dataset-store/index.js.map +0 -1
  112. package/dist/services/dataset-store/types.d.ts +0 -72
  113. package/dist/services/dataset-store/types.d.ts.map +0 -1
  114. package/dist/services/dataset-store/types.js +0 -8
  115. package/dist/services/dataset-store/types.js.map +0 -1
@@ -1,8 +1,13 @@
1
1
  /**
2
2
  * @fileoverview `brapi_raw_get` — last-resort passthrough to any BrAPI GET
3
3
  * endpoint the goal-shaped tools don't cover (e.g. `/samples`, `/methods`,
4
- * `/scales`, `/crosses`). Returns the raw upstream envelope, plus a routing
5
- * nudge when the target endpoint is actually covered by a curated tool.
4
+ * `/scales`, `/crosses`). Returns the raw upstream envelope plus a routing
5
+ * nudge when the target endpoint is covered by a curated tool, and spills
6
+ * to a canvas dataframe when the upstream advertises more rows than fit
7
+ * in `loadLimit` AND the result is a list shape (`result` array or BrAPI
8
+ * `result.data` envelope). Spillover is skipped when the caller drives
9
+ * paging via `params.page` / `params.pageSize` — they're explicitly walking
10
+ * the result themselves and we don't second-guess.
6
11
  *
7
12
  * @module mcp-server/tools/definitions/brapi-raw-get.tool
8
13
  */
@@ -12,6 +17,7 @@ export declare const brapiRawGet: import("@cyanheads/mcp-ts-core").ToolDefinitio
12
17
  alias: z.ZodOptional<z.ZodString>;
13
18
  path: z.ZodString;
14
19
  params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>]>>>;
20
+ loadLimit: z.ZodOptional<z.ZodNumber>;
15
21
  }, z.core.$strip>, z.ZodObject<{
16
22
  alias: z.ZodString;
17
23
  url: z.ZodString;
@@ -26,6 +32,15 @@ export declare const brapiRawGet: import("@cyanheads/mcp-ts-core").ToolDefinitio
26
32
  }, z.core.$loose>;
27
33
  result: z.ZodUnknown;
28
34
  suggestion: z.ZodOptional<z.ZodString>;
35
+ dataframe: z.ZodOptional<z.ZodObject<{
36
+ tableName: z.ZodString;
37
+ rowCount: z.ZodNumber;
38
+ columns: z.ZodArray<z.ZodString>;
39
+ createdAt: z.ZodString;
40
+ expiresAt: z.ZodString;
41
+ truncated: z.ZodOptional<z.ZodBoolean>;
42
+ maxRows: z.ZodOptional<z.ZodNumber>;
43
+ }, z.core.$strip>>;
29
44
  }, z.core.$strip>, readonly [{
30
45
  readonly reason: "cross_origin_path";
31
46
  readonly code: JsonRpcErrorCode.ValidationError;
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-raw-get.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-get.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA0CjE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;GAuFtB,CAAC"}
1
+ {"version":3,"file":"brapi-raw-get.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-get.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAuDjE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8HtB,CAAC"}
@@ -1,16 +1,23 @@
1
1
  /**
2
2
  * @fileoverview `brapi_raw_get` — last-resort passthrough to any BrAPI GET
3
3
  * endpoint the goal-shaped tools don't cover (e.g. `/samples`, `/methods`,
4
- * `/scales`, `/crosses`). Returns the raw upstream envelope, plus a routing
5
- * nudge when the target endpoint is actually covered by a curated tool.
4
+ * `/scales`, `/crosses`). Returns the raw upstream envelope plus a routing
5
+ * nudge when the target endpoint is covered by a curated tool, and spills
6
+ * to a canvas dataframe when the upstream advertises more rows than fit
7
+ * in `loadLimit` AND the result is a list shape (`result` array or BrAPI
8
+ * `result.data` envelope). Spillover is skipped when the caller drives
9
+ * paging via `params.page` / `params.pageSize` — they're explicitly walking
10
+ * the result themselves and we don't second-guess.
6
11
  *
7
12
  * @module mcp-server/tools/definitions/brapi-raw-get.tool
8
13
  */
9
14
  import { tool, z } from '@cyanheads/mcp-ts-core';
10
15
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
16
+ import { getServerConfig } from '../../../config/server-config.js';
11
17
  import { getBrapiClient, } from '../../../services/brapi-client/index.js';
18
+ import { getCanvasBridge } from '../../../services/canvas-bridge/index.js';
12
19
  import { DEFAULT_ALIAS, getServerRegistry } from '../../../services/server-registry/index.js';
13
- import { AliasInput } from '../shared/find-helpers.js';
20
+ import { AliasInput, DataframeHandleSchema, extractListRows, LoadLimitInput, renderDataframeHandle, spillToCanvas, toDataframeHandle, } from '../shared/find-helpers.js';
14
21
  import { suggestForGet } from '../shared/raw-routing-hints.js';
15
22
  const PaginationSchema = z
16
23
  .object({
@@ -39,9 +46,10 @@ const OutputSchema = z.object({
39
46
  .string()
40
47
  .optional()
41
48
  .describe('Emitted when a curated goal-shaped tool covers this endpoint.'),
49
+ dataframe: DataframeHandleSchema.optional().describe('Present when the upstream advertised more rows than `loadLimit` AND the result is a list shape. The inline `result` is unchanged; the dataframe carries the full union of pages — query with brapi_dataframe_query.'),
42
50
  });
43
51
  export const brapiRawGet = tool('brapi_raw_get', {
44
- description: 'Passthrough to any BrAPI GET /{path} endpoint. Returns the raw upstream envelope without enrichment or foreign-key resolution. Emits a `suggestion` field when a curated tool exists for the same data.',
52
+ description: 'Passthrough to any BrAPI GET /{path} endpoint. Returns the raw upstream envelope without enrichment or foreign-key resolution. Emits a `suggestion` field when a curated tool exists for the same data. Spills to a canvas dataframe when the upstream advertises more rows than `loadLimit` AND the result is a list shape (`result` array or `result.data` envelope); inline `result` is unchanged. Skips spillover when the caller drives paging via `params.page` / `params.pageSize`.',
45
53
  annotations: { readOnlyHint: true, openWorldHint: true },
46
54
  errors: [
47
55
  {
@@ -61,11 +69,14 @@ export const brapiRawGet = tool('brapi_raw_get', {
61
69
  .record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.array(z.union([z.string(), z.number()]))]))
62
70
  .optional()
63
71
  .describe('Query parameters to append. Arrays are repeated per BrAPI convention.'),
72
+ loadLimit: LoadLimitInput,
64
73
  }),
65
74
  output: OutputSchema,
66
75
  async handler(input, ctx) {
67
76
  const registry = getServerRegistry();
68
77
  const client = getBrapiClient();
78
+ const bridge = getCanvasBridge();
79
+ const config = getServerConfig();
69
80
  const connection = await registry.get(ctx, input.alias ?? DEFAULT_ALIAS);
70
81
  // The path is appended to the registered baseUrl; if the caller smuggles a
71
82
  // full URL (http://evil/...) `new URL()` would silently hijack the request.
@@ -76,12 +87,18 @@ export const brapiRawGet = tool('brapi_raw_get', {
76
87
  });
77
88
  }
78
89
  const path = normalizePath(input.path);
90
+ const loadLimit = input.loadLimit ?? config.loadLimit;
91
+ // When the caller drives paging themselves, treat the call as a single
92
+ // explicit page fetch and skip spillover. Otherwise align the first call
93
+ // with `loadLimit` so the dataframe walk continues at the same pageSize.
94
+ const userControlsPaging = input.params?.page !== undefined || input.params?.pageSize !== undefined;
95
+ const params = { ...(input.params ?? {}) };
96
+ if (!userControlsPaging)
97
+ params.pageSize = loadLimit;
79
98
  const requestOptions = {};
80
99
  if (connection.resolvedAuth)
81
100
  requestOptions.auth = connection.resolvedAuth;
82
- if (input.params) {
83
- requestOptions.params = input.params;
84
- }
101
+ requestOptions.params = params;
85
102
  const envelope = await client.get(connection.baseUrl, path, ctx, requestOptions);
86
103
  const url = buildDisplayUrl(connection.baseUrl, path, input.params);
87
104
  const result = {
@@ -94,6 +111,28 @@ export const brapiRawGet = tool('brapi_raw_get', {
94
111
  const suggestion = suggestForGet(path);
95
112
  if (suggestion)
96
113
  result.suggestion = suggestion;
114
+ if (!userControlsPaging) {
115
+ const totalCount = envelope.metadata?.pagination?.totalCount;
116
+ const rows = extractListRows(envelope.result);
117
+ if (rows !== null &&
118
+ rows.length > 0 &&
119
+ typeof totalCount === 'number' &&
120
+ totalCount > loadLimit) {
121
+ const spill = await spillToCanvas({
122
+ bridge,
123
+ client,
124
+ connection,
125
+ ctx,
126
+ firstPage: rows,
127
+ totalCount,
128
+ loadLimit,
129
+ path,
130
+ filters: (input.params ?? {}),
131
+ source: 'raw_get',
132
+ });
133
+ result.dataframe = toDataframeHandle(spill.dataframe);
134
+ }
135
+ }
97
136
  return result;
98
137
  },
99
138
  format: (result) => {
@@ -110,6 +149,11 @@ export const brapiRawGet = tool('brapi_raw_get', {
110
149
  lines.push('');
111
150
  lines.push(`**Suggestion:** ${result.suggestion}`);
112
151
  }
152
+ if (result.dataframe) {
153
+ lines.push('');
154
+ lines.push('## Dataframe');
155
+ lines.push(...renderDataframeHandle(result.dataframe));
156
+ }
113
157
  lines.push('');
114
158
  lines.push('## Raw result');
115
159
  lines.push('```json');
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-raw-get.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-get.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brapi-raw-get.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-get.tool.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  /**
2
2
  * @fileoverview `brapi_raw_search` — last-resort passthrough to any BrAPI
3
3
  * `POST /search/{noun}` endpoint with async-search polling handled
4
- * transparently. Returns the raw upstream envelope once the search completes.
5
- * Emits a routing nudge when a curated goal-shaped tool covers the noun.
4
+ * transparently. Returns the raw upstream envelope once the search completes,
5
+ * and spills to a canvas dataframe when the upstream advertises more rows
6
+ * than `loadLimit` AND the result is a list shape. Spillover is skipped
7
+ * when the caller drives paging via `body.page` / `body.pageSize` — they're
8
+ * walking pages explicitly. Emits a routing nudge when a curated goal-shaped
9
+ * tool covers the noun.
6
10
  *
7
11
  * @module mcp-server/tools/definitions/brapi-raw-search.tool
8
12
  */
@@ -12,6 +16,7 @@ export declare const brapiRawSearch: import("@cyanheads/mcp-ts-core").ToolDefini
12
16
  alias: z.ZodOptional<z.ZodString>;
13
17
  noun: z.ZodString;
14
18
  body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
19
+ loadLimit: z.ZodOptional<z.ZodNumber>;
15
20
  }, z.core.$strip>, z.ZodObject<{
16
21
  alias: z.ZodString;
17
22
  noun: z.ZodString;
@@ -30,6 +35,15 @@ export declare const brapiRawSearch: import("@cyanheads/mcp-ts-core").ToolDefini
30
35
  }, z.core.$loose>;
31
36
  result: z.ZodUnknown;
32
37
  suggestion: z.ZodOptional<z.ZodString>;
38
+ dataframe: z.ZodOptional<z.ZodObject<{
39
+ tableName: z.ZodString;
40
+ rowCount: z.ZodNumber;
41
+ columns: z.ZodArray<z.ZodString>;
42
+ createdAt: z.ZodString;
43
+ expiresAt: z.ZodString;
44
+ truncated: z.ZodOptional<z.ZodBoolean>;
45
+ maxRows: z.ZodOptional<z.ZodNumber>;
46
+ }, z.core.$strip>>;
33
47
  }, z.core.$strip>, readonly [{
34
48
  readonly reason: "search_endpoint_disabled";
35
49
  readonly code: JsonRpcErrorCode.ValidationError;
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-raw-search.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-search.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA+CjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkHzB,CAAC"}
1
+ {"version":3,"file":"brapi-raw-search.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-search.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA6DjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6JzB,CAAC"}
@@ -1,17 +1,23 @@
1
1
  /**
2
2
  * @fileoverview `brapi_raw_search` — last-resort passthrough to any BrAPI
3
3
  * `POST /search/{noun}` endpoint with async-search polling handled
4
- * transparently. Returns the raw upstream envelope once the search completes.
5
- * Emits a routing nudge when a curated goal-shaped tool covers the noun.
4
+ * transparently. Returns the raw upstream envelope once the search completes,
5
+ * and spills to a canvas dataframe when the upstream advertises more rows
6
+ * than `loadLimit` AND the result is a list shape. Spillover is skipped
7
+ * when the caller drives paging via `body.page` / `body.pageSize` — they're
8
+ * walking pages explicitly. Emits a routing nudge when a curated goal-shaped
9
+ * tool covers the noun.
6
10
  *
7
11
  * @module mcp-server/tools/definitions/brapi-raw-search.tool
8
12
  */
9
13
  import { tool, z } from '@cyanheads/mcp-ts-core';
10
14
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
15
+ import { getServerConfig } from '../../../config/server-config.js';
11
16
  import { getBrapiClient, } from '../../../services/brapi-client/index.js';
12
17
  import { resolveDialect } from '../../../services/brapi-dialect/index.js';
18
+ import { getCanvasBridge } from '../../../services/canvas-bridge/index.js';
13
19
  import { DEFAULT_ALIAS, getServerRegistry } from '../../../services/server-registry/index.js';
14
- import { AliasInput, buildRequestOptions } from '../shared/find-helpers.js';
20
+ import { AliasInput, buildRequestOptions, DataframeHandleSchema, extractListRows, LoadLimitInput, renderDataframeHandle, spillToCanvas, toDataframeHandle, } from '../shared/find-helpers.js';
15
21
  import { suggestForSearch } from '../shared/raw-routing-hints.js';
16
22
  const PaginationSchema = z
17
23
  .object({
@@ -44,9 +50,10 @@ const OutputSchema = z.object({
44
50
  .string()
45
51
  .optional()
46
52
  .describe('Emitted when a curated goal-shaped tool covers this search.'),
53
+ dataframe: DataframeHandleSchema.optional().describe('Present when the upstream advertised more rows than `loadLimit` AND the result is a list shape. The inline `result` is unchanged; the dataframe carries the full union of pages — query with brapi_dataframe_query.'),
47
54
  });
48
55
  export const brapiRawSearch = tool('brapi_raw_search', {
49
- description: 'Passthrough to any BrAPI POST /search/{noun} endpoint, returning the resolved envelope (async polling resolved upstream). Raw passthrough no distributions, foreign-key resolution, or dataset spillover applied.',
56
+ description: 'Passthrough to any BrAPI POST /search/{noun} endpoint, returning the resolved envelope (async polling resolved upstream). Spills to a canvas dataframe when the upstream advertises more rows than `loadLimit` AND the result is a list shape; inline `result` is unchanged. Skips spillover when the caller drives paging via `body.page` / `body.pageSize`. No distributions or foreign-key resolution applied.',
50
57
  annotations: { readOnlyHint: true, openWorldHint: true },
51
58
  errors: [
52
59
  {
@@ -66,11 +73,14 @@ export const brapiRawSearch = tool('brapi_raw_search', {
66
73
  body: z
67
74
  .record(z.string(), z.unknown())
68
75
  .describe('Filter body passed verbatim to POST /search/{noun}.'),
76
+ loadLimit: LoadLimitInput,
69
77
  }),
70
78
  output: OutputSchema,
71
79
  async handler(input, ctx) {
72
80
  const registry = getServerRegistry();
73
81
  const client = getBrapiClient();
82
+ const bridge = getCanvasBridge();
83
+ const config = getServerConfig();
74
84
  const connection = await registry.get(ctx, input.alias ?? DEFAULT_ALIAS);
75
85
  const requestOptions = {};
76
86
  if (connection.resolvedAuth)
@@ -84,7 +94,10 @@ export const brapiRawSearch = tool('brapi_raw_search', {
84
94
  ...ctx.recoveryFor('search_endpoint_disabled'),
85
95
  });
86
96
  }
87
- const response = await client.postSearch(connection.baseUrl, input.noun, input.body, ctx, requestOptions);
97
+ const loadLimit = input.loadLimit ?? config.loadLimit;
98
+ const userControlsPaging = input.body.page !== undefined || input.body.pageSize !== undefined;
99
+ const body = userControlsPaging ? input.body : { ...input.body, pageSize: loadLimit };
100
+ const response = await client.postSearch(connection.baseUrl, input.noun, body, ctx, requestOptions);
88
101
  let envelope;
89
102
  let kind;
90
103
  let searchResultsDbId;
@@ -109,6 +122,34 @@ export const brapiRawSearch = tool('brapi_raw_search', {
109
122
  const suggestion = suggestForSearch(input.noun);
110
123
  if (suggestion)
111
124
  result.suggestion = suggestion;
125
+ if (!userControlsPaging) {
126
+ const totalCount = envelope.metadata?.pagination?.totalCount;
127
+ const rows = extractListRows(envelope.result);
128
+ if (rows !== null &&
129
+ rows.length > 0 &&
130
+ typeof totalCount === 'number' &&
131
+ totalCount > loadLimit) {
132
+ const spill = await spillToCanvas({
133
+ bridge,
134
+ client,
135
+ connection,
136
+ ctx,
137
+ firstPage: rows,
138
+ totalCount,
139
+ loadLimit,
140
+ path: `/search/${input.noun}`,
141
+ filters: input.body,
142
+ source: 'raw_search',
143
+ route: {
144
+ kind: 'search',
145
+ noun: input.noun,
146
+ service: `search/${input.noun}`,
147
+ searchBody: input.body,
148
+ },
149
+ });
150
+ result.dataframe = toDataframeHandle(spill.dataframe);
151
+ }
152
+ }
112
153
  return result;
113
154
  },
114
155
  format: (result) => {
@@ -127,6 +168,11 @@ export const brapiRawSearch = tool('brapi_raw_search', {
127
168
  lines.push('');
128
169
  lines.push(`**Suggestion:** ${result.suggestion}`);
129
170
  }
171
+ if (result.dataframe) {
172
+ lines.push('');
173
+ lines.push('## Dataframe');
174
+ lines.push(...renderDataframeHandle(result.dataframe));
175
+ }
130
176
  lines.push('');
131
177
  lines.push('## Raw result');
132
178
  lines.push('```json');
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-raw-search.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-search.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brapi-raw-search.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-search.tool.ts"],"names":[],"mappings":"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"}