@grafema/mcp 0.3.20 → 0.3.22

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.js CHANGED
@@ -29,6 +29,7 @@ import { PROMPTS, getPrompt } from './prompts.js';
29
29
  import { TOOLS } from './definitions/index.js';
30
30
  import { initializeFromArgs, setupLogging, getProjectPath } from './state.js';
31
31
  import { textResult, errorResult, log } from './utils.js';
32
+ import { getSocketPathOverride } from './state.js';
32
33
  import { discoverServices } from './analysis.js';
33
34
  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
35
  // Disabled: requires git-ingest (US-17). See US-17 in AI-AGENT-STORIES.md
@@ -49,7 +50,8 @@ function asArgs(args) {
49
50
  initializeFromArgs();
50
51
  setupLogging();
51
52
  const projectPath = getProjectPath();
52
- log(`[Grafema MCP] Starting server for project: ${projectPath}`);
53
+ const socketOverride = getSocketPathOverride();
54
+ log(`[Grafema MCP] Starting server for project: ${projectPath}${socketOverride ? ` socket=${socketOverride}` : ''}`);
53
55
  // Create MCP server
54
56
  const server = new Server({
55
57
  name: 'grafema-mcp',
@@ -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
@@ -4,7 +4,19 @@
4
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
+ /**
8
+ * Walk up from startDir to find a Grafema project root.
9
+ *
10
+ * A directory is treated as a project root when it contains:
11
+ * - grafema.yaml (explicit config)
12
+ * - .grafema/ (analysis artefacts already created)
13
+ *
14
+ * Returns the absolute path of the first matching ancestor, or null if
15
+ * nothing is found before the filesystem root.
16
+ */
17
+ export declare function findProjectRoot(startDir: string): string | null;
7
18
  export declare function getProjectPath(): string;
19
+ export declare function getSocketPathOverride(): string | null;
8
20
  export declare function getIsAnalyzed(): boolean;
9
21
  export declare function getAnalysisStatus(): AnalysisStatus;
10
22
  export declare function getBackgroundPid(): number | null;
@@ -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,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"}
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;AAKjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW/D;AAmFD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAErD;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,CAwBzC;AAGD,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAI7C"}
package/dist/state.js CHANGED
@@ -1,13 +1,37 @@
1
1
  /**
2
2
  * MCP Server State Management
3
3
  */
4
- import { join } from 'path';
4
+ import { join, dirname } from 'path';
5
5
  import { existsSync, mkdirSync } from 'fs';
6
6
  import { RFDBServerBackend, GuaranteeManager, GuaranteeAPI, KnowledgeBase } from '@grafema/util';
7
7
  import { loadConfig } from './config.js';
8
8
  import { log, initLogger } from './utils.js';
9
+ /**
10
+ * Walk up from startDir to find a Grafema project root.
11
+ *
12
+ * A directory is treated as a project root when it contains:
13
+ * - grafema.yaml (explicit config)
14
+ * - .grafema/ (analysis artefacts already created)
15
+ *
16
+ * Returns the absolute path of the first matching ancestor, or null if
17
+ * nothing is found before the filesystem root.
18
+ */
19
+ export function findProjectRoot(startDir) {
20
+ let dir = startDir;
21
+ while (true) {
22
+ if (existsSync(join(dir, 'grafema.yaml')) || existsSync(join(dir, '.grafema'))) {
23
+ return dir;
24
+ }
25
+ const parent = dirname(dir);
26
+ if (parent === dir)
27
+ break; // filesystem root
28
+ dir = parent;
29
+ }
30
+ return null;
31
+ }
9
32
  // === GLOBAL STATE ===
10
33
  let projectPath = process.cwd();
34
+ let socketPathOverride = null;
11
35
  let backend = null;
12
36
  let isAnalyzed = false;
13
37
  let backgroundPid = null;
@@ -83,6 +107,9 @@ const LOCK_TIMEOUT_MS = 10 * 60 * 1000;
83
107
  export function getProjectPath() {
84
108
  return projectPath;
85
109
  }
110
+ export function getSocketPathOverride() {
111
+ return socketPathOverride;
112
+ }
86
113
  export function getIsAnalyzed() {
87
114
  return isAnalyzed;
88
115
  }
@@ -214,8 +241,8 @@ export async function getOrCreateBackend() {
214
241
  mkdirSync(grafemaDir, { recursive: true });
215
242
  }
216
243
  const config = loadConfig(projectPath);
217
- // Socket path from config, or let RFDBServerBackend derive it from dbPath
218
- const socketPath = config.analysis?.parallel?.socketPath;
244
+ // Socket path priority: --socket CLI arg > config rfdb_socket > auto-derive from dbPath
245
+ const socketPath = socketPathOverride || config.rfdb_socket || undefined;
219
246
  log(`[Grafema MCP] Using RFDB server backend: socket=${socketPath || 'auto'}, db=${dbPath}`);
220
247
  const rfdbBackend = new RFDBServerBackend({ socketPath, dbPath, clientName: 'mcp' });
221
248
  await rfdbBackend.connect();
@@ -291,12 +318,28 @@ export async function getOrCreateKnowledgeBase() {
291
318
  // === INITIALIZATION ===
292
319
  export function initializeFromArgs() {
293
320
  const args = process.argv.slice(2);
321
+ let projectArgProvided = false;
294
322
  for (let i = 0; i < args.length; i++) {
295
323
  if (args[i] === '--project' && args[i + 1]) {
296
324
  projectPath = args[i + 1];
325
+ projectArgProvided = true;
326
+ i++;
327
+ }
328
+ else if (args[i] === '--socket' && args[i + 1]) {
329
+ socketPathOverride = args[i + 1];
297
330
  i++;
298
331
  }
299
332
  }
333
+ // Auto-detect project root from CWD when --project is not supplied.
334
+ // Claude Code (and other MCP hosts) spawn the server with CWD = workspace root,
335
+ // so this makes the server workspace-aware without any config change.
336
+ if (!projectArgProvided) {
337
+ const detected = findProjectRoot(process.cwd());
338
+ if (detected) {
339
+ projectPath = detected;
340
+ }
341
+ // else: keep process.cwd() as fallback
342
+ }
300
343
  }
301
344
  // === CLEANUP ===
302
345
  export async function cleanup() {
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grafema/mcp",
3
- "version": "0.3.20",
3
+ "version": "0.3.22",
4
4
  "description": "MCP server for Grafema code analysis toolkit",
5
5
  "type": "module",
6
6
  "main": "./dist/server.js",
@@ -39,9 +39,9 @@
39
39
  "@modelcontextprotocol/sdk": "^1.25.1",
40
40
  "ajv": "^8.17.1",
41
41
  "yaml": "^2.8.2",
42
- "@grafema/util": "0.3.20",
43
- "@grafema/types": "0.3.20",
44
- "@grafema/api": "0.3.20"
42
+ "@grafema/api": "0.3.22",
43
+ "@grafema/util": "0.3.22",
44
+ "@grafema/types": "0.3.22"
45
45
  },
46
46
  "optionalDependencies": {
47
47
  "@grafema/grafema-darwin-arm64": "0.3.16",
package/src/server.ts CHANGED
@@ -36,6 +36,7 @@ import { PROMPTS, getPrompt } from './prompts.js';
36
36
  import { TOOLS } from './definitions/index.js';
37
37
  import { initializeFromArgs, setupLogging, getProjectPath } from './state.js';
38
38
  import { textResult, errorResult, log } from './utils.js';
39
+ import { getSocketPathOverride } from './state.js';
39
40
  import { discoverServices } from './analysis.js';
40
41
  import {
41
42
  handleQueryGraph,
@@ -131,7 +132,8 @@ initializeFromArgs();
131
132
  setupLogging();
132
133
 
133
134
  const projectPath = getProjectPath();
134
- log(`[Grafema MCP] Starting server for project: ${projectPath}`);
135
+ const socketOverride = getSocketPathOverride();
136
+ log(`[Grafema MCP] Starting server for project: ${projectPath}${socketOverride ? ` socket=${socketOverride}` : ''}`);
135
137
 
136
138
  // Create MCP server
137
139
  const server = new Server(
package/src/state.ts CHANGED
@@ -2,17 +2,42 @@
2
2
  * MCP Server State Management
3
3
  */
4
4
 
5
- import { join } from 'path';
5
+ import { join, dirname } from 'path';
6
6
  import { existsSync, mkdirSync } from 'fs';
7
7
  import { RFDBServerBackend, GuaranteeManager, GuaranteeAPI, KnowledgeBase } from '@grafema/util';
8
8
  import type { GuaranteeGraphBackend, GuaranteeGraph, ResolverBackend } from '@grafema/util';
9
9
  import { loadConfig } from './config.js';
10
+ import type { MCPConfig } from './config.js';
10
11
  import { log, initLogger } from './utils.js';
11
12
  import type { AnalysisStatus } from './types.js';
12
13
  import type { GraphBackend } from '@grafema/types';
13
14
 
15
+ /**
16
+ * Walk up from startDir to find a Grafema project root.
17
+ *
18
+ * A directory is treated as a project root when it contains:
19
+ * - grafema.yaml (explicit config)
20
+ * - .grafema/ (analysis artefacts already created)
21
+ *
22
+ * Returns the absolute path of the first matching ancestor, or null if
23
+ * nothing is found before the filesystem root.
24
+ */
25
+ export function findProjectRoot(startDir: string): string | null {
26
+ let dir = startDir;
27
+ while (true) {
28
+ if (existsSync(join(dir, 'grafema.yaml')) || existsSync(join(dir, '.grafema'))) {
29
+ return dir;
30
+ }
31
+ const parent = dirname(dir);
32
+ if (parent === dir) break; // filesystem root
33
+ dir = parent;
34
+ }
35
+ return null;
36
+ }
37
+
14
38
  // === GLOBAL STATE ===
15
39
  let projectPath: string = process.cwd();
40
+ let socketPathOverride: string | null = null;
16
41
  let backend: GraphBackend | null = null;
17
42
  let isAnalyzed: boolean = false;
18
43
  let backgroundPid: number | null = null;
@@ -95,6 +120,10 @@ export function getProjectPath(): string {
95
120
  return projectPath;
96
121
  }
97
122
 
123
+ export function getSocketPathOverride(): string | null {
124
+ return socketPathOverride;
125
+ }
126
+
98
127
  export function getIsAnalyzed(): boolean {
99
128
  return isAnalyzed;
100
129
  }
@@ -250,9 +279,9 @@ export async function getOrCreateBackend(): Promise<GraphBackend> {
250
279
  mkdirSync(grafemaDir, { recursive: true });
251
280
  }
252
281
 
253
- const config = loadConfig(projectPath);
254
- // Socket path from config, or let RFDBServerBackend derive it from dbPath
255
- const socketPath = (config as any).analysis?.parallel?.socketPath;
282
+ const config = loadConfig(projectPath) as MCPConfig;
283
+ // Socket path priority: --socket CLI arg > config rfdb_socket > auto-derive from dbPath
284
+ const socketPath = socketPathOverride || config.rfdb_socket || undefined;
256
285
 
257
286
  log(`[Grafema MCP] Using RFDB server backend: socket=${socketPath || 'auto'}, db=${dbPath}`);
258
287
 
@@ -340,12 +369,28 @@ export async function getOrCreateKnowledgeBase(): Promise<KnowledgeBase> {
340
369
  // === INITIALIZATION ===
341
370
  export function initializeFromArgs(): void {
342
371
  const args = process.argv.slice(2);
372
+ let projectArgProvided = false;
343
373
  for (let i = 0; i < args.length; i++) {
344
374
  if (args[i] === '--project' && args[i + 1]) {
345
375
  projectPath = args[i + 1];
376
+ projectArgProvided = true;
377
+ i++;
378
+ } else if (args[i] === '--socket' && args[i + 1]) {
379
+ socketPathOverride = args[i + 1];
346
380
  i++;
347
381
  }
348
382
  }
383
+
384
+ // Auto-detect project root from CWD when --project is not supplied.
385
+ // Claude Code (and other MCP hosts) spawn the server with CWD = workspace root,
386
+ // so this makes the server workspace-aware without any config change.
387
+ if (!projectArgProvided) {
388
+ const detected = findProjectRoot(process.cwd());
389
+ if (detected) {
390
+ projectPath = detected;
391
+ }
392
+ // else: keep process.cwd() as fallback
393
+ }
349
394
  }
350
395
 
351
396
  // === CLEANUP ===