@duckcodeailabs/dql-mcp 1.3.6 → 1.4.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/dist/server.d.ts.map +1 -1
- package/dist/server.js +3 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/kg.d.ts +64 -0
- package/dist/tools/kg.d.ts.map +1 -0
- package/dist/tools/kg.js +94 -0
- package/dist/tools/kg.js.map +1 -0
- package/package.json +5 -4
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWpE,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,SAAS,CAmE/E"}
|
package/dist/server.js
CHANGED
|
@@ -7,6 +7,7 @@ import { listMetrics, listMetricsInput, listDimensions, listDimensionsInput } fr
|
|
|
7
7
|
import { lineageImpact, lineageImpactInput } from './tools/lineage-impact.js';
|
|
8
8
|
import { certify, certifyInput } from './tools/certify.js';
|
|
9
9
|
import { suggestBlock, suggestBlockInput } from './tools/suggest-block.js';
|
|
10
|
+
import { kgSearch, kgSearchInput, feedbackRecord, feedbackRecordInput } from './tools/kg.js';
|
|
10
11
|
export function createDQLMCPServer(options = {}) {
|
|
11
12
|
const projectRoot = options.projectRoot ?? findProjectRoot(process.cwd());
|
|
12
13
|
const ctx = new DQLContext({ projectRoot, dqlVersion: options.version });
|
|
@@ -24,6 +25,8 @@ export function createDQLMCPServer(options = {}) {
|
|
|
24
25
|
server.registerTool('lineage_impact', { description: 'Return upstream/downstream lineage for a block, metric, or model.', inputSchema: lineageImpactInput }, async (args) => wrap(await lineageImpact(ctx, args)));
|
|
25
26
|
server.registerTool('certify', { description: 'Run governance rules against a block and report pass/fail.', inputSchema: certifyInput }, async (args) => wrap(await certify(ctx, args)));
|
|
26
27
|
server.registerTool('suggest_block', { description: 'Write a proposed block to blocks/_drafts/ and return the governance gate result.', inputSchema: suggestBlockInput }, async (args) => wrap(await suggestBlock(ctx, args)));
|
|
28
|
+
server.registerTool('kg_search', { description: 'Search the agent knowledge graph (FTS5) over blocks, metrics, dimensions, dashboards, apps.', inputSchema: kgSearchInput }, async (args) => wrap(kgSearch(ctx, args)));
|
|
29
|
+
server.registerTool('feedback_record', { description: 'Record thumbs-up/down feedback on an answer; feeds self-learning + promotion suggestions.', inputSchema: feedbackRecordInput }, async (args) => wrap(feedbackRecord(ctx, args)));
|
|
27
30
|
return server;
|
|
28
31
|
}
|
|
29
32
|
function wrap(result) {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tools wrapping the dql-agent KG.
|
|
3
|
+
*
|
|
4
|
+
* `kg_search` — keyword + filter search over the KG (powers chat retrieval).
|
|
5
|
+
* `feedback_record` — log thumbs-up/down rows that feed self-learning.
|
|
6
|
+
*
|
|
7
|
+
* Both tools open the SQLite KG file at `.dql/cache/agent-kg.sqlite` and
|
|
8
|
+
* close it after the turn so file handles never leak. If the KG hasn't
|
|
9
|
+
* been built yet, `kg_search` returns an empty result with a hint.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
import type { DQLContext } from '../context.js';
|
|
13
|
+
import { type KGNodeKind } from '@duckcodeailabs/dql-agent';
|
|
14
|
+
export declare const kgSearchInput: {
|
|
15
|
+
query: z.ZodString;
|
|
16
|
+
kinds: z.ZodOptional<z.ZodArray<z.ZodEnum<["block", "metric", "dimension", "domain", "dbt_model", "dbt_source", "dashboard", "app", "skill"]>, "many">>;
|
|
17
|
+
domain: z.ZodOptional<z.ZodString>;
|
|
18
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
};
|
|
20
|
+
export declare function kgSearch(ctx: DQLContext, args: {
|
|
21
|
+
query: string;
|
|
22
|
+
kinds?: string[];
|
|
23
|
+
domain?: string;
|
|
24
|
+
limit?: number;
|
|
25
|
+
}): {
|
|
26
|
+
hits: never[];
|
|
27
|
+
hint: string;
|
|
28
|
+
} | {
|
|
29
|
+
hits: {
|
|
30
|
+
nodeId: string;
|
|
31
|
+
kind: KGNodeKind;
|
|
32
|
+
name: string;
|
|
33
|
+
domain: string | undefined;
|
|
34
|
+
status: string | undefined;
|
|
35
|
+
description: string | undefined;
|
|
36
|
+
score: number;
|
|
37
|
+
snippet: string | undefined;
|
|
38
|
+
sourcePath: string | undefined;
|
|
39
|
+
}[];
|
|
40
|
+
hint?: undefined;
|
|
41
|
+
};
|
|
42
|
+
export declare const feedbackRecordInput: {
|
|
43
|
+
user: z.ZodString;
|
|
44
|
+
question: z.ZodString;
|
|
45
|
+
answerKind: z.ZodEnum<["certified", "uncertified"]>;
|
|
46
|
+
blockId: z.ZodOptional<z.ZodString>;
|
|
47
|
+
rating: z.ZodEnum<["up", "down"]>;
|
|
48
|
+
comment: z.ZodOptional<z.ZodString>;
|
|
49
|
+
};
|
|
50
|
+
export declare function feedbackRecord(ctx: DQLContext, args: {
|
|
51
|
+
user: string;
|
|
52
|
+
question: string;
|
|
53
|
+
answerKind: 'certified' | 'uncertified';
|
|
54
|
+
blockId?: string;
|
|
55
|
+
rating: 'up' | 'down';
|
|
56
|
+
comment?: string;
|
|
57
|
+
}): {
|
|
58
|
+
ok: boolean;
|
|
59
|
+
error: string;
|
|
60
|
+
} | {
|
|
61
|
+
ok: boolean;
|
|
62
|
+
error?: undefined;
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=kg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kg.d.ts","sourceRoot":"","sources":["../../src/tools/kg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEpF,eAAO,MAAM,aAAa;;;;;CAazB,CAAC;AAEF,wBAAgB,QAAQ,CACtB,GAAG,EAAE,UAAU,EACf,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;EAiC3E;AAED,eAAO,MAAM,mBAAmB;;;;;;;CAO/B,CAAC;AAEF,wBAAgB,cAAc,CAC5B,GAAG,EAAE,UAAU,EACf,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,WAAW,GAAG,aAAa,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;;;;;;EAyBF"}
|
package/dist/tools/kg.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tools wrapping the dql-agent KG.
|
|
3
|
+
*
|
|
4
|
+
* `kg_search` — keyword + filter search over the KG (powers chat retrieval).
|
|
5
|
+
* `feedback_record` — log thumbs-up/down rows that feed self-learning.
|
|
6
|
+
*
|
|
7
|
+
* Both tools open the SQLite KG file at `.dql/cache/agent-kg.sqlite` and
|
|
8
|
+
* close it after the turn so file handles never leak. If the KG hasn't
|
|
9
|
+
* been built yet, `kg_search` returns an empty result with a hint.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
import { existsSync } from 'node:fs';
|
|
13
|
+
import { KGStore, defaultKgPath } from '@duckcodeailabs/dql-agent';
|
|
14
|
+
export const kgSearchInput = {
|
|
15
|
+
query: z.string().describe('Natural-language or keyword query.'),
|
|
16
|
+
kinds: z
|
|
17
|
+
.array(z.enum([
|
|
18
|
+
'block', 'metric', 'dimension', 'domain',
|
|
19
|
+
'dbt_model', 'dbt_source', 'dashboard', 'app', 'skill',
|
|
20
|
+
]))
|
|
21
|
+
.optional()
|
|
22
|
+
.describe('Optional filter: only return nodes of these kinds.'),
|
|
23
|
+
domain: z.string().optional().describe('Filter to a single business domain.'),
|
|
24
|
+
limit: z.number().int().min(1).max(50).optional().describe('Max hits (default 10).'),
|
|
25
|
+
};
|
|
26
|
+
export function kgSearch(ctx, args) {
|
|
27
|
+
const path = defaultKgPath(ctx.projectRoot);
|
|
28
|
+
if (!existsSync(path)) {
|
|
29
|
+
return {
|
|
30
|
+
hits: [],
|
|
31
|
+
hint: `KG not built. Run \`dql app reindex\` to build .dql/cache/agent-kg.sqlite.`,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const kg = new KGStore(path);
|
|
35
|
+
try {
|
|
36
|
+
const hits = kg.search({
|
|
37
|
+
query: args.query,
|
|
38
|
+
kinds: args.kinds,
|
|
39
|
+
domain: args.domain,
|
|
40
|
+
limit: args.limit ?? 10,
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
hits: hits.map((h) => ({
|
|
44
|
+
nodeId: h.node.nodeId,
|
|
45
|
+
kind: h.node.kind,
|
|
46
|
+
name: h.node.name,
|
|
47
|
+
domain: h.node.domain,
|
|
48
|
+
status: h.node.status,
|
|
49
|
+
description: h.node.description,
|
|
50
|
+
score: h.score,
|
|
51
|
+
snippet: h.snippet,
|
|
52
|
+
sourcePath: h.node.sourcePath,
|
|
53
|
+
})),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
kg.close();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export const feedbackRecordInput = {
|
|
61
|
+
user: z.string().describe('User who submitted the feedback.'),
|
|
62
|
+
question: z.string().describe('Original question.'),
|
|
63
|
+
answerKind: z.enum(['certified', 'uncertified']).describe('How the answer was classified.'),
|
|
64
|
+
blockId: z.string().optional().describe('Block id the answer was anchored to (if any).'),
|
|
65
|
+
rating: z.enum(['up', 'down']).describe('Thumbs up or down.'),
|
|
66
|
+
comment: z.string().optional().describe('Optional free-text rationale.'),
|
|
67
|
+
};
|
|
68
|
+
export function feedbackRecord(ctx, args) {
|
|
69
|
+
const path = defaultKgPath(ctx.projectRoot);
|
|
70
|
+
if (!existsSync(path)) {
|
|
71
|
+
return {
|
|
72
|
+
ok: false,
|
|
73
|
+
error: 'KG not built — run `dql app reindex` first so feedback can be persisted.',
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
const kg = new KGStore(path);
|
|
77
|
+
try {
|
|
78
|
+
kg.recordFeedback({
|
|
79
|
+
id: `fb_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`,
|
|
80
|
+
ts: new Date().toISOString(),
|
|
81
|
+
user: args.user,
|
|
82
|
+
question: args.question,
|
|
83
|
+
answerKind: args.answerKind,
|
|
84
|
+
blockId: args.blockId,
|
|
85
|
+
rating: args.rating,
|
|
86
|
+
comment: args.comment,
|
|
87
|
+
});
|
|
88
|
+
return { ok: true };
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
kg.close();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=kg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kg.js","sourceRoot":"","sources":["../../src/tools/kg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAmB,MAAM,2BAA2B,CAAC;AAEpF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IAChE,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,IAAI,CAAC;QACL,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ;QACxC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO;KACvD,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACjE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC7E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACrF,CAAC;AAEF,MAAM,UAAU,QAAQ,CACtB,GAAe,EACf,IAA0E;IAE1E,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,4EAA4E;SACnF,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAiC;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;SACxB,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;gBACrB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;gBACjB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;gBACjB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;gBACrB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;gBACrB,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW;gBAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU;aAC9B,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACnD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC3F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IACxF,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC7D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CACzE,CAAC;AAEF,MAAM,UAAU,cAAc,CAC5B,GAAe,EACf,IAOC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,0EAA0E;SAClF,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC;QACH,EAAE,CAAC,cAAc,CAAC;YAChB,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YAC7E,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duckcodeailabs/dql-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "DQL MCP server: expose certified blocks, semantic layer, lineage, and governance to LLM agents via the Model Context Protocol",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -24,9 +24,10 @@
|
|
|
24
24
|
"access": "public"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@duckcodeailabs/dql-
|
|
28
|
-
"@duckcodeailabs/dql-
|
|
29
|
-
"@duckcodeailabs/dql-
|
|
27
|
+
"@duckcodeailabs/dql-agent": "^1.4.0",
|
|
28
|
+
"@duckcodeailabs/dql-core": "^1.4.0",
|
|
29
|
+
"@duckcodeailabs/dql-governance": "^1.4.0",
|
|
30
|
+
"@duckcodeailabs/dql-project": "^1.4.0",
|
|
30
31
|
"@modelcontextprotocol/sdk": "^1.0.4",
|
|
31
32
|
"zod": "^3.25.0"
|
|
32
33
|
},
|