@grafema/mcp 0.2.11 → 0.3.0-beta

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 (158) hide show
  1. package/dist/analysis-worker.d.ts +4 -3
  2. package/dist/analysis-worker.d.ts.map +1 -1
  3. package/dist/analysis-worker.js +8 -203
  4. package/dist/analysis-worker.js.map +1 -1
  5. package/dist/analysis.d.ts +10 -3
  6. package/dist/analysis.d.ts.map +1 -1
  7. package/dist/analysis.js +130 -62
  8. package/dist/analysis.js.map +1 -1
  9. package/dist/config.d.ts +5 -11
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +6 -128
  12. package/dist/config.js.map +1 -1
  13. package/dist/definitions/analysis-tools.d.ts +6 -0
  14. package/dist/definitions/analysis-tools.d.ts.map +1 -0
  15. package/dist/definitions/analysis-tools.js +125 -0
  16. package/dist/definitions/analysis-tools.js.map +1 -0
  17. package/dist/definitions/context-tools.d.ts +6 -0
  18. package/dist/definitions/context-tools.d.ts.map +1 -0
  19. package/dist/definitions/context-tools.js +144 -0
  20. package/dist/definitions/context-tools.js.map +1 -0
  21. package/dist/definitions/graph-tools.d.ts +7 -0
  22. package/dist/definitions/graph-tools.d.ts.map +1 -0
  23. package/dist/definitions/graph-tools.js +124 -0
  24. package/dist/definitions/graph-tools.js.map +1 -0
  25. package/dist/definitions/graphql-tools.d.ts +6 -0
  26. package/dist/definitions/graphql-tools.d.ts.map +1 -0
  27. package/dist/definitions/graphql-tools.js +62 -0
  28. package/dist/definitions/graphql-tools.js.map +1 -0
  29. package/dist/definitions/guarantee-tools.d.ts +6 -0
  30. package/dist/definitions/guarantee-tools.d.ts.map +1 -0
  31. package/dist/definitions/guarantee-tools.js +136 -0
  32. package/dist/definitions/guarantee-tools.js.map +1 -0
  33. package/dist/definitions/index.d.ts +7 -0
  34. package/dist/definitions/index.d.ts.map +1 -0
  35. package/dist/definitions/index.js +24 -0
  36. package/dist/definitions/index.js.map +1 -0
  37. package/dist/definitions/knowledge-tools.d.ts +10 -0
  38. package/dist/definitions/knowledge-tools.d.ts.map +1 -0
  39. package/dist/definitions/knowledge-tools.js +300 -0
  40. package/dist/definitions/knowledge-tools.js.map +1 -0
  41. package/dist/definitions/notation-tools.d.ts +9 -0
  42. package/dist/definitions/notation-tools.d.ts.map +1 -0
  43. package/dist/definitions/notation-tools.js +62 -0
  44. package/dist/definitions/notation-tools.js.map +1 -0
  45. package/dist/definitions/project-tools.d.ts +6 -0
  46. package/dist/definitions/project-tools.d.ts.map +1 -0
  47. package/dist/definitions/project-tools.js +181 -0
  48. package/dist/definitions/project-tools.js.map +1 -0
  49. package/dist/definitions/query-tools.d.ts +6 -0
  50. package/dist/definitions/query-tools.d.ts.map +1 -0
  51. package/dist/definitions/query-tools.js +245 -0
  52. package/dist/definitions/query-tools.js.map +1 -0
  53. package/dist/definitions/types.d.ts +21 -0
  54. package/dist/definitions/types.d.ts.map +1 -0
  55. package/dist/definitions/types.js +5 -0
  56. package/dist/definitions/types.js.map +1 -0
  57. package/dist/dev-proxy.d.ts +29 -0
  58. package/dist/dev-proxy.d.ts.map +1 -0
  59. package/dist/dev-proxy.js +267 -0
  60. package/dist/dev-proxy.js.map +1 -0
  61. package/dist/handlers/analysis-handlers.d.ts.map +1 -1
  62. package/dist/handlers/analysis-handlers.js +34 -4
  63. package/dist/handlers/analysis-handlers.js.map +1 -1
  64. package/dist/handlers/context-handlers.d.ts +5 -6
  65. package/dist/handlers/context-handlers.d.ts.map +1 -1
  66. package/dist/handlers/context-handlers.js +19 -16
  67. package/dist/handlers/context-handlers.js.map +1 -1
  68. package/dist/handlers/coverage-handlers.js +1 -1
  69. package/dist/handlers/dataflow-handlers.d.ts +2 -0
  70. package/dist/handlers/dataflow-handlers.d.ts.map +1 -1
  71. package/dist/handlers/dataflow-handlers.js +68 -46
  72. package/dist/handlers/dataflow-handlers.js.map +1 -1
  73. package/dist/handlers/documentation-handlers.d.ts.map +1 -1
  74. package/dist/handlers/documentation-handlers.js +56 -2
  75. package/dist/handlers/documentation-handlers.js.map +1 -1
  76. package/dist/handlers/graph-handlers.d.ts +23 -0
  77. package/dist/handlers/graph-handlers.d.ts.map +1 -0
  78. package/dist/handlers/graph-handlers.js +155 -0
  79. package/dist/handlers/graph-handlers.js.map +1 -0
  80. package/dist/handlers/graphql-handlers.d.ts +9 -0
  81. package/dist/handlers/graphql-handlers.d.ts.map +1 -0
  82. package/dist/handlers/graphql-handlers.js +57 -0
  83. package/dist/handlers/graphql-handlers.js.map +1 -0
  84. package/dist/handlers/guarantee-handlers.js +1 -1
  85. package/dist/handlers/guard-handlers.d.ts.map +1 -1
  86. package/dist/handlers/guard-handlers.js +6 -3
  87. package/dist/handlers/guard-handlers.js.map +1 -1
  88. package/dist/handlers/index.d.ts +4 -0
  89. package/dist/handlers/index.d.ts.map +1 -1
  90. package/dist/handlers/index.js +6 -0
  91. package/dist/handlers/index.js.map +1 -1
  92. package/dist/handlers/issue-handlers.d.ts.map +1 -1
  93. package/dist/handlers/issue-handlers.js +10 -15
  94. package/dist/handlers/issue-handlers.js.map +1 -1
  95. package/dist/handlers/knowledge-handlers.d.ts +25 -0
  96. package/dist/handlers/knowledge-handlers.d.ts.map +1 -0
  97. package/dist/handlers/knowledge-handlers.js +208 -0
  98. package/dist/handlers/knowledge-handlers.js.map +1 -0
  99. package/dist/handlers/notation-handlers.d.ts +6 -0
  100. package/dist/handlers/notation-handlers.d.ts.map +1 -0
  101. package/dist/handlers/notation-handlers.js +53 -0
  102. package/dist/handlers/notation-handlers.js.map +1 -0
  103. package/dist/handlers/project-handlers.js +1 -1
  104. package/dist/handlers/query-handlers.d.ts.map +1 -1
  105. package/dist/handlers/query-handlers.js +166 -20
  106. package/dist/handlers/query-handlers.js.map +1 -1
  107. package/dist/prompts.js +1 -1
  108. package/dist/server.d.ts +19 -1
  109. package/dist/server.d.ts.map +1 -1
  110. package/dist/server.js +93 -3
  111. package/dist/server.js.map +1 -1
  112. package/dist/state.d.ts +10 -1
  113. package/dist/state.d.ts.map +1 -1
  114. package/dist/state.js +61 -8
  115. package/dist/state.js.map +1 -1
  116. package/dist/types.d.ts +75 -3
  117. package/dist/types.d.ts.map +1 -1
  118. package/dist/utils.d.ts +4 -0
  119. package/dist/utils.d.ts.map +1 -1
  120. package/dist/utils.js +18 -1
  121. package/dist/utils.js.map +1 -1
  122. package/package.json +4 -3
  123. package/src/analysis-worker.ts +9 -301
  124. package/src/analysis.ts +151 -77
  125. package/src/config.ts +6 -193
  126. package/src/definitions/analysis-tools.ts +127 -0
  127. package/src/definitions/context-tools.ts +147 -0
  128. package/src/definitions/graph-tools.ts +126 -0
  129. package/src/definitions/graphql-tools.ts +64 -0
  130. package/src/definitions/guarantee-tools.ts +138 -0
  131. package/src/definitions/index.ts +28 -0
  132. package/src/definitions/knowledge-tools.ts +302 -0
  133. package/src/definitions/notation-tools.ts +64 -0
  134. package/src/definitions/project-tools.ts +183 -0
  135. package/src/definitions/query-tools.ts +247 -0
  136. package/src/definitions/types.ts +22 -0
  137. package/src/dev-proxy.ts +336 -0
  138. package/src/handlers/analysis-handlers.ts +35 -4
  139. package/src/handlers/context-handlers.ts +19 -15
  140. package/src/handlers/coverage-handlers.ts +1 -1
  141. package/src/handlers/dataflow-handlers.ts +74 -56
  142. package/src/handlers/documentation-handlers.ts +56 -2
  143. package/src/handlers/graph-handlers.ts +212 -0
  144. package/src/handlers/graphql-handlers.ts +70 -0
  145. package/src/handlers/guarantee-handlers.ts +1 -1
  146. package/src/handlers/guard-handlers.ts +7 -3
  147. package/src/handlers/index.ts +6 -0
  148. package/src/handlers/issue-handlers.ts +10 -15
  149. package/src/handlers/knowledge-handlers.ts +242 -0
  150. package/src/handlers/notation-handlers.ts +71 -0
  151. package/src/handlers/project-handlers.ts +1 -1
  152. package/src/handlers/query-handlers.ts +186 -22
  153. package/src/prompts.ts +1 -1
  154. package/src/server.ts +126 -2
  155. package/src/state.ts +68 -8
  156. package/src/types.ts +98 -3
  157. package/src/utils.ts +22 -1
  158. package/src/definitions.ts +0 -665
@@ -2,54 +2,153 @@
2
2
  * MCP Query Handlers
3
3
  */
4
4
  import { ensureAnalyzed } from '../analysis.js';
5
- import { normalizeLimit, formatPaginationInfo, guardResponseSize, serializeBigInt, findSimilarTypes, textResult, errorResult, } from '../utils.js';
5
+ import { normalizeLimit, formatPaginationInfo, guardResponseSize, serializeBigInt, findSimilarTypes, extractQueriedTypes, textResult, errorResult, } from '../utils.js';
6
6
  // === QUERY HANDLERS ===
7
7
  export async function handleQueryGraph(args) {
8
8
  const db = await ensureAnalyzed();
9
- const { query, limit: requestedLimit, offset: requestedOffset, format: _format, explain: _explain } = args;
9
+ const { query, language, limit: requestedLimit, offset: requestedOffset, format: _format, explain, count } = args;
10
10
  const limit = normalizeLimit(requestedLimit);
11
11
  const offset = Math.max(0, requestedOffset || 0);
12
12
  try {
13
+ // Cypher query path
14
+ if (language === 'cypher') {
15
+ if (!('cypherQuery' in db)) {
16
+ return errorResult('Backend does not support Cypher queries');
17
+ }
18
+ const cypherFn = db.cypherQuery;
19
+ const result = await cypherFn.call(db, query);
20
+ if (count) {
21
+ return textResult(`Count: ${result.rowCount}`);
22
+ }
23
+ if (result.rowCount === 0) {
24
+ return textResult('Query returned no results.');
25
+ }
26
+ const paginatedRows = result.rows.slice(offset, offset + limit);
27
+ const hasMore = offset + limit < result.rowCount;
28
+ const paginationInfo = formatPaginationInfo({
29
+ limit,
30
+ offset,
31
+ returned: paginatedRows.length,
32
+ total: result.rowCount,
33
+ hasMore,
34
+ });
35
+ // Format as table
36
+ const lines = [];
37
+ lines.push(`Found ${result.rowCount} row(s):${paginationInfo}`);
38
+ lines.push('');
39
+ // Column widths
40
+ const colWidths = result.columns.map((col, i) => {
41
+ let maxWidth = col.length;
42
+ for (const row of paginatedRows) {
43
+ const cellLen = String(row[i] ?? '').length;
44
+ if (cellLen > maxWidth)
45
+ maxWidth = cellLen;
46
+ }
47
+ return Math.min(maxWidth, 60);
48
+ });
49
+ lines.push(result.columns.map((col, i) => col.padEnd(colWidths[i])).join(' '));
50
+ lines.push(colWidths.map(w => '-'.repeat(w)).join(' '));
51
+ for (const row of paginatedRows) {
52
+ const line = row.map((cell, i) => {
53
+ const s = String(cell ?? '');
54
+ return s.length > colWidths[i] ? s.slice(0, colWidths[i] - 1) + '\u2026' : s.padEnd(colWidths[i]);
55
+ }).join(' ');
56
+ lines.push(line);
57
+ }
58
+ return textResult(guardResponseSize(lines.join('\n')));
59
+ }
13
60
  // Check if backend supports Datalog queries
14
61
  if (!('checkGuarantee' in db)) {
15
62
  return errorResult('Backend does not support Datalog queries');
16
63
  }
64
+ // Explain mode — separate path with step-by-step trace
65
+ if (explain) {
66
+ const checkFn = db.checkGuarantee;
67
+ const result = await checkFn.call(db, query, true);
68
+ return textResult(guardResponseSize(formatExplainOutput(result)));
69
+ }
17
70
  const checkFn = db.checkGuarantee;
18
- const results = await checkFn(query);
71
+ const results = await checkFn.call(db, query);
19
72
  const total = results.length;
73
+ if (count) {
74
+ return textResult(`Count: ${total}`);
75
+ }
20
76
  if (total === 0) {
77
+ const { nodeTypes, edgeTypes } = extractQueriedTypes(query);
78
+ const hasQueriedTypes = nodeTypes.length > 0 || edgeTypes.length > 0;
21
79
  const nodeCounts = await db.countNodesByType();
22
- const totalNodes = Object.values(nodeCounts).reduce((a, b) => a + b, 0);
23
- const typeMatch = query.match(/node\([^,]+,\s*"([^"]+)"\)/);
24
- const queriedType = typeMatch ? typeMatch[1] : null;
80
+ const edgeCounts = edgeTypes.length > 0 ? await db.countEdgesByType() : {};
81
+ const availableNodeTypes = Object.keys(nodeCounts);
82
+ const availableEdgeTypes = Object.keys(edgeCounts);
25
83
  let hint = '';
26
- if (queriedType && !nodeCounts[queriedType]) {
27
- const availableTypes = Object.keys(nodeCounts);
28
- const similar = findSimilarTypes(queriedType, availableTypes);
29
- if (similar.length > 0) {
30
- hint = `\n💡 Did you mean: ${similar.join(', ')}?`;
84
+ if (hasQueriedTypes) {
85
+ const hintLines = [];
86
+ if (nodeTypes.length > 0 && availableNodeTypes.length === 0) {
87
+ hintLines.push('Graph has no nodes');
88
+ }
89
+ else {
90
+ for (const queriedType of nodeTypes) {
91
+ if (!nodeCounts[queriedType]) {
92
+ const similar = findSimilarTypes(queriedType, availableNodeTypes);
93
+ if (similar.length > 0) {
94
+ hintLines.push(`Did you mean: ${similar.join(', ')}? (node type)`);
95
+ }
96
+ else {
97
+ const typeList = availableNodeTypes.slice(0, 10).join(', ');
98
+ const more = availableNodeTypes.length > 10 ? '...' : '';
99
+ hintLines.push(`Available node types: ${typeList}${more}`);
100
+ }
101
+ }
102
+ }
103
+ }
104
+ if (edgeTypes.length > 0 && availableEdgeTypes.length === 0) {
105
+ hintLines.push('Graph has no edges');
31
106
  }
32
107
  else {
33
- hint = `\n💡 Available types: ${availableTypes.slice(0, 10).join(', ')}${availableTypes.length > 10 ? '...' : ''}`;
108
+ for (const queriedType of edgeTypes) {
109
+ if (!edgeCounts[queriedType]) {
110
+ const similar = findSimilarTypes(queriedType, availableEdgeTypes);
111
+ if (similar.length > 0) {
112
+ hintLines.push(`Did you mean: ${similar.join(', ')}? (edge type)`);
113
+ }
114
+ else {
115
+ const typeList = availableEdgeTypes.slice(0, 10).join(', ');
116
+ const more = availableEdgeTypes.length > 10 ? '...' : '';
117
+ hintLines.push(`Available edge types: ${typeList}${more}`);
118
+ }
119
+ }
120
+ }
121
+ }
122
+ if (hintLines.length > 0) {
123
+ hint = '\n' + hintLines.map(l => `Hint: ${l}`).join('\n');
34
124
  }
35
125
  }
36
- return textResult(`Query returned no results.${hint}\n📊 Graph: ${totalNodes.toLocaleString()} nodes`);
126
+ const totalNodes = Object.values(nodeCounts).reduce((a, b) => a + b, 0);
127
+ return textResult(`Query returned no results.${hint}\nGraph: ${totalNodes.toLocaleString()} nodes`);
37
128
  }
38
129
  const paginatedResults = results.slice(offset, offset + limit);
39
130
  const hasMore = offset + limit < total;
40
131
  const enrichedResults = [];
41
132
  for (const result of paginatedResults) {
42
- const nodeId = result.bindings?.find((b) => b.name === 'X')?.value;
43
- if (nodeId) {
44
- const node = await db.getNode(nodeId);
133
+ const xBinding = result.bindings?.find((b) => b.name === 'X');
134
+ if (xBinding) {
135
+ const node = await db.getNode(xBinding.value);
45
136
  if (node) {
46
137
  enrichedResults.push({
47
138
  ...node,
48
- id: nodeId,
139
+ id: xBinding.value,
49
140
  file: node.file,
50
141
  line: node.line,
51
142
  });
52
143
  }
144
+ else {
145
+ // Non-node-ID binding (e.g. attr() string value) — return raw bindings map
146
+ const bindingsMap = {};
147
+ for (const b of result.bindings) {
148
+ bindingsMap[b.name] = b.value;
149
+ }
150
+ enrichedResults.push(bindingsMap);
151
+ }
53
152
  }
54
153
  }
55
154
  const paginationInfo = formatPaginationInfo({
@@ -69,16 +168,22 @@ export async function handleQueryGraph(args) {
69
168
  }
70
169
  export async function handleFindCalls(args) {
71
170
  const db = await ensureAnalyzed();
72
- const { target: name, limit: requestedLimit, offset: requestedOffset, className } = args;
171
+ const { name, limit: requestedLimit, offset: requestedOffset, className } = args;
73
172
  const limit = normalizeLimit(requestedLimit);
74
173
  const offset = Math.max(0, requestedOffset || 0);
75
174
  const calls = [];
76
175
  let skipped = 0;
77
176
  let totalMatched = 0;
78
177
  for await (const node of db.queryNodes({ type: 'CALL' })) {
79
- if (node.name !== name && node['method'] !== name)
178
+ const nodeName = node.name ?? '';
179
+ // Method calls are stored as "receiver.method" (e.g., "kb.queryNodes", "<obj>.load").
180
+ // Extract the method part so find_calls("queryNodes") matches "kb.queryNodes".
181
+ const dotIdx = nodeName.lastIndexOf('.');
182
+ const methodPart = dotIdx >= 0 ? nodeName.slice(dotIdx + 1) : null;
183
+ const receiverPart = dotIdx >= 0 ? nodeName.slice(0, dotIdx) : null;
184
+ if (nodeName !== name && methodPart !== name)
80
185
  continue;
81
- if (className && node['object'] !== className)
186
+ if (className && receiverPart !== className)
82
187
  continue;
83
188
  totalMatched++;
84
189
  if (skipped < offset) {
@@ -130,6 +235,46 @@ export async function handleFindCalls(args) {
130
235
  JSON.stringify(serializeBigInt(calls), null, 2);
131
236
  return textResult(guardResponseSize(responseText));
132
237
  }
238
+ function formatExplainOutput(result) {
239
+ const lines = [];
240
+ lines.push(`Query returned ${result.bindings.length} result(s).\n`);
241
+ if (result.explainSteps.length > 0) {
242
+ lines.push('Step-by-step execution:');
243
+ const maxSteps = 50;
244
+ const stepsToShow = result.explainSteps.slice(0, maxSteps);
245
+ for (const step of stepsToShow) {
246
+ const args = step.args.join(', ');
247
+ lines.push(` ${step.step}. [${step.operation}] ${step.predicate}(${args}) \u2192 ${step.resultCount} result(s) (${step.durationUs} \u00b5s)`);
248
+ if (step.details) {
249
+ lines.push(` ${step.details}`);
250
+ }
251
+ }
252
+ if (result.explainSteps.length > maxSteps) {
253
+ lines.push(` ... ${result.explainSteps.length - maxSteps} more steps`);
254
+ }
255
+ lines.push('');
256
+ }
257
+ lines.push('Statistics:');
258
+ lines.push(` Nodes visited: ${result.stats.nodesVisited}`);
259
+ lines.push(` Edges traversed: ${result.stats.edgesTraversed}`);
260
+ lines.push(` Rule evaluations: ${result.stats.ruleEvaluations}`);
261
+ lines.push(` Total results: ${result.stats.totalResults}`);
262
+ lines.push(` Duration: ${result.profile.totalDurationUs} \u00b5s`);
263
+ lines.push('');
264
+ if (result.bindings.length > 0) {
265
+ lines.push('Bindings:');
266
+ const maxBindings = 20;
267
+ const bindingsToShow = result.bindings.slice(0, maxBindings);
268
+ for (const row of bindingsToShow) {
269
+ const pairs = Object.entries(row).map(([k, v]) => `${k}=${v}`).join(', ');
270
+ lines.push(` { ${pairs} }`);
271
+ }
272
+ if (result.bindings.length > maxBindings) {
273
+ lines.push(` ... ${result.bindings.length - maxBindings} more results`);
274
+ }
275
+ }
276
+ return lines.join('\n');
277
+ }
133
278
  export async function handleFindNodes(args) {
134
279
  const db = await ensureAnalyzed();
135
280
  const { type, name, file, limit: requestedLimit, offset: requestedOffset } = args;
@@ -142,6 +287,7 @@ export async function handleFindNodes(args) {
142
287
  filter.name = name;
143
288
  if (file)
144
289
  filter.file = file;
290
+ filter.substringMatch = true;
145
291
  const nodes = [];
146
292
  let skipped = 0;
147
293
  let totalMatched = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"query-handlers.js","sourceRoot":"","sources":["../../src/handlers/query-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-handlers.js","sourceRoot":"","sources":["../../src/handlers/query-handlers.ts"],"names":[],"mappings":"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"}
package/dist/prompts.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * MCP Prompts handler logic.
3
3
  * Extracted for testability — server.ts is a thin wrapper.
4
4
  */
5
- import { getOnboardingInstruction } from '@grafema/core';
5
+ import { getOnboardingInstruction } from '@grafema/util';
6
6
  export const PROMPTS = [
7
7
  {
8
8
  name: 'onboard_project',
package/dist/server.d.ts CHANGED
@@ -2,7 +2,25 @@
2
2
  /**
3
3
  * Grafema MCP Server
4
4
  *
5
- * Provides code analysis tools via Model Context Protocol.
5
+ * Graph-driven code analysis for AI agents. Query the code graph instead of reading files.
6
+ *
7
+ * Use Grafema when you need to:
8
+ * - Navigate code structure (find callers, trace data flow, understand impact)
9
+ * - Answer "who calls this?", "where is this used?", "what does this affect?"
10
+ * - Analyze untyped/dynamic codebases where static analysis falls short
11
+ * - Track relationships across files without manual grep
12
+ *
13
+ * Core capabilities:
14
+ * - Datalog queries for pattern matching (query_graph)
15
+ * - Call graph navigation (find_calls, get_function_details)
16
+ * - Data flow tracing (trace_dataflow, trace_alias)
17
+ * - Graph traversal primitives (get_node, get_neighbors, traverse_graph)
18
+ * - Code guarantees/invariants (create_guarantee, check_guarantees)
19
+ *
20
+ * Workflow:
21
+ * 1. discover_services — identify project structure
22
+ * 2. analyze_project — build the graph
23
+ * 3. Use query tools to explore code relationships
6
24
  */
7
25
  export {};
8
26
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA;;;;GAIG"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;GAsBG"}
package/dist/server.js CHANGED
@@ -2,17 +2,41 @@
2
2
  /**
3
3
  * Grafema MCP Server
4
4
  *
5
- * Provides code analysis tools via Model Context Protocol.
5
+ * Graph-driven code analysis for AI agents. Query the code graph instead of reading files.
6
+ *
7
+ * Use Grafema when you need to:
8
+ * - Navigate code structure (find callers, trace data flow, understand impact)
9
+ * - Answer "who calls this?", "where is this used?", "what does this affect?"
10
+ * - Analyze untyped/dynamic codebases where static analysis falls short
11
+ * - Track relationships across files without manual grep
12
+ *
13
+ * Core capabilities:
14
+ * - Datalog queries for pattern matching (query_graph)
15
+ * - Call graph navigation (find_calls, get_function_details)
16
+ * - Data flow tracing (trace_dataflow, trace_alias)
17
+ * - Graph traversal primitives (get_node, get_neighbors, traverse_graph)
18
+ * - Code guarantees/invariants (create_guarantee, check_guarantees)
19
+ *
20
+ * Workflow:
21
+ * 1. discover_services — identify project structure
22
+ * 2. analyze_project — build the graph
23
+ * 3. Use query tools to explore code relationships
6
24
  */
7
25
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
8
26
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
9
27
  import { CallToolRequestSchema, ListToolsRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
10
28
  import { PROMPTS, getPrompt } from './prompts.js';
11
- import { TOOLS } from './definitions.js';
29
+ import { TOOLS } from './definitions/index.js';
12
30
  import { initializeFromArgs, setupLogging, getProjectPath } from './state.js';
13
31
  import { textResult, errorResult, log } from './utils.js';
14
32
  import { discoverServices } from './analysis.js';
15
- import { handleQueryGraph, handleFindCalls, handleFindNodes, handleTraceAlias, handleTraceDataFlow, handleCheckInvariant, handleAnalyzeProject, handleGetAnalysisStatus, handleGetStats, handleGetSchema, handleCreateGuarantee, handleListGuarantees, handleCheckGuarantees, handleDeleteGuarantee, handleGetCoverage, handleGetDocumentation, handleFindGuards, handleReportIssue, handleGetFunctionDetails, handleGetContext, handleReadProjectStructure, handleWriteConfig, handleGetFileOverview, } from './handlers/index.js';
33
+ import { handleQueryGraph, handleFindCalls, handleFindNodes, handleTraceAlias, handleTraceDataFlow, handleCheckInvariant, handleAnalyzeProject, handleGetAnalysisStatus, handleGetStats, handleGetSchema, handleCreateGuarantee, handleListGuarantees, handleCheckGuarantees, handleDeleteGuarantee, handleGetCoverage, handleGetDocumentation, handleFindGuards, handleReportIssue, handleGetFunctionDetails, handleGetContext, handleReadProjectStructure, handleWriteConfig, handleGetFileOverview, handleGetNode, handleGetNeighbors, handleTraverseGraph, handleAddKnowledge, handleQueryKnowledge, handleQueryDecisions, handleSupersedeFact, handleGetKnowledgeStats,
34
+ // Disabled: requires git-ingest (US-17). See US-17 in AI-AGENT-STORIES.md
35
+ // handleGitChurn,
36
+ // handleGitCoChange,
37
+ // handleGitOwnership,
38
+ // handleGitArchaeology,
39
+ handleDescribe, handleGraphQLQuery, } from './handlers/index.js';
16
40
  /**
17
41
  * Type-safe argument casting helper.
18
42
  * MCP SDK provides args as Record<string, unknown>, this helper
@@ -30,11 +54,31 @@ log(`[Grafema MCP] Starting server for project: ${projectPath}`);
30
54
  const server = new Server({
31
55
  name: 'grafema-mcp',
32
56
  version: '0.1.0',
57
+ description: 'Graph-driven code analysis. Query the code graph instead of reading files. Navigate call graphs, trace data flow, verify guarantees. For AI agents working with untyped/dynamic codebases.',
33
58
  }, {
34
59
  capabilities: {
35
60
  tools: {},
36
61
  prompts: {},
37
62
  },
63
+ instructions: `Grafema is a code graph — use it instead of reading files.
64
+
65
+ START HERE: call get_stats to check if the graph is loaded (nodeCount > 0).
66
+ If nodeCount is 0, call analyze_project first.
67
+
68
+ EXPLORATION WORKFLOW:
69
+ 1. To understand a file → get_file_overview (shows imports, exports, functions, classes with relationships)
70
+ 2. To find functions/classes/modules → find_nodes (filter by type, name, or file pattern)
71
+ 3. To find who calls a function → find_calls (returns call sites with resolution status)
72
+ 4. To understand data flow → trace_dataflow (forward: where does this value go? backward: where does it come from?)
73
+ 5. To understand full context of a node → get_context (shows surrounding code, scope chain, relationships)
74
+ 6. For complex pattern queries → query_graph with Datalog (call get_documentation topic="queries" for syntax)
75
+ 7. To query architectural decisions and facts → query_knowledge, query_decisions, get_knowledge_stats
76
+ 8. To get a compact visual summary → describe (renders DSL notation with archetype-grouped operators)
77
+ 9. For DSL syntax reference → get_documentation topic="notation"
78
+
79
+ KEY INSIGHT: find_nodes supports partial matching on name and file fields.
80
+ Example: find_nodes(file="auth/") returns all nodes in files matching "auth/".
81
+ Example: find_nodes(name="redis", type="CALL") finds all calls containing "redis".`,
38
82
  });
39
83
  // List available tools
40
84
  server.setRequestHandler(ListToolsRequestSchema, async (_request, _extra) => {
@@ -131,6 +175,52 @@ server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
131
175
  case 'write_config':
132
176
  result = await handleWriteConfig(asArgs(args));
133
177
  break;
178
+ case 'get_node':
179
+ result = await handleGetNode(asArgs(args));
180
+ break;
181
+ case 'get_neighbors':
182
+ result = await handleGetNeighbors(asArgs(args));
183
+ break;
184
+ case 'traverse_graph':
185
+ result = await handleTraverseGraph(asArgs(args));
186
+ break;
187
+ case 'add_knowledge':
188
+ result = await handleAddKnowledge(asArgs(args));
189
+ break;
190
+ case 'query_knowledge':
191
+ result = await handleQueryKnowledge(asArgs(args));
192
+ break;
193
+ case 'query_decisions':
194
+ result = await handleQueryDecisions(asArgs(args));
195
+ break;
196
+ case 'supersede_fact':
197
+ result = await handleSupersedeFact(asArgs(args));
198
+ break;
199
+ case 'get_knowledge_stats':
200
+ result = await handleGetKnowledgeStats();
201
+ break;
202
+ // Disabled: requires git-ingest (US-17). See US-17 in AI-AGENT-STORIES.md
203
+ // case 'git_churn':
204
+ // result = await handleGitChurn(asArgs<GitChurnArgs>(args));
205
+ // break;
206
+ //
207
+ // case 'git_cochange':
208
+ // result = await handleGitCoChange(asArgs<GitCoChangeArgs>(args));
209
+ // break;
210
+ //
211
+ // case 'git_ownership':
212
+ // result = await handleGitOwnership(asArgs<GitOwnershipArgs>(args));
213
+ // break;
214
+ //
215
+ // case 'git_archaeology':
216
+ // result = await handleGitArchaeology(asArgs<GitArchaeologyArgs>(args));
217
+ // break;
218
+ case 'describe':
219
+ result = await handleDescribe(asArgs(args));
220
+ break;
221
+ case 'query_graphql':
222
+ result = await handleGraphQLQuery(asArgs(args));
223
+ break;
134
224
  default:
135
225
  result = errorResult(`Unknown tool: ${name}`);
136
226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/state.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * MCP Server State Management
3
3
  */
4
- import { GuaranteeManager, GuaranteeAPI } from '@grafema/core';
4
+ import { GuaranteeManager, GuaranteeAPI, KnowledgeBase } from '@grafema/util';
5
5
  import type { AnalysisStatus } from './types.js';
6
6
  import type { GraphBackend } from '@grafema/types';
7
7
  export declare function getProjectPath(): string;
@@ -10,6 +10,7 @@ export declare function getAnalysisStatus(): AnalysisStatus;
10
10
  export declare function getBackgroundPid(): number | null;
11
11
  export declare function getGuaranteeManager(): GuaranteeManager | null;
12
12
  export declare function getGuaranteeAPI(): GuaranteeAPI | null;
13
+ export declare function getKnowledgeBase(): KnowledgeBase | null;
13
14
  export declare function setProjectPath(path: string): void;
14
15
  export declare function setIsAnalyzed(value: boolean): void;
15
16
  export declare function setAnalysisStatus(status: Partial<AnalysisStatus>): void;
@@ -54,9 +55,17 @@ export declare function acquireAnalysisLock(): Promise<() => void>;
54
55
  * @returns Promise that resolves when no analysis is running
55
56
  */
56
57
  export declare function waitForAnalysis(): Promise<void>;
58
+ export declare function resetBackend(): void;
59
+ export declare function resetKnowledgeBase(): void;
57
60
  export declare function getOrCreateBackend(): Promise<GraphBackend>;
58
61
  export declare function getBackendIfExists(): GraphBackend | null;
59
62
  export declare function setupLogging(): void;
63
+ /**
64
+ * Get or create the KnowledgeBase singleton.
65
+ * Lazy-initializes from knowledge/ directory on first access.
66
+ * If a backend is available, wires up the SemanticAddressResolver.
67
+ */
68
+ export declare function getOrCreateKnowledgeBase(): Promise<KnowledgeBase>;
60
69
  export declare function initializeFromArgs(): void;
61
70
  export declare function cleanup(): Promise<void>;
62
71
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAqB,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAIlF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA+EnD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAElD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAE7D;AAED,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAElD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAEvE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEzD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAEvF;AAID;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CA8B/D;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAIrD;AAGD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAgChE;AAkBD,wBAAgB,kBAAkB,IAAI,YAAY,GAAG,IAAI,CAExD;AAGD,wBAAgB,YAAY,IAAI,IAAI,CAMnC;AAGD,wBAAgB,kBAAkB,IAAI,IAAI,CAQzC;AAGD,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAI7C"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAqB,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAIjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkFnD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAElD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAE7D;AAED,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAEvD;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAElD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAEvE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEzD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAEvF;AAID;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CA8B/D;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAIrD;AAGD,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CA0ChE;AA6BD,wBAAgB,kBAAkB,IAAI,YAAY,GAAG,IAAI,CAExD;AAGD,wBAAgB,YAAY,IAAI,IAAI,CAMnC;AAGD;;;;GAIG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,aAAa,CAAC,CAevE;AAGD,wBAAgB,kBAAkB,IAAI,IAAI,CAQzC;AAGD,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAI7C"}