@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,65 @@
1
+ /**
2
+ * Configuration for the embedding subsystem
3
+ */
4
+ /**
5
+ * Default settings for embedding job processing
6
+ */
7
+ export const DEFAULT_EMBEDDING_SETTINGS = {
8
+ /**
9
+ * Maximum batch size for processing embedding jobs
10
+ * Larger batches may be more efficient but use more memory
11
+ */
12
+ BATCH_SIZE: 10,
13
+ /**
14
+ * Minimum time in milliseconds between API calls (rate limiting)
15
+ */
16
+ API_RATE_LIMIT_MS: 1000,
17
+ /**
18
+ * Time-to-live in milliseconds for cached embeddings (default: 30 days)
19
+ */
20
+ CACHE_TTL_MS: 30 * 24 * 60 * 60 * 1000,
21
+ /**
22
+ * Maximum number of entries to keep in the embedding cache
23
+ */
24
+ CACHE_MAX_SIZE: 1000,
25
+ /**
26
+ * Minimum age in milliseconds for jobs to be eligible for cleanup
27
+ * Default: 30 days
28
+ */
29
+ JOB_CLEANUP_AGE_MS: 30 * 24 * 60 * 60 * 1000,
30
+ /**
31
+ * Status options for embedding jobs
32
+ */
33
+ JOB_STATUS: {
34
+ PENDING: 'pending',
35
+ PROCESSING: 'processing',
36
+ COMPLETED: 'completed',
37
+ FAILED: 'failed',
38
+ },
39
+ };
40
+ /**
41
+ * Get configuration for the LRU cache for embeddings
42
+ *
43
+ * @param options - Optional overrides for cache settings
44
+ * @returns Configuration object for the LRU cache
45
+ */
46
+ export function getEmbeddingCacheConfig(options = {}) {
47
+ return {
48
+ max: options.max || DEFAULT_EMBEDDING_SETTINGS.CACHE_MAX_SIZE,
49
+ ttl: options.ttl || DEFAULT_EMBEDDING_SETTINGS.CACHE_TTL_MS,
50
+ };
51
+ }
52
+ /**
53
+ * Get configuration for embedding job processing
54
+ *
55
+ * @param options - Optional overrides for job processing settings
56
+ * @returns Configuration object for job processing
57
+ */
58
+ export function getJobProcessingConfig(options = {}) {
59
+ return {
60
+ batchSize: options.batchSize || DEFAULT_EMBEDDING_SETTINGS.BATCH_SIZE,
61
+ apiRateLimitMs: options.apiRateLimitMs || DEFAULT_EMBEDDING_SETTINGS.API_RATE_LIMIT_MS,
62
+ jobCleanupAgeMs: options.jobCleanupAgeMs || DEFAULT_EMBEDDING_SETTINGS.JOB_CLEANUP_AGE_MS,
63
+ };
64
+ }
65
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/embeddings/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC;;;OAGG;IACH,UAAU,EAAE,EAAE;IAEd;;OAEG;IACH,iBAAiB,EAAE,IAAI;IAEvB;;OAEG;IACH,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAEtC;;OAEG;IACH,cAAc,EAAE,IAAI;IAEpB;;;OAGG;IACH,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAE5C;;OAEG;IACH,UAAU,EAAE;QACV,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,YAAY;QACxB,SAAS,EAAE,WAAW;QACtB,MAAM,EAAE,QAAQ;KACjB;CACF,CAAC;AAqCF;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAA0C,EAAE;IAE5C,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,0BAA0B,CAAC,cAAc;QAC7D,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,0BAA0B,CAAC,YAAY;KAC5D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAAkD,EAAE;IAEpD,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,0BAA0B,CAAC,UAAU;QACrE,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,0BAA0B,CAAC,iBAAiB;QACtF,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,0BAA0B,CAAC,kBAAkB;KAC1F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ export * from './KnowledgeGraphManager.js';
3
+ export { RelationMetadata, Relation } from './types/relation.js';
4
+ export declare function main(): Promise<void>;
package/dist/index.js ADDED
@@ -0,0 +1,220 @@
1
+ #!/usr/bin/env node
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { KnowledgeGraphManager } from './KnowledgeGraphManager.js';
4
+ import { initializeStorageProvider } from './config/storage.js';
5
+ import { setupServer } from './server/setup.js';
6
+ import { EmbeddingJobManager } from './embeddings/EmbeddingJobManager.js';
7
+ import { EmbeddingServiceFactory } from './embeddings/EmbeddingServiceFactory.js';
8
+ import { logger } from './utils/logger.js';
9
+ // Re-export the types and classes for use in other modules
10
+ export * from './KnowledgeGraphManager.js';
11
+ // Export the Relation type
12
+ export { Relation } from './types/relation.js';
13
+ // Initialize storage and create KnowledgeGraphManager
14
+ const storageProvider = initializeStorageProvider();
15
+ // Initialize embedding job manager only if storage provider supports it
16
+ let embeddingJobManager = undefined;
17
+ try {
18
+ // Force debug logging to help troubleshoot
19
+ logger.debug(`OpenAI API key exists: ${!!process.env.OPENAI_API_KEY}`);
20
+ logger.debug(`OpenAI Embedding model: ${process.env.OPENAI_EMBEDDING_MODEL || 'not set'}`);
21
+ logger.debug(`Storage provider type: ${process.env.MEMORY_STORAGE_TYPE || 'default'}`);
22
+ // Ensure OPENAI_API_KEY is defined for embedding generation
23
+ if (!process.env.OPENAI_API_KEY) {
24
+ logger.warn('OPENAI_API_KEY environment variable is not set. Semantic search will use random embeddings.');
25
+ }
26
+ else {
27
+ logger.info('OpenAI API key found, will use for generating embeddings');
28
+ }
29
+ // Initialize the embedding service
30
+ const embeddingService = EmbeddingServiceFactory.createFromEnvironment();
31
+ logger.debug(`Embedding service model info: ${JSON.stringify(embeddingService.getModelInfo())}`);
32
+ // Configure rate limiting options - stricter limits to prevent OpenAI API abuse
33
+ const rateLimiterOptions = {
34
+ tokensPerInterval: process.env.EMBEDDING_RATE_LIMIT_TOKENS
35
+ ? parseInt(process.env.EMBEDDING_RATE_LIMIT_TOKENS, 10)
36
+ : 20, // Default: 20 requests per minute
37
+ interval: process.env.EMBEDDING_RATE_LIMIT_INTERVAL
38
+ ? parseInt(process.env.EMBEDDING_RATE_LIMIT_INTERVAL, 10)
39
+ : 60 * 1000, // Default: 1 minute
40
+ };
41
+ logger.info('Initializing EmbeddingJobManager', {
42
+ rateLimiterOptions,
43
+ model: embeddingService.getModelInfo().name,
44
+ storageType: process.env.MEMORY_STORAGE_TYPE || 'neo4j',
45
+ });
46
+ // For Neo4j (which is always the storage provider)
47
+ // Create a compatible wrapper for the Neo4j storage provider
48
+ const adaptedStorageProvider = {
49
+ ...storageProvider,
50
+ // Add a fake db with exec function for compatibility
51
+ db: {
52
+ exec: (sql) => {
53
+ logger.debug(`Neo4j adapter: Received SQL: ${sql}`);
54
+ // No-op, just for compatibility
55
+ return null;
56
+ },
57
+ prepare: () => ({
58
+ run: () => null,
59
+ all: () => [],
60
+ get: () => null,
61
+ }),
62
+ },
63
+ // Make sure getEntity is available
64
+ getEntity: async (name) => {
65
+ if (typeof storageProvider.getEntity === 'function') {
66
+ return storageProvider.getEntity(name);
67
+ }
68
+ const result = await storageProvider.openNodes([name]);
69
+ return result.entities[0] || null;
70
+ },
71
+ // Make sure storeEntityVector is available
72
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
+ storeEntityVector: async (name, embedding) => {
74
+ logger.debug(`Neo4j adapter: storeEntityVector called for ${name}`, {
75
+ embeddingType: typeof embedding,
76
+ vectorLength: embedding?.vector?.length || 'no vector',
77
+ model: embedding?.model || 'no model',
78
+ });
79
+ // Ensure embedding has the correct format
80
+ const formattedEmbedding = {
81
+ vector: embedding.vector || embedding,
82
+ model: embedding.model || 'unknown',
83
+ lastUpdated: embedding.lastUpdated || Date.now(),
84
+ };
85
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
+ if (typeof storageProvider.updateEntityEmbedding === 'function') {
87
+ try {
88
+ logger.debug(`Neo4j adapter: Using updateEntityEmbedding for ${name}`);
89
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
+ return await storageProvider.updateEntityEmbedding(name, formattedEmbedding);
91
+ }
92
+ catch (error) {
93
+ logger.error(`Neo4j adapter: Error in storeEntityVector for ${name}`, error);
94
+ throw error;
95
+ }
96
+ }
97
+ else {
98
+ const errorMsg = `Neo4j adapter: Neither storeEntityVector nor updateEntityEmbedding implemented for ${name}`;
99
+ logger.error(errorMsg);
100
+ throw new Error(errorMsg);
101
+ }
102
+ },
103
+ };
104
+ // Create the embedding job manager with adapted storage provider
105
+ embeddingJobManager = new EmbeddingJobManager(
106
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
107
+ adaptedStorageProvider, embeddingService, rateLimiterOptions, null, // Use default cache options
108
+ logger);
109
+ // Schedule periodic processing for embedding jobs
110
+ const EMBEDDING_PROCESS_INTERVAL = 10000; // 10 seconds - more frequent processing
111
+ setInterval(async () => {
112
+ try {
113
+ // Process pending embedding jobs
114
+ await embeddingJobManager?.processJobs(10);
115
+ }
116
+ catch (error) {
117
+ // Log error but don't crash
118
+ logger.error('Error in scheduled job processing', {
119
+ error: error instanceof Error ? error.message : String(error),
120
+ stack: error instanceof Error ? error.stack : undefined,
121
+ });
122
+ }
123
+ }, EMBEDDING_PROCESS_INTERVAL);
124
+ }
125
+ catch (error) {
126
+ // Fail gracefully if embedding job manager initialization fails
127
+ logger.error('Failed to initialize EmbeddingJobManager', {
128
+ error: error instanceof Error ? error.message : String(error),
129
+ stack: error instanceof Error ? error.stack : undefined,
130
+ });
131
+ embeddingJobManager = undefined;
132
+ }
133
+ // Create the KnowledgeGraphManager with the storage provider, embedding job manager, and vector store options
134
+ const knowledgeGraphManager = new KnowledgeGraphManager({
135
+ storageProvider,
136
+ embeddingJobManager,
137
+ // Pass vector store options from storage provider if available
138
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
139
+ vectorStoreOptions: storageProvider.vectorStoreOptions,
140
+ });
141
+ // Ensure the storeEntityVector method is available on KnowledgeGraphManager's storageProvider
142
+ // Cast to any to bypass type checking for internal properties
143
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
144
+ const knowledgeGraphManagerAny = knowledgeGraphManager;
145
+ if (knowledgeGraphManagerAny.storageProvider &&
146
+ typeof knowledgeGraphManagerAny.storageProvider.storeEntityVector !== 'function') {
147
+ // Add the storeEntityVector method to the storage provider
148
+ knowledgeGraphManagerAny.storageProvider.storeEntityVector = async (name,
149
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
150
+ embedding) => {
151
+ logger.debug(`Neo4j knowledgeGraphManager adapter: storeEntityVector called for ${name}`, {
152
+ embeddingType: typeof embedding,
153
+ vectorLength: embedding?.vector?.length || 'no vector',
154
+ model: embedding?.model || 'no model',
155
+ });
156
+ // Ensure embedding has the correct format
157
+ const formattedEmbedding = {
158
+ vector: embedding.vector || embedding,
159
+ model: embedding.model || 'unknown',
160
+ lastUpdated: embedding.lastUpdated || Date.now(),
161
+ };
162
+ if (typeof knowledgeGraphManagerAny.storageProvider.updateEntityEmbedding === 'function') {
163
+ try {
164
+ logger.debug(`Neo4j knowledgeGraphManager adapter: Using updateEntityEmbedding for ${name}`);
165
+ return await knowledgeGraphManagerAny.storageProvider.updateEntityEmbedding(name, formattedEmbedding);
166
+ }
167
+ catch (error) {
168
+ logger.error(`Neo4j knowledgeGraphManager adapter: Error in storeEntityVector for ${name}`, error);
169
+ throw error;
170
+ }
171
+ }
172
+ else {
173
+ const errorMsg = `Neo4j knowledgeGraphManager adapter: updateEntityEmbedding not implemented for ${name}`;
174
+ logger.error(errorMsg);
175
+ throw new Error(errorMsg);
176
+ }
177
+ };
178
+ logger.info('Added storeEntityVector adapter method to Neo4j storage provider for KnowledgeGraphManager');
179
+ }
180
+ // Use a custom createEntities method for immediate job processing, but only if knowledgeGraphManager exists
181
+ if (knowledgeGraphManager && typeof knowledgeGraphManager.createEntities === 'function') {
182
+ const originalCreateEntities = knowledgeGraphManager.createEntities.bind(knowledgeGraphManager);
183
+ knowledgeGraphManager.createEntities = async function (entities) {
184
+ // First call the original method to create the entities
185
+ const result = await originalCreateEntities(entities);
186
+ // Then process jobs immediately if we have an embedding job manager
187
+ if (embeddingJobManager) {
188
+ try {
189
+ logger.info('Processing embedding jobs immediately after entity creation', {
190
+ entityCount: entities.length,
191
+ entityNames: entities.map((e) => e.name).join(', '),
192
+ });
193
+ await embeddingJobManager.processJobs(entities.length);
194
+ }
195
+ catch (error) {
196
+ logger.error('Error processing embedding jobs immediately', {
197
+ error: error instanceof Error ? error.message : String(error),
198
+ stack: error instanceof Error ? error.stack : undefined,
199
+ });
200
+ }
201
+ }
202
+ return result;
203
+ };
204
+ }
205
+ // Setup the server with the KnowledgeGraphManager
206
+ const server = setupServer(knowledgeGraphManager);
207
+ // Export main function for testing
208
+ export async function main() {
209
+ const transport = new StdioServerTransport();
210
+ await server.connect(transport);
211
+ }
212
+ // Only run main if not in a test environment
213
+ if (!process.env.VITEST && !process.env.NODE_ENV?.includes('test')) {
214
+ main().catch((error) => {
215
+ // Log error but don't use console.error
216
+ logger.error(`Main process terminated: ${error}`);
217
+ process.exit(1);
218
+ });
219
+ }
220
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Handles the CallTool request.
3
+ * Delegates to the appropriate tool handler based on the tool name.
4
+ *
5
+ * @param request The CallTool request object
6
+ * @param knowledgeGraphManager The KnowledgeGraphManager instance
7
+ * @returns A response object with the result content
8
+ * @throws Error if the tool is unknown or arguments are missing
9
+ */
10
+ export declare function handleCallToolRequest(request: {
11
+ params?: {
12
+ name?: string;
13
+ arguments?: Record<string, unknown>;
14
+ };
15
+ }, knowledgeGraphManager: any): Promise<{
16
+ content: Array<{
17
+ type: string;
18
+ text: string;
19
+ }>;
20
+ }>;