dbgraph 0.1.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.
Files changed (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +347 -0
  3. package/dist/bin/dbgraph.d.ts +8 -0
  4. package/dist/bin/dbgraph.d.ts.map +1 -0
  5. package/dist/bin/dbgraph.js +382 -0
  6. package/dist/bin/dbgraph.js.map +1 -0
  7. package/dist/config.d.ts +25 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +158 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/context/formatter.d.ts +94 -0
  12. package/dist/context/formatter.d.ts.map +1 -0
  13. package/dist/context/formatter.js +288 -0
  14. package/dist/context/formatter.js.map +1 -0
  15. package/dist/context/index.d.ts +77 -0
  16. package/dist/context/index.d.ts.map +1 -0
  17. package/dist/context/index.js +458 -0
  18. package/dist/context/index.js.map +1 -0
  19. package/dist/db/index.d.ts +26 -0
  20. package/dist/db/index.d.ts.map +1 -0
  21. package/dist/db/index.js +127 -0
  22. package/dist/db/index.js.map +1 -0
  23. package/dist/db/migrations.d.ts +8 -0
  24. package/dist/db/migrations.d.ts.map +1 -0
  25. package/dist/db/migrations.js +39 -0
  26. package/dist/db/migrations.js.map +1 -0
  27. package/dist/db/queries.d.ts +46 -0
  28. package/dist/db/queries.d.ts.map +1 -0
  29. package/dist/db/queries.js +436 -0
  30. package/dist/db/queries.js.map +1 -0
  31. package/dist/db/schema.sql +113 -0
  32. package/dist/db/sqlite-adapter.d.ts +30 -0
  33. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  34. package/dist/db/sqlite-adapter.js +78 -0
  35. package/dist/db/sqlite-adapter.js.map +1 -0
  36. package/dist/directory.d.ts +37 -0
  37. package/dist/directory.d.ts.map +1 -0
  38. package/dist/directory.js +160 -0
  39. package/dist/directory.js.map +1 -0
  40. package/dist/errors.d.ts +46 -0
  41. package/dist/errors.d.ts.map +1 -0
  42. package/dist/errors.js +90 -0
  43. package/dist/errors.js.map +1 -0
  44. package/dist/graph/traversal.d.ts +157 -0
  45. package/dist/graph/traversal.d.ts.map +1 -0
  46. package/dist/graph/traversal.js +531 -0
  47. package/dist/graph/traversal.js.map +1 -0
  48. package/dist/index.d.ts +183 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +435 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/introspect/base.d.ts +62 -0
  53. package/dist/introspect/base.d.ts.map +1 -0
  54. package/dist/introspect/base.js +107 -0
  55. package/dist/introspect/base.js.map +1 -0
  56. package/dist/introspect/connection.d.ts +30 -0
  57. package/dist/introspect/connection.d.ts.map +1 -0
  58. package/dist/introspect/connection.js +232 -0
  59. package/dist/introspect/connection.js.map +1 -0
  60. package/dist/introspect/index.d.ts +23 -0
  61. package/dist/introspect/index.d.ts.map +1 -0
  62. package/dist/introspect/index.js +46 -0
  63. package/dist/introspect/index.js.map +1 -0
  64. package/dist/introspect/mysql.d.ts +64 -0
  65. package/dist/introspect/mysql.d.ts.map +1 -0
  66. package/dist/introspect/mysql.js +360 -0
  67. package/dist/introspect/mysql.js.map +1 -0
  68. package/dist/introspect/postgres.d.ts +55 -0
  69. package/dist/introspect/postgres.d.ts.map +1 -0
  70. package/dist/introspect/postgres.js +372 -0
  71. package/dist/introspect/postgres.js.map +1 -0
  72. package/dist/introspect/sqlite.d.ts +33 -0
  73. package/dist/introspect/sqlite.d.ts.map +1 -0
  74. package/dist/introspect/sqlite.js +207 -0
  75. package/dist/introspect/sqlite.js.map +1 -0
  76. package/dist/mcp/engine.d.ts +92 -0
  77. package/dist/mcp/engine.d.ts.map +1 -0
  78. package/dist/mcp/engine.js +261 -0
  79. package/dist/mcp/engine.js.map +1 -0
  80. package/dist/mcp/index.d.ts +33 -0
  81. package/dist/mcp/index.d.ts.map +1 -0
  82. package/dist/mcp/index.js +119 -0
  83. package/dist/mcp/index.js.map +1 -0
  84. package/dist/mcp/server-instructions.d.ts +9 -0
  85. package/dist/mcp/server-instructions.d.ts.map +1 -0
  86. package/dist/mcp/server-instructions.js +71 -0
  87. package/dist/mcp/server-instructions.js.map +1 -0
  88. package/dist/mcp/session.d.ts +35 -0
  89. package/dist/mcp/session.d.ts.map +1 -0
  90. package/dist/mcp/session.js +140 -0
  91. package/dist/mcp/session.js.map +1 -0
  92. package/dist/mcp/tools.d.ts +99 -0
  93. package/dist/mcp/tools.d.ts.map +1 -0
  94. package/dist/mcp/tools.js +499 -0
  95. package/dist/mcp/tools.js.map +1 -0
  96. package/dist/mcp/transport.d.ts +78 -0
  97. package/dist/mcp/transport.d.ts.map +1 -0
  98. package/dist/mcp/transport.js +182 -0
  99. package/dist/mcp/transport.js.map +1 -0
  100. package/dist/search/query-parser.d.ts +66 -0
  101. package/dist/search/query-parser.d.ts.map +1 -0
  102. package/dist/search/query-parser.js +163 -0
  103. package/dist/search/query-parser.js.map +1 -0
  104. package/dist/search/query-utils.d.ts +78 -0
  105. package/dist/search/query-utils.d.ts.map +1 -0
  106. package/dist/search/query-utils.js +203 -0
  107. package/dist/search/query-utils.js.map +1 -0
  108. package/dist/types.d.ts +279 -0
  109. package/dist/types.d.ts.map +1 -0
  110. package/dist/types.js +47 -0
  111. package/dist/types.js.map +1 -0
  112. package/dist/utils.d.ts +40 -0
  113. package/dist/utils.d.ts.map +1 -0
  114. package/dist/utils.js +190 -0
  115. package/dist/utils.js.map +1 -0
  116. package/package.json +54 -0
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Session
4
+ *
5
+ * Manages a single MCP session — handles initialization, tool listing,
6
+ * and tool call dispatching.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MCPSession = void 0;
10
+ const transport_1 = require("./transport");
11
+ class MCPSession {
12
+ transport;
13
+ engine;
14
+ clientSupportsRoots = false;
15
+ rootsAttempted = false;
16
+ explicitProjectPath;
17
+ watchConfig;
18
+ constructor(transport, engine, opts = {}) {
19
+ this.transport = transport;
20
+ this.engine = engine;
21
+ this.explicitProjectPath = opts.explicitProjectPath ?? null;
22
+ this.watchConfig = opts.autoRefresh ?? false;
23
+ }
24
+ start() {
25
+ this.transport.start(this.handleMessage.bind(this));
26
+ }
27
+ stop() {
28
+ this.transport.stop();
29
+ }
30
+ getTransport() {
31
+ return this.transport;
32
+ }
33
+ async handleMessage(message) {
34
+ const isRequest = 'id' in message;
35
+ switch (message.method) {
36
+ case 'initialize':
37
+ if (isRequest)
38
+ await this.handleInitialize(message);
39
+ break;
40
+ case 'initialized':
41
+ break;
42
+ case 'tools/list':
43
+ if (isRequest)
44
+ await this.handleToolsList(message);
45
+ break;
46
+ case 'tools/call':
47
+ if (isRequest)
48
+ await this.handleToolsCall(message);
49
+ break;
50
+ case 'ping':
51
+ if (isRequest)
52
+ this.transport.sendResult(message.id, {});
53
+ break;
54
+ default:
55
+ if (isRequest) {
56
+ this.transport.sendError(message.id, transport_1.ErrorCodes.MethodNotFound, `Method not found: ${message.method}`);
57
+ }
58
+ }
59
+ }
60
+ async retryInitIfNeeded() {
61
+ if (!this.engine.isReady()) {
62
+ await this.engine.ensureInitialized();
63
+ }
64
+ }
65
+ /**
66
+ * Before each tool call, lazily check if the database schema changed
67
+ * and re-index if needed. Zero overhead when idle.
68
+ */
69
+ async refreshIfSchemaChanged() {
70
+ if (!this.watchConfig || !this.engine.isReady())
71
+ return;
72
+ try {
73
+ const { changed, currentFingerprint } = await this.engine.checkSchemaChanged();
74
+ if (changed) {
75
+ process.stderr.write(`[DBGraph MCP] Schema changed, re-indexing...\n`);
76
+ const result = await this.engine.executeReindex(currentFingerprint);
77
+ process.stderr.write(`[DBGraph MCP] Re-indexed: ${result.sourcesIndexed} source(s), ` +
78
+ `${result.nodesCreated} node(s), ${result.edgesCreated} edge(s)\n`);
79
+ }
80
+ }
81
+ catch (err) {
82
+ const msg = err instanceof Error ? err.message : String(err);
83
+ process.stderr.write(`[DBGraph MCP] Schema refresh failed: ${msg}\n`);
84
+ }
85
+ }
86
+ async handleInitialize(request) {
87
+ const params = request.params;
88
+ const clientInfo = params?.clientInfo;
89
+ const clientName = clientInfo?.name ?? 'unknown';
90
+ // Forward roots capability
91
+ if (params?.capabilities) {
92
+ const caps = params.capabilities;
93
+ this.clientSupportsRoots = !!caps.roots?.listChanged;
94
+ }
95
+ // Do NOT block init on engine readiness — start it in background and
96
+ // retry on first tool call. Unresponsive daemon is worse than stale.
97
+ this.engine.startBackgroundInit(this.explicitProjectPath ?? undefined);
98
+ const instructions = this.engine.getServerInstructions();
99
+ this.transport.sendResult(request.id, {
100
+ protocolVersion: '2024-11-05',
101
+ serverInfo: { name: 'dbgraph', version: '0.1.0' },
102
+ capabilities: {
103
+ tools: {},
104
+ ...(this.clientSupportsRoots ? {} : { roots: { listChanged: false } }),
105
+ },
106
+ instructions,
107
+ });
108
+ }
109
+ async handleToolsList(request) {
110
+ this.transport.sendResult(request.id, {
111
+ tools: this.engine.getTools(),
112
+ });
113
+ }
114
+ async handleToolsCall(request) {
115
+ const params = request.params;
116
+ if (!params || !params.name) {
117
+ this.transport.sendError(request.id, transport_1.ErrorCodes.InvalidParams, 'Missing tool name');
118
+ return;
119
+ }
120
+ const toolName = params.name;
121
+ const toolArgs = params.arguments || {};
122
+ const tool = this.engine.getTools().find((t) => t.name === toolName);
123
+ if (!tool) {
124
+ this.transport.sendError(request.id, transport_1.ErrorCodes.MethodNotFound, `Unknown tool: ${toolName}`);
125
+ return;
126
+ }
127
+ try {
128
+ await this.retryInitIfNeeded();
129
+ await this.refreshIfSchemaChanged();
130
+ const result = await this.engine.executeTool(toolName, toolArgs);
131
+ this.transport.sendResult(request.id, result);
132
+ }
133
+ catch (error) {
134
+ const msg = error instanceof Error ? error.message : String(error);
135
+ this.transport.sendError(request.id, transport_1.ErrorCodes.InternalError, msg);
136
+ }
137
+ }
138
+ }
139
+ exports.MCPSession = MCPSession;
140
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * MCP Tool Definitions & Handlers
3
+ *
4
+ * Defines the tools exposed by the DBGraph MCP server and implements their
5
+ * execution against a DBGraph knowledge graph instance.
6
+ */
7
+ import { DBGraph } from '../index';
8
+ export interface ToolDefinition {
9
+ name: string;
10
+ description: string;
11
+ inputSchema: {
12
+ type: 'object';
13
+ properties: Record<string, PropertySchema>;
14
+ required?: string[];
15
+ };
16
+ }
17
+ interface PropertySchema {
18
+ type: string;
19
+ description: string;
20
+ enum?: string[];
21
+ default?: unknown;
22
+ }
23
+ export interface ToolResult {
24
+ content: Array<{
25
+ type: 'text';
26
+ text: string;
27
+ }>;
28
+ isError?: boolean;
29
+ }
30
+ /**
31
+ * Executes dbgraph MCP tools against a DBGraph instance.
32
+ *
33
+ * The handler does NOT own the DBGraph lifecycle — the caller (MCPEngine)
34
+ * provides a getter so the handler always uses the current (possibly
35
+ * lazily-initialized) instance.
36
+ */
37
+ export declare class DBGraphToolHandler {
38
+ private readonly getDBGraph;
39
+ private readonly formatter;
40
+ constructor(getDBGraph: () => DBGraph);
41
+ /**
42
+ * Return the tool definitions, optionally enriched with dynamic context
43
+ * (e.g. stats) from the live graph.
44
+ */
45
+ getTools(): ToolDefinition[];
46
+ /**
47
+ * Execute a tool by name.
48
+ */
49
+ execute(name: string, args: Record<string, unknown>): Promise<ToolResult>;
50
+ /**
51
+ * dbgraph_search — Search schema objects by name. Delegates to
52
+ * QueryBuilder.searchNodes with optional kind filter and limit, then
53
+ * formats via SchemaFormatter.
54
+ */
55
+ private handleSearch;
56
+ /**
57
+ * dbgraph_context — Get full schema context for a table or view.
58
+ *
59
+ * Resolves the name (simple, qualified, or fully qualified) via
60
+ * ContextBuilder.buildContext, which searches the graph and returns a
61
+ * complete markdown description.
62
+ */
63
+ private handleContext;
64
+ /**
65
+ * dbgraph_trace — Trace FK join path between two tables.
66
+ *
67
+ * Resolves both names to nodes, then runs GraphTraverser.findPath over
68
+ * 'references', 'foreign_key', and 'contains' edges. Formats the
69
+ * resulting path as a readable join chain.
70
+ */
71
+ private handleTrace;
72
+ /**
73
+ * dbgraph_explore — Fetch schema context for multiple objects in one call.
74
+ *
75
+ * Splits the space-separated names, finds each table/view node, and calls
76
+ * ContextBuilder.getTableSchema for each. Assembles a single markdown
77
+ * document.
78
+ */
79
+ private handleExplore;
80
+ /**
81
+ * dbgraph_sources — List all database sources.
82
+ */
83
+ private handleSources;
84
+ /**
85
+ * dbgraph_status — Show graph statistics.
86
+ */
87
+ private handleStatus;
88
+ /**
89
+ * Resolve a table or view name to graph nodes.
90
+ *
91
+ * Attempts, in order:
92
+ * 1. Exact node ID lookup
93
+ * 2. Qualified name lookup
94
+ * 3. FTS5 search for table/view kind
95
+ */
96
+ private resolveTableNodes;
97
+ }
98
+ export {};
99
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAenC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAwHD;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;gBAEtB,UAAU,EAAE,MAAM,OAAO;IAEtD;;;OAGG;IACH,QAAQ,IAAI,cAAc,EAAE;IAI5B;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IA6B/E;;;;OAIG;YACW,YAAY;IA4B1B;;;;;;OAMG;YACW,aAAa;IAS3B;;;;;;OAMG;YACW,WAAW;IAkFzB;;;;;;OAMG;YACW,aAAa;IAkD3B;;OAEG;YACW,aAAa;IAa3B;;OAEG;YACW,YAAY;IAkF1B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;CAqB1B"}