@cyanheads/brapi-mcp-server 0.4.10 → 0.4.12
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 +1 -1
- package/Dockerfile +9 -0
- package/README.md +24 -4
- package/changelog/0.4.x/0.4.11.md +19 -0
- package/changelog/0.4.x/0.4.12.md +29 -0
- package/dist/config/alias-credentials.d.ts +27 -15
- package/dist/config/alias-credentials.d.ts.map +1 -1
- package/dist/config/alias-credentials.js +71 -29
- package/dist/config/alias-credentials.js.map +1 -1
- package/dist/config/builtin-aliases.d.ts +51 -0
- package/dist/config/builtin-aliases.d.ts.map +1 -0
- package/dist/config/builtin-aliases.js +108 -0
- package/dist/config/builtin-aliases.js.map +1 -0
- package/dist/index.js +18 -6
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/prompts/definitions/brapi-meta-analysis.prompt.js +4 -4
- package/dist/mcp-server/prompts/definitions/brapi-meta-analysis.prompt.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts +6 -0
- package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-connect.tool.js +3 -3
- package/dist/mcp-server/tools/definitions/brapi-connect.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts +2 -2
- package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.js +2 -2
- 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 +2 -2
- package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.js +2 -2
- package/dist/mcp-server/tools/definitions/brapi-dataframe-drop.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts +2 -2
- 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 +17 -20
- 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 +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js +2 -2
- package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts +1 -1
- 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 +8 -4
- package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-get-image.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/brapi-get-image.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-get-study.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/brapi-get-study.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-get-study.tool.js +8 -4
- package/dist/mcp-server/tools/definitions/brapi-get-study.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.js +3 -3
- package/dist/mcp-server/tools/definitions/brapi-manage-dataset.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts +6 -0
- package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/index.d.ts +22 -10
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/connect-auth-schema.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/connect-auth-schema.js +15 -6
- package/dist/mcp-server/tools/shared/connect-auth-schema.js.map +1 -1
- package/dist/mcp-server/tools/shared/find-helpers.js +1 -1
- package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
- package/dist/mcp-server/tools/shared/orientation-envelope.d.ts +12 -0
- package/dist/mcp-server/tools/shared/orientation-envelope.d.ts.map +1 -1
- package/dist/mcp-server/tools/shared/orientation-envelope.js +45 -4
- package/dist/mcp-server/tools/shared/orientation-envelope.js.map +1 -1
- package/dist/mcp-server/tools/shared/raw-routing-hints.js +2 -2
- package/dist/mcp-server/tools/shared/raw-routing-hints.js.map +1 -1
- package/dist/services/canvas-bridge/canvas-bridge.d.ts.map +1 -1
- package/dist/services/canvas-bridge/canvas-bridge.js +10 -44
- package/dist/services/canvas-bridge/canvas-bridge.js.map +1 -1
- package/package.json +2 -2
- package/server.json +3 -3
|
@@ -12,8 +12,14 @@
|
|
|
12
12
|
*
|
|
13
13
|
* @module services/canvas-bridge/canvas-bridge
|
|
14
14
|
*/
|
|
15
|
-
import { JsonRpcErrorCode, McpError
|
|
16
|
-
|
|
15
|
+
import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
|
|
16
|
+
/**
|
|
17
|
+
* Construct a `RequestContext` slice from the handler `Context`. The
|
|
18
|
+
* framework's `RequestContext` carries an `[key: string]: unknown` index
|
|
19
|
+
* signature which the strict `Context` interface lacks, so direct
|
|
20
|
+
* assignment fails despite the 0.8.12 optional-field widening.
|
|
21
|
+
*/
|
|
22
|
+
function asRequestContext(ctx) {
|
|
17
23
|
const rc = {
|
|
18
24
|
requestId: ctx.requestId,
|
|
19
25
|
timestamp: ctx.timestamp,
|
|
@@ -32,30 +38,6 @@ const DEFAULT_CANVAS_KEY = 'brapi/canvas/default';
|
|
|
32
38
|
const TABLE_META_PREFIX = 'brapi/canvas/tablemeta/';
|
|
33
39
|
/** Auto-registered dataset-table prefix. Anything else is user-derived (registerAs). */
|
|
34
40
|
const DATASET_TABLE_PREFIX = 'ds_';
|
|
35
|
-
/**
|
|
36
|
-
* Server-side belt-and-suspenders SQL deny-list for file/network-reading
|
|
37
|
-
* DuckDB table functions that the framework's plan-walk allowlist currently
|
|
38
|
-
* misses (cyanheads/mcp-ts-core — `read_json*` and `read_parquet*`/`parquet_scan`
|
|
39
|
-
* emit plan operators that pass the allowlist, allowing files like
|
|
40
|
-
* `/etc/passwd` to actually be opened by DuckDB). Substring-match is brittle
|
|
41
|
-
* compared to the framework's plan-walk, but closes the live gap until the
|
|
42
|
-
* framework lands a tighter check. Remove once upstream fixes propagate.
|
|
43
|
-
*
|
|
44
|
-
* Also blocks the known third-party scan extensions (iceberg/delta) for the
|
|
45
|
-
* same reason — they bypass canvas and read external data sources. They
|
|
46
|
-
* aren't loaded by default but a future server config might pre-install them.
|
|
47
|
-
*/
|
|
48
|
-
const FORBIDDEN_SQL_FUNCTIONS = [
|
|
49
|
-
'read_json',
|
|
50
|
-
'read_json_auto',
|
|
51
|
-
'read_json_objects',
|
|
52
|
-
'read_ndjson',
|
|
53
|
-
'read_parquet',
|
|
54
|
-
'parquet_scan',
|
|
55
|
-
'iceberg_scan',
|
|
56
|
-
'delta_scan',
|
|
57
|
-
];
|
|
58
|
-
const FORBIDDEN_SQL_RX = new RegExp(`\\b(?:${FORBIDDEN_SQL_FUNCTIONS.join('|')})\\s*\\(`, 'i');
|
|
59
41
|
/** Bridge for `core.canvas` that adds per-tenant default-canvas semantics. */
|
|
60
42
|
export class CanvasBridge {
|
|
61
43
|
canvas;
|
|
@@ -82,7 +64,7 @@ export class CanvasBridge {
|
|
|
82
64
|
const canvas = this.requireCanvas();
|
|
83
65
|
const cached = await ctx.state.get(DEFAULT_CANVAS_KEY);
|
|
84
66
|
try {
|
|
85
|
-
const instance = await canvas.acquire(cached ?? undefined,
|
|
67
|
+
const instance = await canvas.acquire(cached ?? undefined, asRequestContext(ctx));
|
|
86
68
|
if (!cached || instance.isNew) {
|
|
87
69
|
await ctx.state.set(DEFAULT_CANVAS_KEY, instance.canvasId);
|
|
88
70
|
}
|
|
@@ -91,7 +73,7 @@ export class CanvasBridge {
|
|
|
91
73
|
catch (err) {
|
|
92
74
|
if (cached && isCanvasNotFound(err)) {
|
|
93
75
|
await ctx.state.delete(DEFAULT_CANVAS_KEY);
|
|
94
|
-
const fresh = await canvas.acquire(undefined,
|
|
76
|
+
const fresh = await canvas.acquire(undefined, asRequestContext(ctx));
|
|
95
77
|
await ctx.state.set(DEFAULT_CANVAS_KEY, fresh.canvasId);
|
|
96
78
|
return fresh;
|
|
97
79
|
}
|
|
@@ -168,7 +150,6 @@ export class CanvasBridge {
|
|
|
168
150
|
* timeout wraps the AbortSignal with a wall-clock cap.
|
|
169
151
|
*/
|
|
170
152
|
async query(ctx, sql, options = {}) {
|
|
171
|
-
assertNoForbiddenFunctions(sql);
|
|
172
153
|
const instance = await this.getInstance(ctx);
|
|
173
154
|
const cap = this.serverConfig.canvasMaxRows;
|
|
174
155
|
const rowLimit = Math.min(options.rowLimit ?? cap, cap);
|
|
@@ -257,21 +238,6 @@ function tableMetaKey(tableName) {
|
|
|
257
238
|
function isCanvasNotFound(err) {
|
|
258
239
|
return err instanceof McpError && err.code === JsonRpcErrorCode.NotFound;
|
|
259
240
|
}
|
|
260
|
-
/**
|
|
261
|
-
* Reject SQL that calls a known file/network-reading DuckDB function the
|
|
262
|
-
* framework's plan-walk currently misses. Throws a `validationError` shaped
|
|
263
|
-
* like the framework's gate so {@link CanvasBridge.query}'s caller (the
|
|
264
|
-
* `brapi_dataframe_query` handler) can translate it through `ctx.fail`'s
|
|
265
|
-
* `sql_rejected` contract via the same path it uses for upstream gate
|
|
266
|
-
* rejections.
|
|
267
|
-
*/
|
|
268
|
-
function assertNoForbiddenFunctions(sql) {
|
|
269
|
-
const match = FORBIDDEN_SQL_RX.exec(sql);
|
|
270
|
-
if (!match)
|
|
271
|
-
return;
|
|
272
|
-
const fn = match[0].replace(/\s*\(.*$/, '').toLowerCase();
|
|
273
|
-
throw validationError(`Canvas SQL contains disallowed function: ${fn}(). File and network-reading functions bypass the canvas and are blocked.`, { reason: 'plan_operator_not_allowed', forbiddenFunction: fn });
|
|
274
|
-
}
|
|
275
241
|
/**
|
|
276
242
|
* Compose the caller's AbortSignal with a wall-clock timeout. Returns the
|
|
277
243
|
* caller's signal directly when no timeout is configured or the parent is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-bridge.js","sourceRoot":"","sources":["../../../src/services/canvas-bridge/canvas-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"canvas-bridge.js","sourceRoot":"","sources":["../../../src/services/canvas-bridge/canvas-bridge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/brapi-mcp-server",
|
|
3
3
|
"mcpName": "io.github.cyanheads/brapi-mcp-server",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.12",
|
|
5
5
|
"description": "BrAPI v2.1 MCP server — studies, germplasm, observations, genotypes, images, and pedigrees.",
|
|
6
6
|
"author": "Casey Hand @cyanheads (https://github.com/cyanheads/brapi-mcp-server#readme)",
|
|
7
7
|
"type": "module",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"access": "public"
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"@cyanheads/mcp-ts-core": "^0.8.
|
|
74
|
+
"@cyanheads/mcp-ts-core": "^0.8.13",
|
|
75
75
|
"pino-pretty": "^13.1.3"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
package/server.json
CHANGED
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
"url": "https://github.com/cyanheads/brapi-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.4.
|
|
9
|
+
"version": "0.4.12",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
14
14
|
"identifier": "@cyanheads/brapi-mcp-server",
|
|
15
15
|
"runtimeHint": "bun",
|
|
16
|
-
"version": "0.4.
|
|
16
|
+
"version": "0.4.12",
|
|
17
17
|
"packageArguments": [
|
|
18
18
|
{ "type": "positional", "value": "run" },
|
|
19
19
|
{ "type": "positional", "value": "start:stdio" }
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
50
50
|
"identifier": "@cyanheads/brapi-mcp-server",
|
|
51
51
|
"runtimeHint": "bun",
|
|
52
|
-
"version": "0.4.
|
|
52
|
+
"version": "0.4.12",
|
|
53
53
|
"packageArguments": [
|
|
54
54
|
{ "type": "positional", "value": "run" },
|
|
55
55
|
{ "type": "positional", "value": "start:http" }
|