@cyanheads/brapi-mcp-server 0.4.14 → 0.5.1
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 +23 -19
- package/README.md +40 -26
- package/changelog/0.5.x/0.5.0.md +59 -0
- package/changelog/0.5.x/0.5.1.md +13 -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 +20 -19
- 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 +17 -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 +16 -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 +18 -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 +23 -21
- 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 +18 -17
- 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 +18 -15
- package/dist/mcp-server/tools/definitions/brapi-find-variants.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 +76 -45
- package/dist/mcp-server/tools/shared/find-helpers.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/find-helpers.js +159 -72
- 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 +143 -112
- 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,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview `brapi_find_variants` — find variant records by variant set,
|
|
3
3
|
* reference, or genomic region. Standard find_* pattern — distributions +
|
|
4
|
-
*
|
|
4
|
+
* dataframe spillover. Note: the BrAPI filter catalog uses `start` / `end` as
|
|
5
5
|
* single scalars (1-based inclusive / exclusive) per the spec.
|
|
6
6
|
*
|
|
7
7
|
* @module mcp-server/tools/definitions/brapi-find-variants.tool
|
|
@@ -11,10 +11,10 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
|
11
11
|
import { getServerConfig } from '../../../config/server-config.js';
|
|
12
12
|
import { getBrapiClient } from '../../../services/brapi-client/index.js';
|
|
13
13
|
import { resolveDialect } from '../../../services/brapi-dialect/index.js';
|
|
14
|
+
import { getCanvasBridge } from '../../../services/canvas-bridge/index.js';
|
|
14
15
|
import { getCapabilityRegistry } from '../../../services/capability-registry/index.js';
|
|
15
|
-
import { getDatasetStore } from '../../../services/dataset-store/index.js';
|
|
16
16
|
import { DEFAULT_ALIAS, getServerRegistry } from '../../../services/server-registry/index.js';
|
|
17
|
-
import { AliasInput, applyDialectFiltersOrFail, asString, buildRefinementHint, collectPassthroughParts, computeDistribution,
|
|
17
|
+
import { AliasInput, applyDialectFiltersOrFail, asString, buildExtraFilterChecks, buildRefinementHint, checkFilterMatchRates, collectPassthroughParts, computeDistribution, DataframeHandleSchema, ExtraFiltersInput, LoadLimitInput, loadInitialFindPage, maybeSpill, mergeFilters, renderAppliedFilters, renderDataframeHandle, renderDistributions, renderFindHeader, resolveFindRoute, } from '../shared/find-helpers.js';
|
|
18
18
|
const VariantRowSchema = z
|
|
19
19
|
.object({
|
|
20
20
|
variantDbId: z.string().describe('Server-side identifier for the variant.'),
|
|
@@ -84,7 +84,7 @@ const OutputSchema = z.object({
|
|
|
84
84
|
.string()
|
|
85
85
|
.optional()
|
|
86
86
|
.describe('Suggested next-step query refinement when the result set is large.'),
|
|
87
|
-
|
|
87
|
+
dataframe: DataframeHandleSchema.optional().describe('Dataframe handle when the full result set was materialized as a dataframe. Query it with brapi_dataframe_query (SQL).'),
|
|
88
88
|
warnings: z
|
|
89
89
|
.array(z.string())
|
|
90
90
|
.describe('Advisory messages (filter overrides, partial data, capability gaps, etc.).'),
|
|
@@ -107,7 +107,7 @@ const SERVER_TO_USER = {
|
|
|
107
107
|
end: 'end',
|
|
108
108
|
};
|
|
109
109
|
export const brapiFindVariants = tool('brapi_find_variants', {
|
|
110
|
-
description: 'Find variant records by variant set, reference sequence, or genomic region (start/end, 1-based inclusive / exclusive).
|
|
110
|
+
description: 'Find variant records by variant set, reference sequence, or genomic region (start/end, 1-based inclusive / exclusive). When the upstream total exceeds loadLimit, the full result set is materialized as a dataframe — query it with brapi_dataframe_query (SQL).',
|
|
111
111
|
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
112
112
|
errors: [
|
|
113
113
|
{
|
|
@@ -133,7 +133,7 @@ export const brapiFindVariants = tool('brapi_find_variants', {
|
|
|
133
133
|
const registry = getServerRegistry();
|
|
134
134
|
const capabilities = getCapabilityRegistry();
|
|
135
135
|
const client = getBrapiClient();
|
|
136
|
-
const
|
|
136
|
+
const bridge = getCanvasBridge();
|
|
137
137
|
const config = getServerConfig();
|
|
138
138
|
const connection = await registry.get(ctx, input.alias ?? DEFAULT_ALIAS);
|
|
139
139
|
const capabilityLookup = {};
|
|
@@ -164,7 +164,7 @@ export const brapiFindVariants = tool('brapi_find_variants', {
|
|
|
164
164
|
});
|
|
165
165
|
const loadLimit = input.loadLimit ?? config.loadLimit;
|
|
166
166
|
const firstPage = await loadInitialFindPage(client, connection, route, loadLimit, ctx);
|
|
167
|
-
const { fullRows,
|
|
167
|
+
const { fullRows, dataframe } = await maybeSpill({
|
|
168
168
|
firstPage,
|
|
169
169
|
client,
|
|
170
170
|
connection,
|
|
@@ -174,13 +174,16 @@ export const brapiFindVariants = tool('brapi_find_variants', {
|
|
|
174
174
|
source: 'find_variants',
|
|
175
175
|
loadLimit,
|
|
176
176
|
ctx,
|
|
177
|
-
|
|
177
|
+
bridge,
|
|
178
178
|
});
|
|
179
179
|
const distributions = {
|
|
180
180
|
variantType: computeDistribution(fullRows, (r) => asString(r.variantType)),
|
|
181
181
|
referenceName: computeDistribution(fullRows, (r) => asString(r.referenceName)),
|
|
182
182
|
variantSetDbId: computeDistribution(fullRows, (r) => collectVariantSetIds(r)),
|
|
183
183
|
};
|
|
184
|
+
checkFilterMatchRates(warnings, fullRows.length, [
|
|
185
|
+
...buildExtraFilterChecks(input.extraFilters, fullRows, warnings),
|
|
186
|
+
]);
|
|
184
187
|
const totalCount = firstPage.totalCount ?? firstPage.rows.length;
|
|
185
188
|
const refinementHint = buildRefinementHint(totalCount, loadLimit, distributions, {
|
|
186
189
|
availableFilters: ['variantSets', 'variants', 'references', 'referenceName', 'start', 'end'],
|
|
@@ -197,8 +200,8 @@ export const brapiFindVariants = tool('brapi_find_variants', {
|
|
|
197
200
|
};
|
|
198
201
|
if (refinementHint)
|
|
199
202
|
result.refinementHint = refinementHint;
|
|
200
|
-
if (
|
|
201
|
-
result.
|
|
203
|
+
if (dataframe)
|
|
204
|
+
result.dataframe = dataframe;
|
|
202
205
|
return result;
|
|
203
206
|
},
|
|
204
207
|
format: (result) => {
|
|
@@ -208,11 +211,11 @@ export const brapiFindVariants = tool('brapi_find_variants', {
|
|
|
208
211
|
alias: result.alias,
|
|
209
212
|
returnedCount: result.returnedCount,
|
|
210
213
|
totalCount: result.totalCount,
|
|
211
|
-
|
|
214
|
+
dataframe: result.dataframe,
|
|
212
215
|
}));
|
|
213
216
|
lines.push('');
|
|
214
217
|
if (result.hasMore) {
|
|
215
|
-
lines.push(`⚠ More rows exist beyond the returned set. ${result.
|
|
218
|
+
lines.push(`⚠ More rows exist beyond the returned set. ${result.dataframe ? `Full set materialized as dataframe \`${result.dataframe.tableName}\` — query with brapi_dataframe_query.` : 'Narrow filters or raise loadLimit.'}`);
|
|
216
219
|
lines.push('');
|
|
217
220
|
}
|
|
218
221
|
if (result.refinementHint) {
|
|
@@ -275,10 +278,10 @@ export const brapiFindVariants = tool('brapi_find_variants', {
|
|
|
275
278
|
lines.push(`- ${parts.join(' · ')}`);
|
|
276
279
|
}
|
|
277
280
|
}
|
|
278
|
-
if (result.
|
|
281
|
+
if (result.dataframe) {
|
|
279
282
|
lines.push('');
|
|
280
|
-
lines.push('##
|
|
281
|
-
lines.push(...
|
|
283
|
+
lines.push('## Dataframe handle');
|
|
284
|
+
lines.push(...renderDataframeHandle(result.dataframe));
|
|
282
285
|
}
|
|
283
286
|
if (result.warnings.length > 0) {
|
|
284
287
|
lines.push('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brapi-find-variants.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-find-variants.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"brapi-find-variants.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-find-variants.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
5
|
-
* nudge when the target endpoint is
|
|
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
|
|
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
|
|
5
|
-
* nudge when the target endpoint is
|
|
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
|
-
|
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"brapi-raw-get.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-get.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAGL,cAAc,GACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAClF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CACxE,CAAC;KACD,WAAW,EAAE;KACb,QAAQ,EAAE;KACV,QAAQ,CAAC,qEAAqE,CAAC,CAAC;AAEnF,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACrF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;IAChG,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,CAAC,2EAA2E,CAAC;IACxF,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,UAAU,EAAE,gBAAgB;KAC7B,CAAC;SACD,WAAW,EAAE;SACb,QAAQ,CAAC,0EAA0E,CAAC;IACvF,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAC/F,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAClD,qNAAqN,CACtN;CACF,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE;IAC/C,WAAW,EACT,4dAA4d;IAC9d,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IACxD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,gEAAgE;YACtE,QAAQ,EACN,wFAAwF;SAC3F;KACO;IACV,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,uEAAuE,CAAC;QACpF,MAAM,EAAE,CAAC;aACN,MAAM,CACL,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3F;aACA,QAAQ,EAAE;aACV,QAAQ,CAAC,uEAAuE,CAAC;QACpF,SAAS,EAAE,cAAc;KAC1B,CAAC;IACF,MAAM,EAAE,YAAY;IAEpB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QAEjC,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC;QACzE,2EAA2E;QAC3E,4EAA4E;QAC5E,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,sDAAsD,EAAE;gBAC1F,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;QACtD,uEAAuE;QACvE,yEAAyE;QACzE,yEAAyE;QACzE,MAAM,kBAAkB,GACtB,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,KAAK,SAAS,CAAC;QAC3E,MAAM,MAAM,GAA4B,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,kBAAkB;YAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;QAErD,MAAM,cAAc,GAAwB,EAAE,CAAC;QAC/C,IAAI,UAAU,CAAC,YAAY;YAAE,cAAc,CAAC,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC;QAC3E,cAAc,CAAC,MAAM,GAAG,MAAoD,CAAC;QAC7E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAU,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;QAE1F,MAAM,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,MAAM,GAAW;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,GAAG;YACH,IAAI;YACJ,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC1C,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC;QACF,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,UAAU;YAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAE/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;YAC7D,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9C,IACE,IAAI,KAAK,IAAI;gBACb,IAAI,CAAC,MAAM,GAAG,CAAC;gBACf,OAAO,UAAU,KAAK,QAAQ;gBAC9B,UAAU,GAAG,SAAS,EACtB,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC;oBAChC,MAAM;oBACN,MAAM;oBACN,UAAU;oBACV,GAAG;oBACH,SAAS,EAAE,IAAI;oBACf,UAAU;oBACV,SAAS;oBACT,IAAI;oBACJ,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAA4B;oBACxD,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;gBACH,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9C,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CACR,wBAAwB,UAAU,CAAC,WAAW,OAAO,UAAU,CAAC,UAAU,cAAc,UAAU,CAAC,QAAQ,gBAAgB,UAAU,CAAC,UAAU,EAAE,CACnJ,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,QAAsD;IAC3E,MAAM,UAAU,GAAG,QAAQ,EAAE,UAAU,CAAC;IACxC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,EAAE,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,IAAY,EAAE,MAAgC;IACtF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAC5D,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,MAAM,CAAC,IAAI,KAAK;oBAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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).
|
|
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
|
|
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":"AAAA
|
|
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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"}
|