@henrychong-ai/mcp-neo4j-knowledge-graph 1.0.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 (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +718 -0
  3. package/dist/KnowledgeGraphManager.d.ts +215 -0
  4. package/dist/KnowledgeGraphManager.js +910 -0
  5. package/dist/KnowledgeGraphManager.js.map +1 -0
  6. package/dist/callToolHandler.d.ts +5 -0
  7. package/dist/callToolHandler.js +26 -0
  8. package/dist/callToolHandler.js.map +1 -0
  9. package/dist/cli/neo4j-setup.d.ts +52 -0
  10. package/dist/cli/neo4j-setup.js +258 -0
  11. package/dist/cli/neo4j-setup.js.map +1 -0
  12. package/dist/config/paths.d.ts +13 -0
  13. package/dist/config/paths.js +41 -0
  14. package/dist/config/paths.js.map +1 -0
  15. package/dist/config/storage.d.ts +35 -0
  16. package/dist/config/storage.js +52 -0
  17. package/dist/config/storage.js.map +1 -0
  18. package/dist/embeddings/DefaultEmbeddingService.d.ts +64 -0
  19. package/dist/embeddings/DefaultEmbeddingService.js +139 -0
  20. package/dist/embeddings/DefaultEmbeddingService.js.map +1 -0
  21. package/dist/embeddings/EmbeddingJobManager.d.ts +212 -0
  22. package/dist/embeddings/EmbeddingJobManager.js +545 -0
  23. package/dist/embeddings/EmbeddingJobManager.js.map +1 -0
  24. package/dist/embeddings/EmbeddingService.d.ts +96 -0
  25. package/dist/embeddings/EmbeddingService.js +44 -0
  26. package/dist/embeddings/EmbeddingService.js.map +1 -0
  27. package/dist/embeddings/EmbeddingServiceFactory.d.ts +72 -0
  28. package/dist/embeddings/EmbeddingServiceFactory.js +147 -0
  29. package/dist/embeddings/EmbeddingServiceFactory.js.map +1 -0
  30. package/dist/embeddings/OpenAIEmbeddingService.d.ts +73 -0
  31. package/dist/embeddings/OpenAIEmbeddingService.js +195 -0
  32. package/dist/embeddings/OpenAIEmbeddingService.js.map +1 -0
  33. package/dist/embeddings/config.d.ts +83 -0
  34. package/dist/embeddings/config.js +65 -0
  35. package/dist/embeddings/config.js.map +1 -0
  36. package/dist/index.d.ts +4 -0
  37. package/dist/index.js +220 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/server/handlers/callToolHandler.d.ts +20 -0
  40. package/dist/server/handlers/callToolHandler.js +505 -0
  41. package/dist/server/handlers/callToolHandler.js.map +1 -0
  42. package/dist/server/handlers/listToolsHandler.d.ts +7 -0
  43. package/dist/server/handlers/listToolsHandler.js +511 -0
  44. package/dist/server/handlers/listToolsHandler.js.map +1 -0
  45. package/dist/server/handlers/toolHandlers/addObservations.d.ts +12 -0
  46. package/dist/server/handlers/toolHandlers/addObservations.js +99 -0
  47. package/dist/server/handlers/toolHandlers/addObservations.js.map +1 -0
  48. package/dist/server/handlers/toolHandlers/createEntities.d.ts +12 -0
  49. package/dist/server/handlers/toolHandlers/createEntities.js +20 -0
  50. package/dist/server/handlers/toolHandlers/createEntities.js.map +1 -0
  51. package/dist/server/handlers/toolHandlers/createRelations.d.ts +12 -0
  52. package/dist/server/handlers/toolHandlers/createRelations.js +20 -0
  53. package/dist/server/handlers/toolHandlers/createRelations.js.map +1 -0
  54. package/dist/server/handlers/toolHandlers/deleteEntities.d.ts +12 -0
  55. package/dist/server/handlers/toolHandlers/deleteEntities.js +20 -0
  56. package/dist/server/handlers/toolHandlers/deleteEntities.js.map +1 -0
  57. package/dist/server/handlers/toolHandlers/index.d.ts +8 -0
  58. package/dist/server/handlers/toolHandlers/index.js +9 -0
  59. package/dist/server/handlers/toolHandlers/index.js.map +1 -0
  60. package/dist/server/handlers/toolHandlers/readGraph.d.ts +12 -0
  61. package/dist/server/handlers/toolHandlers/readGraph.js +20 -0
  62. package/dist/server/handlers/toolHandlers/readGraph.js.map +1 -0
  63. package/dist/server/setup.d.ts +8 -0
  64. package/dist/server/setup.js +48 -0
  65. package/dist/server/setup.js.map +1 -0
  66. package/dist/storage/FileStorageProvider.d.ts +125 -0
  67. package/dist/storage/FileStorageProvider.js +322 -0
  68. package/dist/storage/FileStorageProvider.js.map +1 -0
  69. package/dist/storage/SearchResultCache.d.ts +102 -0
  70. package/dist/storage/SearchResultCache.js +258 -0
  71. package/dist/storage/SearchResultCache.js.map +1 -0
  72. package/dist/storage/StorageProvider.d.ts +171 -0
  73. package/dist/storage/StorageProvider.js +46 -0
  74. package/dist/storage/StorageProvider.js.map +1 -0
  75. package/dist/storage/StorageProviderFactory.d.ts +63 -0
  76. package/dist/storage/StorageProviderFactory.js +113 -0
  77. package/dist/storage/StorageProviderFactory.js.map +1 -0
  78. package/dist/storage/VectorStoreFactory.d.ts +43 -0
  79. package/dist/storage/VectorStoreFactory.js +41 -0
  80. package/dist/storage/VectorStoreFactory.js.map +1 -0
  81. package/dist/storage/neo4j/Neo4jConfig.d.ts +37 -0
  82. package/dist/storage/neo4j/Neo4jConfig.js +13 -0
  83. package/dist/storage/neo4j/Neo4jConfig.js.map +1 -0
  84. package/dist/storage/neo4j/Neo4jConnectionManager.d.ts +40 -0
  85. package/dist/storage/neo4j/Neo4jConnectionManager.js +58 -0
  86. package/dist/storage/neo4j/Neo4jConnectionManager.js.map +1 -0
  87. package/dist/storage/neo4j/Neo4jSchemaManager.d.ts +74 -0
  88. package/dist/storage/neo4j/Neo4jSchemaManager.js +224 -0
  89. package/dist/storage/neo4j/Neo4jSchemaManager.js.map +1 -0
  90. package/dist/storage/neo4j/Neo4jStorageProvider.d.ts +225 -0
  91. package/dist/storage/neo4j/Neo4jStorageProvider.js +1900 -0
  92. package/dist/storage/neo4j/Neo4jStorageProvider.js.map +1 -0
  93. package/dist/storage/neo4j/Neo4jVectorStore.d.ts +80 -0
  94. package/dist/storage/neo4j/Neo4jVectorStore.js +396 -0
  95. package/dist/storage/neo4j/Neo4jVectorStore.js.map +1 -0
  96. package/dist/types/entity-embedding.d.ts +156 -0
  97. package/dist/types/entity-embedding.js +2 -0
  98. package/dist/types/entity-embedding.js.map +1 -0
  99. package/dist/types/relation.d.ts +77 -0
  100. package/dist/types/relation.js +93 -0
  101. package/dist/types/relation.js.map +1 -0
  102. package/dist/types/temporalEntity.d.ts +55 -0
  103. package/dist/types/temporalEntity.js +66 -0
  104. package/dist/types/temporalEntity.js.map +1 -0
  105. package/dist/types/temporalRelation.d.ts +60 -0
  106. package/dist/types/temporalRelation.js +89 -0
  107. package/dist/types/temporalRelation.js.map +1 -0
  108. package/dist/types/vector-index.d.ts +48 -0
  109. package/dist/types/vector-index.js +2 -0
  110. package/dist/types/vector-index.js.map +1 -0
  111. package/dist/types/vector-store.d.ts +16 -0
  112. package/dist/types/vector-store.js +2 -0
  113. package/dist/types/vector-store.js.map +1 -0
  114. package/dist/utils/fs.d.ts +2 -0
  115. package/dist/utils/fs.js +3 -0
  116. package/dist/utils/fs.js.map +1 -0
  117. package/dist/utils/logger.d.ts +10 -0
  118. package/dist/utils/logger.js +35 -0
  119. package/dist/utils/logger.js.map +1 -0
  120. package/package.json +85 -0
@@ -0,0 +1,505 @@
1
+ import * as toolHandlers from './toolHandlers/index.js';
2
+ /**
3
+ * Handles the CallTool request.
4
+ * Delegates to the appropriate tool handler based on the tool name.
5
+ *
6
+ * @param request The CallTool request object
7
+ * @param knowledgeGraphManager The KnowledgeGraphManager instance
8
+ * @returns A response object with the result content
9
+ * @throws Error if the tool is unknown or arguments are missing
10
+ */
11
+ export async function handleCallToolRequest(request,
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ knowledgeGraphManager) {
14
+ if (!request) {
15
+ throw new Error('Invalid request: request is null or undefined');
16
+ }
17
+ if (!request.params) {
18
+ throw new Error('Invalid request: missing params');
19
+ }
20
+ const { name, arguments: args } = request.params;
21
+ if (!name) {
22
+ throw new Error('Invalid request: missing tool name');
23
+ }
24
+ if (!args) {
25
+ throw new Error(`No arguments provided for tool: ${name}`);
26
+ }
27
+ try {
28
+ switch (name) {
29
+ case 'create_entities':
30
+ return await toolHandlers.handleCreateEntities(args, knowledgeGraphManager);
31
+ case 'read_graph':
32
+ return await toolHandlers.handleReadGraph(args, knowledgeGraphManager);
33
+ case 'create_relations':
34
+ return await toolHandlers.handleCreateRelations(args, knowledgeGraphManager);
35
+ case 'add_observations':
36
+ return await toolHandlers.handleAddObservations(args, knowledgeGraphManager);
37
+ case 'delete_entities':
38
+ return await toolHandlers.handleDeleteEntities(args, knowledgeGraphManager);
39
+ case 'delete_observations':
40
+ await knowledgeGraphManager.deleteObservations(args.deletions);
41
+ return { content: [{ type: 'text', text: 'Observations deleted successfully' }] };
42
+ case 'delete_relations':
43
+ await knowledgeGraphManager.deleteRelations(args.relations);
44
+ return { content: [{ type: 'text', text: 'Relations deleted successfully' }] };
45
+ case 'get_relation':
46
+ const relation = await knowledgeGraphManager.getRelation(args.from, args.to, args.relationType);
47
+ if (!relation) {
48
+ return {
49
+ content: [
50
+ {
51
+ type: 'text',
52
+ text: `Relation not found: ${args.from} -> ${args.relationType} -> ${args.to}`,
53
+ },
54
+ ],
55
+ };
56
+ }
57
+ return { content: [{ type: 'text', text: JSON.stringify(relation, null, 2) }] };
58
+ case 'update_relation':
59
+ await knowledgeGraphManager.updateRelation(args.relation);
60
+ return { content: [{ type: 'text', text: 'Relation updated successfully' }] };
61
+ case 'search_nodes':
62
+ return {
63
+ content: [
64
+ {
65
+ type: 'text',
66
+ text: JSON.stringify(await knowledgeGraphManager.searchNodes(args.query), null, 2),
67
+ },
68
+ ],
69
+ };
70
+ case 'open_nodes':
71
+ return {
72
+ content: [
73
+ {
74
+ type: 'text',
75
+ text: JSON.stringify(await knowledgeGraphManager.openNodes(args.names), null, 2),
76
+ },
77
+ ],
78
+ };
79
+ case 'get_entity_history':
80
+ try {
81
+ const history = await knowledgeGraphManager.getEntityHistory(args.entityName);
82
+ return { content: [{ type: 'text', text: JSON.stringify(history, null, 2) }] };
83
+ }
84
+ catch (error) {
85
+ const errorMessage = error instanceof Error ? error.message : String(error);
86
+ return {
87
+ content: [{ type: 'text', text: `Error retrieving entity history: ${errorMessage}` }],
88
+ };
89
+ }
90
+ case 'get_relation_history':
91
+ try {
92
+ const history = await knowledgeGraphManager.getRelationHistory(args.from, args.to, args.relationType);
93
+ return { content: [{ type: 'text', text: JSON.stringify(history, null, 2) }] };
94
+ }
95
+ catch (error) {
96
+ const errorMessage = error instanceof Error ? error.message : String(error);
97
+ return {
98
+ content: [{ type: 'text', text: `Error retrieving relation history: ${errorMessage}` }],
99
+ };
100
+ }
101
+ case 'get_graph_at_time':
102
+ try {
103
+ const graph = await knowledgeGraphManager.getGraphAtTime(args.timestamp);
104
+ return { content: [{ type: 'text', text: JSON.stringify(graph, null, 2) }] };
105
+ }
106
+ catch (error) {
107
+ const errorMessage = error instanceof Error ? error.message : String(error);
108
+ return {
109
+ content: [{ type: 'text', text: `Error retrieving graph at time: ${errorMessage}` }],
110
+ };
111
+ }
112
+ case 'get_decayed_graph':
113
+ try {
114
+ // Extract optional parameters if provided by client
115
+ const options = {};
116
+ if (args.reference_time) {
117
+ options.referenceTime = Number(args.reference_time);
118
+ }
119
+ if (args.decay_factor) {
120
+ options.decayFactor = Number(args.decay_factor);
121
+ }
122
+ // Pass options to getDecayedGraph if any are provided
123
+ const graph = Object.keys(options).length > 0
124
+ ? await knowledgeGraphManager.getDecayedGraph(options)
125
+ : await knowledgeGraphManager.getDecayedGraph();
126
+ return { content: [{ type: 'text', text: JSON.stringify(graph, null, 2) }] };
127
+ }
128
+ catch (error) {
129
+ const errorMessage = error instanceof Error ? error.message : String(error);
130
+ return {
131
+ content: [{ type: 'text', text: `Error retrieving decayed graph: ${errorMessage}` }],
132
+ };
133
+ }
134
+ case 'force_generate_embedding':
135
+ // Validate arguments
136
+ if (!args.entity_name) {
137
+ throw new Error('Missing required parameter: entity_name');
138
+ }
139
+ process.stderr.write(`[DEBUG] Force generating embedding for entity: ${args.entity_name}\n`);
140
+ try {
141
+ // First determine if the input looks like a UUID
142
+ const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
143
+ const isUUID = uuidPattern.test(String(args.entity_name));
144
+ if (isUUID) {
145
+ process.stderr.write(`[DEBUG] Input appears to be a UUID: ${args.entity_name}\n`);
146
+ }
147
+ // Try to get all entities first to locate the correct one
148
+ process.stderr.write(`[DEBUG] Trying to find entity by opening all nodes...\n`);
149
+ const allEntities = await knowledgeGraphManager.openNodes([]);
150
+ let entity = null;
151
+ if (allEntities && allEntities.entities && allEntities.entities.length > 0) {
152
+ process.stderr.write(`[DEBUG] Found ${allEntities.entities.length} entities in total\n`);
153
+ // Try different methods to find the entity
154
+ // 1. Direct match by name
155
+ entity = allEntities.entities.find((e) => e.name === args.entity_name);
156
+ // 2. If not found and input is UUID, try matching by ID
157
+ if (!entity && isUUID) {
158
+ entity = allEntities.entities.find((e) =>
159
+ // The id property might not be in the Entity interface, but could exist at runtime
160
+ 'id' in e && e.id === args.entity_name);
161
+ process.stderr.write(`[DEBUG] Searching by ID match for UUID: ${args.entity_name}\n`);
162
+ }
163
+ // Log found entities to help debugging
164
+ if (!entity) {
165
+ process.stderr.write(`[DEBUG] Entity not found in list. Available entities: ${JSON.stringify(allEntities.entities.map((e) => ({
166
+ name: e.name,
167
+ id: e.id,
168
+ })))}\n`);
169
+ }
170
+ }
171
+ else {
172
+ process.stderr.write(`[DEBUG] No entities found in graph\n`);
173
+ }
174
+ // If still not found, try explicit lookup by name
175
+ if (!entity) {
176
+ process.stderr.write(`[DEBUG] Entity not found in list, trying explicit lookup by name...\n`);
177
+ const openedEntities = await knowledgeGraphManager.openNodes([
178
+ String(args.entity_name),
179
+ ]);
180
+ if (openedEntities && openedEntities.entities && openedEntities.entities.length > 0) {
181
+ entity = openedEntities.entities[0];
182
+ process.stderr.write(`[DEBUG] Found entity by name: ${entity.name} (ID: ${entity.id || 'none'})\n`);
183
+ }
184
+ }
185
+ // If still not found, check if we can query by ID through the storage provider
186
+ if (!entity &&
187
+ isUUID &&
188
+ knowledgeGraphManager.storageProvider &&
189
+ typeof knowledgeGraphManager.storageProvider.getEntityById === 'function') {
190
+ try {
191
+ process.stderr.write(`[DEBUG] Trying direct database lookup by ID: ${args.entity_name}\n`);
192
+ entity = await knowledgeGraphManager.storageProvider.getEntityById(args.entity_name);
193
+ if (entity) {
194
+ process.stderr.write(`[DEBUG] Found entity by direct ID lookup: ${entity.name} (ID: ${entity.id || 'none'})\n`);
195
+ }
196
+ }
197
+ catch (err) {
198
+ process.stderr.write(`[DEBUG] Direct ID lookup failed: ${err}\n`);
199
+ }
200
+ }
201
+ // Final check
202
+ if (!entity) {
203
+ process.stderr.write(`[ERROR] Entity not found after all lookup attempts: ${args.entity_name}\n`);
204
+ throw new Error(`Entity not found: ${args.entity_name}`);
205
+ }
206
+ process.stderr.write(`[DEBUG] Successfully found entity: ${entity.name} (ID: ${entity.id || 'none'})\n`);
207
+ // Check if embedding service and job manager are available
208
+ if (!knowledgeGraphManager.embeddingJobManager) {
209
+ process.stderr.write(`[ERROR] EmbeddingJobManager not initialized\n`);
210
+ throw new Error('EmbeddingJobManager not initialized');
211
+ }
212
+ process.stderr.write(`[DEBUG] EmbeddingJobManager found, proceeding\n`);
213
+ // Directly get the text for the entity
214
+ const embeddingText = knowledgeGraphManager.embeddingJobManager._prepareEntityText(entity);
215
+ process.stderr.write(`[DEBUG] Prepared entity text for embedding, length: ${embeddingText.length}\n`);
216
+ // Generate embedding directly
217
+ const embeddingService = knowledgeGraphManager.embeddingJobManager.embeddingService;
218
+ if (!embeddingService) {
219
+ process.stderr.write(`[ERROR] Embedding service not available\n`);
220
+ throw new Error('Embedding service not available');
221
+ }
222
+ const vector = await embeddingService.generateEmbedding(embeddingText);
223
+ process.stderr.write(`[DEBUG] Generated embedding vector, length: ${vector.length}\n`);
224
+ // Store embedding directly
225
+ const embedding = {
226
+ vector,
227
+ model: embeddingService.getModelInfo().name,
228
+ lastUpdated: Date.now(),
229
+ };
230
+ // Store the embedding with both name and ID for redundancy
231
+ process.stderr.write(`[DEBUG] Storing embedding for entity: ${entity.name}\n`);
232
+ await knowledgeGraphManager.storageProvider.storeEntityVector(entity.name, embedding);
233
+ const entityId = entity.id;
234
+ if (entityId && typeof entityId === 'string') {
235
+ process.stderr.write(`[DEBUG] Also storing embedding with entity ID: ${entityId}\n`);
236
+ try {
237
+ await knowledgeGraphManager.storageProvider.storeEntityVector(entityId, embedding);
238
+ }
239
+ catch (idStoreError) {
240
+ process.stderr.write(`[WARN] Failed to store embedding by ID, but name storage succeeded: ${idStoreError}\n`);
241
+ }
242
+ }
243
+ process.stderr.write(`[DEBUG] Successfully stored embedding for ${entity.name}\n`);
244
+ return {
245
+ content: [
246
+ {
247
+ type: 'text',
248
+ text: JSON.stringify({
249
+ success: true,
250
+ entity: entity.name,
251
+ entity_id: entity.id,
252
+ vector_length: vector.length,
253
+ model: embeddingService.getModelInfo().name,
254
+ }, null, 2),
255
+ },
256
+ ],
257
+ };
258
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
259
+ }
260
+ catch (error) {
261
+ process.stderr.write(`[ERROR] Failed to force generate embedding: ${error.message}\n`);
262
+ if (error.stack) {
263
+ process.stderr.write(`[ERROR] Stack trace: ${error.stack}\n`);
264
+ }
265
+ return {
266
+ content: [{ type: 'text', text: `Failed to generate embedding: ${error.message}` }],
267
+ };
268
+ }
269
+ case 'semantic_search':
270
+ try {
271
+ // Extract search options from args
272
+ const searchOptions = {
273
+ limit: args.limit || 10,
274
+ minSimilarity: args.min_similarity || 0.6,
275
+ entityTypes: args.entity_types || [],
276
+ hybridSearch: args.hybrid_search !== undefined ? args.hybrid_search : true,
277
+ semanticWeight: args.semantic_weight || 0.6,
278
+ semanticSearch: true,
279
+ };
280
+ // Call the search method with semantic search options
281
+ const results = await knowledgeGraphManager.search(String(args.query), searchOptions);
282
+ return { content: [{ type: 'text', text: JSON.stringify(results, null, 2) }] };
283
+ }
284
+ catch (error) {
285
+ const errorMessage = error instanceof Error ? error.message : String(error);
286
+ return {
287
+ content: [{ type: 'text', text: `Error performing semantic search: ${errorMessage}` }],
288
+ };
289
+ }
290
+ case 'get_entity_embedding':
291
+ try {
292
+ // Check if entity exists
293
+ const entity = await knowledgeGraphManager.openNodes([String(args.entity_name)]);
294
+ if (!entity.entities || entity.entities.length === 0) {
295
+ return { content: [{ type: 'text', text: `Entity not found: ${args.entity_name}` }] };
296
+ }
297
+ // Access the embedding using appropriate interface
298
+ if (knowledgeGraphManager.storageProvider &&
299
+ typeof knowledgeGraphManager.storageProvider
300
+ .getEntityEmbedding === 'function') {
301
+ const embedding = await knowledgeGraphManager.storageProvider.getEntityEmbedding(String(args.entity_name));
302
+ if (!embedding) {
303
+ return {
304
+ content: [
305
+ { type: 'text', text: `No embedding found for entity: ${args.entity_name}` },
306
+ ],
307
+ };
308
+ }
309
+ return {
310
+ content: [
311
+ {
312
+ type: 'text',
313
+ text: JSON.stringify({
314
+ entityName: args.entity_name,
315
+ embedding: embedding.vector,
316
+ model: embedding.model || 'unknown',
317
+ dimensions: embedding.vector ? embedding.vector.length : 0,
318
+ lastUpdated: embedding.lastUpdated || Date.now(),
319
+ }, null, 2),
320
+ },
321
+ ],
322
+ };
323
+ }
324
+ else {
325
+ return {
326
+ content: [
327
+ {
328
+ type: 'text',
329
+ text: `Embedding retrieval not supported by this storage provider`,
330
+ },
331
+ ],
332
+ };
333
+ }
334
+ }
335
+ catch (error) {
336
+ const errorMessage = error instanceof Error ? error.message : String(error);
337
+ return {
338
+ content: [{ type: 'text', text: `Error retrieving entity embedding: ${errorMessage}` }],
339
+ };
340
+ }
341
+ case 'debug_embedding_config':
342
+ // Diagnostic tool to check embedding configuration
343
+ try {
344
+ // Check for OpenAI API key
345
+ const hasOpenAIKey = !!process.env.OPENAI_API_KEY;
346
+ const embeddingModel = process.env.OPENAI_EMBEDDING_MODEL || 'text-embedding-3-small';
347
+ // Check if embedding job manager is initialized
348
+ const hasEmbeddingJobManager = !!knowledgeGraphManager.embeddingJobManager;
349
+ // Get storage provider info
350
+ const storageType = process.env.MEMORY_STORAGE_TYPE || 'neo4j';
351
+ const storageProvider = knowledgeGraphManager.storageProvider;
352
+ // Get Neo4j specific configuration
353
+ const neo4jInfo = {
354
+ uri: process.env.NEO4J_URI || 'default',
355
+ username: process.env.NEO4J_USERNAME ? 'configured' : 'not configured',
356
+ database: process.env.NEO4J_DATABASE || 'neo4j',
357
+ vectorIndex: process.env.NEO4J_VECTOR_INDEX || 'entity_embeddings',
358
+ vectorDimensions: process.env.NEO4J_VECTOR_DIMENSIONS || '1536',
359
+ similarityFunction: process.env.NEO4J_SIMILARITY_FUNCTION || 'cosine',
360
+ connectionStatus: 'unknown',
361
+ };
362
+ // Check if Neo4j connection manager is available
363
+ if (storageProvider && typeof storageProvider.getConnectionManager === 'function') {
364
+ try {
365
+ const connectionManager = storageProvider.getConnectionManager();
366
+ if (connectionManager) {
367
+ neo4jInfo.connectionStatus = 'available';
368
+ // Check if vector store is initialized
369
+ if (storageProvider.vectorStore) {
370
+ neo4jInfo.vectorStoreStatus = 'available';
371
+ }
372
+ else {
373
+ neo4jInfo.vectorStoreStatus = 'not initialized';
374
+ }
375
+ }
376
+ }
377
+ catch (error) {
378
+ const errorMessage = error instanceof Error ? error.message : String(error);
379
+ neo4jInfo.connectionStatus = `error: ${errorMessage}`;
380
+ }
381
+ }
382
+ // Count entities with embeddings via Neo4j vector store
383
+ let entitiesWithEmbeddings = 0;
384
+ if (storageProvider && storageProvider.countEntitiesWithEmbeddings) {
385
+ try {
386
+ entitiesWithEmbeddings = await storageProvider.countEntitiesWithEmbeddings();
387
+ }
388
+ catch (error) {
389
+ process.stderr.write(`[ERROR] Error checking embeddings count: ${error}\n`);
390
+ }
391
+ }
392
+ // Get embedding service information
393
+ let embeddingServiceInfo = null;
394
+ if (hasEmbeddingJobManager &&
395
+ knowledgeGraphManager.embeddingJobManager.embeddingService) {
396
+ try {
397
+ embeddingServiceInfo = knowledgeGraphManager.embeddingJobManager.embeddingService.getModelInfo();
398
+ }
399
+ catch (error) {
400
+ const errorMessage = error instanceof Error ? error.message : String(error);
401
+ process.stderr.write(`[ERROR] Error getting embedding service info: ${errorMessage}\n`);
402
+ }
403
+ }
404
+ // Get embedding service provider info if available
405
+ let embeddingProviderInfo = null;
406
+ if (storageProvider && storageProvider.embeddingService) {
407
+ try {
408
+ embeddingProviderInfo = storageProvider.embeddingService.getProviderInfo();
409
+ }
410
+ catch (error) {
411
+ const errorMessage = error instanceof Error ? error.message : String(error);
412
+ process.stderr.write(`[ERROR] Error getting embedding provider info: ${errorMessage}\n`);
413
+ }
414
+ }
415
+ // Check pending embedding jobs if available
416
+ let pendingJobs = 0;
417
+ if (hasEmbeddingJobManager && knowledgeGraphManager.embeddingJobManager.getPendingJobs) {
418
+ try {
419
+ pendingJobs = knowledgeGraphManager.embeddingJobManager.getPendingJobs().length;
420
+ }
421
+ catch (error) {
422
+ const errorMessage = error instanceof Error ? error.message : String(error);
423
+ process.stderr.write(`[ERROR] Error getting pending jobs: ${errorMessage}\n`);
424
+ }
425
+ }
426
+ // Return diagnostic information with proper formatting
427
+ const diagnosticInfo = {
428
+ storage_type: storageType,
429
+ openai_api_key_present: hasOpenAIKey,
430
+ embedding_model: embeddingModel,
431
+ embedding_job_manager_initialized: hasEmbeddingJobManager,
432
+ embedding_service_initialized: !!embeddingProviderInfo,
433
+ embedding_service_info: embeddingServiceInfo,
434
+ embedding_provider_info: embeddingProviderInfo,
435
+ neo4j_config: neo4jInfo,
436
+ entities_with_embeddings: entitiesWithEmbeddings,
437
+ pending_embedding_jobs: pendingJobs,
438
+ environment_variables: {
439
+ DEBUG: process.env.DEBUG === 'true',
440
+ NODE_ENV: process.env.NODE_ENV,
441
+ MEMORY_STORAGE_TYPE: process.env.MEMORY_STORAGE_TYPE || 'neo4j',
442
+ },
443
+ };
444
+ return {
445
+ content: [
446
+ {
447
+ type: 'text',
448
+ text: JSON.stringify(diagnosticInfo, null, 2),
449
+ },
450
+ ],
451
+ };
452
+ }
453
+ catch (error) {
454
+ const errorMessage = error instanceof Error ? error.message : String(error);
455
+ const errorStack = error instanceof Error ? error.stack : undefined;
456
+ process.stderr.write(`[ERROR] Error in debug_embedding_config: ${errorMessage}\n`);
457
+ return {
458
+ content: [
459
+ {
460
+ type: 'text',
461
+ text: JSON.stringify({
462
+ error: errorMessage,
463
+ stack: errorStack,
464
+ }, null, 2),
465
+ },
466
+ ],
467
+ };
468
+ }
469
+ case 'diagnose_vector_search':
470
+ if (knowledgeGraphManager.storageProvider &&
471
+ typeof knowledgeGraphManager.storageProvider
472
+ .diagnoseVectorSearch === 'function') {
473
+ return {
474
+ content: [
475
+ {
476
+ type: 'text',
477
+ text: JSON.stringify(await knowledgeGraphManager.storageProvider.diagnoseVectorSearch()),
478
+ },
479
+ ],
480
+ };
481
+ }
482
+ else {
483
+ return {
484
+ content: [
485
+ {
486
+ type: 'text',
487
+ text: JSON.stringify({
488
+ error: 'Diagnostic method not available',
489
+ storageType: knowledgeGraphManager.storageProvider
490
+ ? knowledgeGraphManager.storageProvider.constructor.name
491
+ : 'unknown',
492
+ }, null, 2),
493
+ },
494
+ ],
495
+ };
496
+ }
497
+ default:
498
+ throw new Error(`Unknown tool: ${name}`);
499
+ }
500
+ }
501
+ catch (error) {
502
+ throw error;
503
+ }
504
+ }
505
+ //# sourceMappingURL=callToolHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callToolHandler.js","sourceRoot":"","sources":["../../../src/server/handlers/callToolHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Handles the ListTools request.
3
+ * Returns a list of all available tools with their schemas.
4
+ */
5
+ export declare function handleListToolsRequest(): Promise<{
6
+ tools: Array<Record<string, unknown>>;
7
+ }>;