@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.
- package/dist/analysis-worker.d.ts +4 -3
- package/dist/analysis-worker.d.ts.map +1 -1
- package/dist/analysis-worker.js +8 -203
- package/dist/analysis-worker.js.map +1 -1
- package/dist/analysis.d.ts +10 -3
- package/dist/analysis.d.ts.map +1 -1
- package/dist/analysis.js +130 -62
- package/dist/analysis.js.map +1 -1
- package/dist/config.d.ts +5 -11
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -128
- package/dist/config.js.map +1 -1
- package/dist/definitions/analysis-tools.d.ts +6 -0
- package/dist/definitions/analysis-tools.d.ts.map +1 -0
- package/dist/definitions/analysis-tools.js +125 -0
- package/dist/definitions/analysis-tools.js.map +1 -0
- package/dist/definitions/context-tools.d.ts +6 -0
- package/dist/definitions/context-tools.d.ts.map +1 -0
- package/dist/definitions/context-tools.js +144 -0
- package/dist/definitions/context-tools.js.map +1 -0
- package/dist/definitions/graph-tools.d.ts +7 -0
- package/dist/definitions/graph-tools.d.ts.map +1 -0
- package/dist/definitions/graph-tools.js +124 -0
- package/dist/definitions/graph-tools.js.map +1 -0
- package/dist/definitions/graphql-tools.d.ts +6 -0
- package/dist/definitions/graphql-tools.d.ts.map +1 -0
- package/dist/definitions/graphql-tools.js +62 -0
- package/dist/definitions/graphql-tools.js.map +1 -0
- package/dist/definitions/guarantee-tools.d.ts +6 -0
- package/dist/definitions/guarantee-tools.d.ts.map +1 -0
- package/dist/definitions/guarantee-tools.js +136 -0
- package/dist/definitions/guarantee-tools.js.map +1 -0
- package/dist/definitions/index.d.ts +7 -0
- package/dist/definitions/index.d.ts.map +1 -0
- package/dist/definitions/index.js +24 -0
- package/dist/definitions/index.js.map +1 -0
- package/dist/definitions/knowledge-tools.d.ts +10 -0
- package/dist/definitions/knowledge-tools.d.ts.map +1 -0
- package/dist/definitions/knowledge-tools.js +300 -0
- package/dist/definitions/knowledge-tools.js.map +1 -0
- package/dist/definitions/notation-tools.d.ts +9 -0
- package/dist/definitions/notation-tools.d.ts.map +1 -0
- package/dist/definitions/notation-tools.js +62 -0
- package/dist/definitions/notation-tools.js.map +1 -0
- package/dist/definitions/project-tools.d.ts +6 -0
- package/dist/definitions/project-tools.d.ts.map +1 -0
- package/dist/definitions/project-tools.js +181 -0
- package/dist/definitions/project-tools.js.map +1 -0
- package/dist/definitions/query-tools.d.ts +6 -0
- package/dist/definitions/query-tools.d.ts.map +1 -0
- package/dist/definitions/query-tools.js +245 -0
- package/dist/definitions/query-tools.js.map +1 -0
- package/dist/definitions/types.d.ts +21 -0
- package/dist/definitions/types.d.ts.map +1 -0
- package/dist/definitions/types.js +5 -0
- package/dist/definitions/types.js.map +1 -0
- package/dist/dev-proxy.d.ts +29 -0
- package/dist/dev-proxy.d.ts.map +1 -0
- package/dist/dev-proxy.js +267 -0
- package/dist/dev-proxy.js.map +1 -0
- package/dist/handlers/analysis-handlers.d.ts.map +1 -1
- package/dist/handlers/analysis-handlers.js +34 -4
- package/dist/handlers/analysis-handlers.js.map +1 -1
- package/dist/handlers/context-handlers.d.ts +5 -6
- package/dist/handlers/context-handlers.d.ts.map +1 -1
- package/dist/handlers/context-handlers.js +19 -16
- package/dist/handlers/context-handlers.js.map +1 -1
- package/dist/handlers/coverage-handlers.js +1 -1
- package/dist/handlers/dataflow-handlers.d.ts +2 -0
- package/dist/handlers/dataflow-handlers.d.ts.map +1 -1
- package/dist/handlers/dataflow-handlers.js +68 -46
- package/dist/handlers/dataflow-handlers.js.map +1 -1
- package/dist/handlers/documentation-handlers.d.ts.map +1 -1
- package/dist/handlers/documentation-handlers.js +56 -2
- package/dist/handlers/documentation-handlers.js.map +1 -1
- package/dist/handlers/graph-handlers.d.ts +23 -0
- package/dist/handlers/graph-handlers.d.ts.map +1 -0
- package/dist/handlers/graph-handlers.js +155 -0
- package/dist/handlers/graph-handlers.js.map +1 -0
- package/dist/handlers/graphql-handlers.d.ts +9 -0
- package/dist/handlers/graphql-handlers.d.ts.map +1 -0
- package/dist/handlers/graphql-handlers.js +57 -0
- package/dist/handlers/graphql-handlers.js.map +1 -0
- package/dist/handlers/guarantee-handlers.js +1 -1
- package/dist/handlers/guard-handlers.d.ts.map +1 -1
- package/dist/handlers/guard-handlers.js +6 -3
- package/dist/handlers/guard-handlers.js.map +1 -1
- package/dist/handlers/index.d.ts +4 -0
- package/dist/handlers/index.d.ts.map +1 -1
- package/dist/handlers/index.js +6 -0
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/issue-handlers.d.ts.map +1 -1
- package/dist/handlers/issue-handlers.js +10 -15
- package/dist/handlers/issue-handlers.js.map +1 -1
- package/dist/handlers/knowledge-handlers.d.ts +25 -0
- package/dist/handlers/knowledge-handlers.d.ts.map +1 -0
- package/dist/handlers/knowledge-handlers.js +208 -0
- package/dist/handlers/knowledge-handlers.js.map +1 -0
- package/dist/handlers/notation-handlers.d.ts +6 -0
- package/dist/handlers/notation-handlers.d.ts.map +1 -0
- package/dist/handlers/notation-handlers.js +53 -0
- package/dist/handlers/notation-handlers.js.map +1 -0
- package/dist/handlers/project-handlers.js +1 -1
- package/dist/handlers/query-handlers.d.ts.map +1 -1
- package/dist/handlers/query-handlers.js +166 -20
- package/dist/handlers/query-handlers.js.map +1 -1
- package/dist/prompts.js +1 -1
- package/dist/server.d.ts +19 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +93 -3
- package/dist/server.js.map +1 -1
- package/dist/state.d.ts +10 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +61 -8
- package/dist/state.js.map +1 -1
- package/dist/types.d.ts +75 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +18 -1
- package/dist/utils.js.map +1 -1
- package/package.json +4 -3
- package/src/analysis-worker.ts +9 -301
- package/src/analysis.ts +151 -77
- package/src/config.ts +6 -193
- package/src/definitions/analysis-tools.ts +127 -0
- package/src/definitions/context-tools.ts +147 -0
- package/src/definitions/graph-tools.ts +126 -0
- package/src/definitions/graphql-tools.ts +64 -0
- package/src/definitions/guarantee-tools.ts +138 -0
- package/src/definitions/index.ts +28 -0
- package/src/definitions/knowledge-tools.ts +302 -0
- package/src/definitions/notation-tools.ts +64 -0
- package/src/definitions/project-tools.ts +183 -0
- package/src/definitions/query-tools.ts +247 -0
- package/src/definitions/types.ts +22 -0
- package/src/dev-proxy.ts +336 -0
- package/src/handlers/analysis-handlers.ts +35 -4
- package/src/handlers/context-handlers.ts +19 -15
- package/src/handlers/coverage-handlers.ts +1 -1
- package/src/handlers/dataflow-handlers.ts +74 -56
- package/src/handlers/documentation-handlers.ts +56 -2
- package/src/handlers/graph-handlers.ts +212 -0
- package/src/handlers/graphql-handlers.ts +70 -0
- package/src/handlers/guarantee-handlers.ts +1 -1
- package/src/handlers/guard-handlers.ts +7 -3
- package/src/handlers/index.ts +6 -0
- package/src/handlers/issue-handlers.ts +10 -15
- package/src/handlers/knowledge-handlers.ts +242 -0
- package/src/handlers/notation-handlers.ts +71 -0
- package/src/handlers/project-handlers.ts +1 -1
- package/src/handlers/query-handlers.ts +186 -22
- package/src/prompts.ts +1 -1
- package/src/server.ts +126 -2
- package/src/state.ts +68 -8
- package/src/types.ts +98 -3
- package/src/utils.ts +22 -1
- 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
|
|
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
|
|
23
|
-
const
|
|
24
|
-
const
|
|
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 (
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
43
|
-
if (
|
|
44
|
-
const node = await db.getNode(
|
|
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:
|
|
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 {
|
|
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
|
-
|
|
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 &&
|
|
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/
|
|
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
|
-
*
|
|
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
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA
|
|
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
|
-
*
|
|
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,
|
|
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
|
}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA
|
|
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/
|
|
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
|
package/dist/state.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|