@grackle-ai/mcp 0.67.0 → 0.68.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/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { verifyScopedToken } from "./scoped-token.js";
6
6
  export { createOAuthAccessToken, verifyOAuthAccessToken } from "./oauth-token.js";
7
7
  export { OAUTH_ACCESS_TOKEN_TTL_MS, OAUTH_REFRESH_TOKEN_TTL_MS } from "./oauth-token.js";
8
8
  export type { OAuthTokenClaims } from "./oauth-token.js";
9
- export { createToolRegistry, setKnowledgeEmbedder } from "./tools/index.js";
9
+ export { createToolRegistry } from "./tools/index.js";
10
10
  export { ToolRegistry } from "./tool-registry.js";
11
11
  export type { ToolDefinition, ToolResult } from "./tool-registry.js";
12
12
  export { authenticateMcpRequest } from "./auth-middleware.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ export { createScopedToken, revokeTask } from "./scoped-token.js";
3
3
  export { verifyScopedToken } from "./scoped-token.js";
4
4
  export { createOAuthAccessToken, verifyOAuthAccessToken } from "./oauth-token.js";
5
5
  export { OAUTH_ACCESS_TOKEN_TTL_MS, OAUTH_REFRESH_TOKEN_TTL_MS } from "./oauth-token.js";
6
- export { createToolRegistry, setKnowledgeEmbedder } from "./tools/index.js";
6
+ export { createToolRegistry } from "./tools/index.js";
7
7
  export { ToolRegistry } from "./tool-registry.js";
8
8
  export { authenticateMcpRequest } from "./auth-middleware.js";
9
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { ToolRegistry } from "../tool-registry.js";
2
2
  /** Create a ToolRegistry pre-populated with all available MCP tools. */
3
3
  export declare function createToolRegistry(): ToolRegistry;
4
- export { setKnowledgeEmbedder } from "./knowledge.js";
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAenD,wEAAwE;AACxE,wBAAgB,kBAAkB,IAAI,YAAY,CAgBjD;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAenD,wEAAwE;AACxE,wBAAgB,kBAAkB,IAAI,YAAY,CAgBjD"}
@@ -30,5 +30,4 @@ export function createToolRegistry() {
30
30
  registry.registerAll(knowledgeTools);
31
31
  return registry;
32
32
  }
33
- export { setKnowledgeEmbedder } from "./knowledge.js";
34
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,wEAAwE;AACxE,MAAM,UAAU,kBAAkB;IAChC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,wEAAwE;AACxE,MAAM,UAAU,kBAAkB;IAChC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -2,20 +2,12 @@
2
2
  * MCP tools for the Grackle knowledge graph.
3
3
  *
4
4
  * Exposes high-level operations (search, retrieve, create) to agents.
5
- * All embedding, graph storage, and traversal details are handled
6
- * internally agents interact with clean Grackle concepts.
5
+ * All calls go through gRPC to the Grackle server — the MCP package
6
+ * does not access knowledge-core or Neo4j directly.
7
7
  *
8
8
  * @module
9
9
  */
10
- import { type Embedder } from "@grackle-ai/knowledge";
11
10
  import type { ToolDefinition } from "../tool-registry.js";
12
- /**
13
- * Set the shared embedder instance for knowledge tools.
14
- *
15
- * Called once by the server at startup (before MCP serves requests).
16
- * Pass `undefined` to clear the embedder (e.g., for testing).
17
- */
18
- export declare function setKnowledgeEmbedder(e: Embedder | undefined): void;
19
11
  /** Knowledge graph MCP tools. */
20
12
  export declare const knowledgeTools: ToolDefinition[];
21
13
  //# sourceMappingURL=knowledge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/tools/knowledge.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EASL,KAAK,QAAQ,EAMd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAW1D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAElE;AAiFD,iCAAiC;AACjC,eAAO,MAAM,cAAc,EAAE,cAAc,EAsV1C,CAAC"}
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/tools/knowledge.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAwF1D,iCAAiC;AACjC,eAAO,MAAM,cAAc,EAAE,cAAc,EAmR1C,CAAC"}
@@ -2,36 +2,13 @@
2
2
  * MCP tools for the Grackle knowledge graph.
3
3
  *
4
4
  * Exposes high-level operations (search, retrieve, create) to agents.
5
- * All embedding, graph storage, and traversal details are handled
6
- * internally agents interact with clean Grackle concepts.
5
+ * All calls go through gRPC to the Grackle server — the MCP package
6
+ * does not access knowledge-core or Neo4j directly.
7
7
  *
8
8
  * @module
9
9
  */
10
10
  import { z } from "zod";
11
- import { knowledgeSearch, getNode, createNativeNode, createEdge, expandNode, expandResults, NATIVE_CATEGORY, EDGE_TYPE, } from "@grackle-ai/knowledge";
12
11
  import { jsonResult } from "../result-helpers.js";
13
- import { logger } from "@grackle-ai/knowledge";
14
- // ---------------------------------------------------------------------------
15
- // Embedder accessor — set by the server at startup
16
- // ---------------------------------------------------------------------------
17
- /** Module-level embedder instance, initialized by the server. */
18
- let embedder;
19
- /**
20
- * Set the shared embedder instance for knowledge tools.
21
- *
22
- * Called once by the server at startup (before MCP serves requests).
23
- * Pass `undefined` to clear the embedder (e.g., for testing).
24
- */
25
- export function setKnowledgeEmbedder(e) {
26
- embedder = e;
27
- }
28
- /** Get the shared embedder, throwing if not initialized. */
29
- function requireEmbedder() {
30
- if (!embedder) {
31
- throw new Error("Knowledge graph not available. The embedder has not been initialized.");
32
- }
33
- return embedder;
34
- }
35
12
  // ---------------------------------------------------------------------------
36
13
  // Constants
37
14
  // ---------------------------------------------------------------------------
@@ -39,10 +16,18 @@ function requireEmbedder() {
39
16
  const MAX_SEARCH_LIMIT = 50;
40
17
  /** Maximum allowed expansion depth. */
41
18
  const MAX_EXPAND_DEPTH = 5;
19
+ /** Valid edge type values. */
20
+ const EDGE_TYPES = [
21
+ "RELATES_TO",
22
+ "DEPENDS_ON",
23
+ "DERIVED_FROM",
24
+ "MENTIONS",
25
+ "PART_OF",
26
+ ];
42
27
  // ---------------------------------------------------------------------------
43
28
  // Response formatting — hide internal details from agents
44
29
  // ---------------------------------------------------------------------------
45
- /** Format a node for agent consumption. */
30
+ /** Format a proto node for agent consumption. */
46
31
  function formatNode(node) {
47
32
  const base = {
48
33
  id: node.id,
@@ -60,24 +45,32 @@ function formatNode(node) {
60
45
  base.category = node.category;
61
46
  base.title = node.title;
62
47
  base.content = node.content;
63
- base.tags = node.tags;
48
+ base.tags = [...node.tags];
64
49
  }
65
50
  return base;
66
51
  }
67
- /** Format an edge for agent consumption. */
52
+ /** Format a proto edge for agent consumption. */
68
53
  function formatEdge(edge) {
69
- return {
54
+ const result = {
70
55
  fromId: edge.fromId,
71
56
  toId: edge.toId,
72
57
  type: edge.type,
73
- ...(edge.metadata !== undefined ? { metadata: edge.metadata } : {}),
74
58
  };
59
+ if (edge.metadataJson) {
60
+ try {
61
+ result.metadata = JSON.parse(edge.metadataJson);
62
+ }
63
+ catch {
64
+ // ignore malformed metadata
65
+ }
66
+ }
67
+ return result;
75
68
  }
76
69
  /** Format a search result for agent consumption. */
77
70
  function formatSearchResult(result) {
78
71
  return {
79
72
  score: Math.round(result.score * 1000) / 1000,
80
- node: formatNode(result.node),
73
+ node: result.node ? formatNode(result.node) : {},
81
74
  edges: result.edges.map(formatEdge),
82
75
  };
83
76
  }
@@ -131,42 +124,47 @@ export const knowledgeTools = [
131
124
  idempotentHint: true,
132
125
  openWorldHint: false,
133
126
  },
134
- async handler(args) {
127
+ async handler(args, client) {
135
128
  const { query, limit, workspaceId, expand, expandDepth, } = args;
136
- try {
137
- const safeLimit = clampInt(limit, 1, MAX_SEARCH_LIMIT, 10);
138
- const results = await knowledgeSearch(query, requireEmbedder(), { limit: safeLimit, workspaceId });
139
- const formattedResults = results.map(formatSearchResult);
140
- let neighbors;
141
- let neighborEdges;
142
- if (expand && results.length > 0) {
143
- const safeDepth = clampInt(expandDepth, 1, MAX_EXPAND_DEPTH, 1);
144
- const expansion = await expandResults(results, {
129
+ const safeLimit = clampInt(limit, 1, MAX_SEARCH_LIMIT, 10);
130
+ const response = await client.searchKnowledge({
131
+ query,
132
+ limit: safeLimit,
133
+ workspaceId: workspaceId ?? "",
134
+ });
135
+ const formattedResults = response.results.map(formatSearchResult);
136
+ let neighbors;
137
+ let neighborEdges;
138
+ if (expand && response.results.length > 0) {
139
+ // Expand each result node via gRPC
140
+ const safeDepth = clampInt(expandDepth, 1, MAX_EXPAND_DEPTH, 1);
141
+ const allNeighbors = new Map();
142
+ const allEdges = [];
143
+ const startIds = new Set(response.results.map((r) => r.node?.id ?? "").filter(Boolean));
144
+ for (const result of response.results) {
145
+ if (!result.node) {
146
+ continue;
147
+ }
148
+ const expansion = await client.expandKnowledgeNode({
149
+ id: result.node.id,
145
150
  depth: safeDepth,
146
151
  });
147
- neighbors = expansion.nodes.map(formatNode);
148
- neighborEdges = expansion.edges.map(formatEdge);
152
+ for (const node of expansion.nodes) {
153
+ if (!startIds.has(node.id)) {
154
+ allNeighbors.set(node.id, formatNode(node));
155
+ }
156
+ }
157
+ for (const edge of expansion.edges) {
158
+ allEdges.push(formatEdge(edge));
159
+ }
149
160
  }
150
- return jsonResult({
151
- results: formattedResults,
152
- ...(neighbors !== undefined ? { neighbors, neighborEdges } : {}),
153
- });
154
- }
155
- catch (error) {
156
- return {
157
- content: [
158
- {
159
- type: "text",
160
- text: JSON.stringify({
161
- error: error instanceof Error
162
- ? error.message
163
- : "Knowledge search failed",
164
- }, null, 2),
165
- },
166
- ],
167
- isError: true,
168
- };
161
+ neighbors = [...allNeighbors.values()];
162
+ neighborEdges = allEdges;
169
163
  }
164
+ return jsonResult({
165
+ results: formattedResults,
166
+ ...(neighbors !== undefined ? { neighbors, neighborEdges } : {}),
167
+ });
170
168
  },
171
169
  },
172
170
  {
@@ -196,50 +194,31 @@ export const knowledgeTools = [
196
194
  idempotentHint: true,
197
195
  openWorldHint: false,
198
196
  },
199
- async handler(args) {
197
+ async handler(args, client) {
200
198
  const { id, expand, expandDepth } = args;
201
- try {
202
- const result = await getNode(id);
203
- if (!result) {
204
- return {
205
- content: [
206
- {
207
- type: "text",
208
- text: JSON.stringify({ error: `Node not found: ${id}` }, null, 2),
209
- },
210
- ],
211
- isError: true,
212
- };
213
- }
214
- const response = {
215
- node: formatNode(result.node),
216
- edges: result.edges.map(formatEdge),
217
- };
218
- if (expand) {
219
- const safeDepth = clampInt(expandDepth, 1, MAX_EXPAND_DEPTH, 1);
220
- const expansion = await expandNode(id, {
221
- depth: safeDepth,
222
- });
223
- response.neighbors = expansion.nodes.map(formatNode);
224
- response.neighborEdges = expansion.edges.map(formatEdge);
225
- }
226
- return jsonResult(response);
227
- }
228
- catch (error) {
199
+ const response = await client.getKnowledgeNode({ id });
200
+ if (!response.node) {
229
201
  return {
230
202
  content: [
231
203
  {
232
204
  type: "text",
233
- text: JSON.stringify({
234
- error: error instanceof Error
235
- ? error.message
236
- : "Failed to retrieve node",
237
- }, null, 2),
205
+ text: JSON.stringify({ error: `Node not found: ${id}` }, null, 2),
238
206
  },
239
207
  ],
240
208
  isError: true,
241
209
  };
242
210
  }
211
+ const result = {
212
+ node: formatNode(response.node),
213
+ edges: response.edges.map(formatEdge),
214
+ };
215
+ if (expand) {
216
+ const safeDepth = clampInt(expandDepth, 1, MAX_EXPAND_DEPTH, 1);
217
+ const expansion = await client.expandKnowledgeNode({ id, depth: safeDepth });
218
+ result.neighbors = expansion.nodes.map(formatNode);
219
+ result.neighborEdges = expansion.edges.map(formatEdge);
220
+ }
221
+ return jsonResult(result);
243
222
  },
244
223
  },
245
224
  {
@@ -269,13 +248,7 @@ export const knowledgeTools = [
269
248
  .array(z.object({
270
249
  toId: z.string().describe("ID of the node to link to"),
271
250
  type: z
272
- .enum([
273
- EDGE_TYPE.RELATES_TO,
274
- EDGE_TYPE.DEPENDS_ON,
275
- EDGE_TYPE.DERIVED_FROM,
276
- EDGE_TYPE.MENTIONS,
277
- EDGE_TYPE.PART_OF,
278
- ])
251
+ .enum(EDGE_TYPES)
279
252
  .describe("Relationship type: RELATES_TO, DEPENDS_ON, DERIVED_FROM, MENTIONS, PART_OF"),
280
253
  }))
281
254
  .optional()
@@ -289,66 +262,27 @@ export const knowledgeTools = [
289
262
  idempotentHint: false,
290
263
  openWorldHint: false,
291
264
  },
292
- async handler(args, _client, authContext) {
293
- const { title, content, category, tags, workspaceId, edges, } = args;
294
- try {
295
- const emb = requireEmbedder();
296
- const { vector } = await emb.embed(`${title} ${content}`);
297
- // For scoped callers, always use the auth context workspace.
298
- // For full-access callers, use the provided workspace or empty.
299
- const resolvedWorkspaceId = authContext?.type === "scoped"
300
- ? authContext.workspaceId ?? ""
301
- : workspaceId ?? "";
302
- const nodeId = await createNativeNode({
303
- category: category ?? NATIVE_CATEGORY.INSIGHT,
304
- title,
305
- content,
306
- tags: tags ?? [],
307
- embedding: vector,
308
- workspaceId: resolvedWorkspaceId,
309
- });
310
- // Create edges if requested
311
- const createdEdges = [];
312
- if (edges) {
313
- for (const edge of edges) {
314
- try {
315
- await createEdge(nodeId, edge.toId, edge.type);
316
- createdEdges.push({ toId: edge.toId, type: edge.type });
317
- }
318
- catch (edgeError) {
319
- logger.warn({ nodeId, toId: edge.toId, type: edge.type, err: edgeError }, "Failed to create edge for knowledge node");
320
- createdEdges.push({
321
- toId: edge.toId,
322
- type: edge.type,
323
- error: edgeError instanceof Error
324
- ? edgeError.message
325
- : "Failed to create edge",
326
- });
327
- }
328
- }
329
- }
330
- return jsonResult({
331
- id: nodeId,
332
- title,
333
- category: category ?? NATIVE_CATEGORY.INSIGHT,
334
- ...(createdEdges.length > 0 ? { edges: createdEdges } : {}),
335
- });
336
- }
337
- catch (error) {
338
- return {
339
- content: [
340
- {
341
- type: "text",
342
- text: JSON.stringify({
343
- error: error instanceof Error
344
- ? error.message
345
- : "Failed to create knowledge entry",
346
- }, null, 2),
347
- },
348
- ],
349
- isError: true,
350
- };
351
- }
265
+ async handler(args, client, authContext) {
266
+ const { title, content, category, tags, workspaceId, } = args;
267
+ // For scoped callers, always use the auth context workspace.
268
+ const resolvedWorkspaceId = authContext?.type === "scoped"
269
+ ? authContext.workspaceId ?? ""
270
+ : workspaceId ?? "";
271
+ const response = await client.createKnowledgeNode({
272
+ title,
273
+ content,
274
+ category: category ?? "insight",
275
+ tags: tags ?? [],
276
+ workspaceId: resolvedWorkspaceId,
277
+ });
278
+ // Note: edge creation is now handled server-side or as a follow-up.
279
+ // The gRPC CreateKnowledgeNode endpoint creates the node; edges
280
+ // can be added in a future enhancement.
281
+ return jsonResult({
282
+ id: response.id,
283
+ title,
284
+ category: category ?? "insight",
285
+ });
352
286
  },
353
287
  },
354
288
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/tools/knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/tools/knowledge.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grackle-ai/mcp",
3
- "version": "0.67.0",
3
+ "version": "0.68.0",
4
4
  "description": "MCP (Model Context Protocol) server for Grackle — translates MCP tool calls to ConnectRPC",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -33,8 +33,7 @@
33
33
  "@modelcontextprotocol/sdk": "^1.27.0",
34
34
  "pino": "^10.3.1",
35
35
  "zod": "^4.0.0",
36
- "@grackle-ai/common": "0.67.0",
37
- "@grackle-ai/knowledge": "0.67.0"
36
+ "@grackle-ai/common": "0.68.0"
38
37
  },
39
38
  "devDependencies": {
40
39
  "@rushstack/heft": "1.2.4",