@henrychong-ai/mcp-neo4j-knowledge-graph 1.1.1 → 1.1.3
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/README.md +16 -29
- package/dist/cli/generate-embeddings.d.ts +23 -0
- package/dist/cli/generate-embeddings.js +218 -0
- package/dist/cli/generate-embeddings.js.map +1 -0
- package/dist/storage/neo4j/Neo4jSchemaManager.js +29 -0
- package/dist/storage/neo4j/Neo4jSchemaManager.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -20,25 +20,20 @@ npx @henrychong-ai/mcp-neo4j-knowledge-graph
|
|
|
20
20
|
|
|
21
21
|
This method is recommended for use with Claude Desktop and other MCP-compatible clients.
|
|
22
22
|
|
|
23
|
-
###
|
|
23
|
+
### npm Installation
|
|
24
24
|
|
|
25
|
-
For
|
|
25
|
+
For local use or development:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
#
|
|
29
|
-
|
|
30
|
-
cd mcp-neo4j-knowledge-graph
|
|
28
|
+
# Install the package
|
|
29
|
+
npm install -g @henrychong-ai/mcp-neo4j-knowledge-graph
|
|
31
30
|
|
|
32
|
-
#
|
|
33
|
-
npm install
|
|
34
|
-
|
|
35
|
-
# Build the project
|
|
36
|
-
npm run build
|
|
37
|
-
|
|
38
|
-
# Run tests
|
|
39
|
-
npm test
|
|
31
|
+
# Or use locally in your project
|
|
32
|
+
npm install @henrychong-ai/mcp-neo4j-knowledge-graph
|
|
40
33
|
```
|
|
41
34
|
|
|
35
|
+
> **Note**: This package is maintained in a private GitHub repository but published publicly to npm. The compiled code, documentation, and full functionality are available through npm installation.
|
|
36
|
+
|
|
42
37
|
---
|
|
43
38
|
|
|
44
39
|
## Core Concepts
|
|
@@ -665,25 +660,17 @@ docker-compose up -d neo4j
|
|
|
665
660
|
npm run neo4j:init
|
|
666
661
|
```
|
|
667
662
|
|
|
668
|
-
##
|
|
663
|
+
## Package Information
|
|
669
664
|
|
|
670
|
-
|
|
671
|
-
# Clone the repository
|
|
672
|
-
git clone https://github.com/henrychong-ai/mcp-neo4j-knowledge-graph.git
|
|
673
|
-
cd mcp-neo4j-knowledge-graph
|
|
665
|
+
This package is maintained in a private GitHub repository but published publicly to npm:
|
|
674
666
|
|
|
675
|
-
|
|
676
|
-
npm install
|
|
667
|
+
- **npm Package**: [@henrychong-ai/mcp-neo4j-knowledge-graph](https://www.npmjs.com/package/@henrychong-ai/mcp-neo4j-knowledge-graph)
|
|
668
|
+
- **Installation**: `npm install @henrychong-ai/mcp-neo4j-knowledge-graph`
|
|
669
|
+
- **Published Contents**: Compiled JavaScript (dist/), documentation, and type definitions
|
|
670
|
+
- **License**: MIT
|
|
671
|
+
- **Automated Publishing**: GitHub Actions with OIDC authentication
|
|
677
672
|
|
|
678
|
-
|
|
679
|
-
npm run build
|
|
680
|
-
|
|
681
|
-
# Run tests
|
|
682
|
-
npm test
|
|
683
|
-
|
|
684
|
-
# Check test coverage
|
|
685
|
-
npm run test:coverage
|
|
686
|
-
```
|
|
673
|
+
The npm package includes everything needed to use this MCP server - compiled code, documentation, and type definitions. Source TypeScript files and development tooling remain in the private repository.
|
|
687
674
|
|
|
688
675
|
## License
|
|
689
676
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CLI tool for generating embeddings for entities in the knowledge graph
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* npm run embeddings:generate # Generate for all entities without embeddings
|
|
7
|
+
* npm run embeddings:generate -- --limit 10 # Test with first 10 entities
|
|
8
|
+
* npm run embeddings:generate -- --force # Regenerate all embeddings (even if exist)
|
|
9
|
+
*
|
|
10
|
+
* Requirements:
|
|
11
|
+
* - OPENAI_API_KEY environment variable must be set
|
|
12
|
+
* - Neo4j connection configured (NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD)
|
|
13
|
+
*/
|
|
14
|
+
interface GenerateEmbeddingsOptions {
|
|
15
|
+
limit?: number;
|
|
16
|
+
force?: boolean;
|
|
17
|
+
batchSize?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Generate embeddings for entities in the knowledge graph
|
|
21
|
+
*/
|
|
22
|
+
declare function generateEmbeddings(options?: GenerateEmbeddingsOptions): Promise<void>;
|
|
23
|
+
export { generateEmbeddings };
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CLI tool for generating embeddings for entities in the knowledge graph
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* npm run embeddings:generate # Generate for all entities without embeddings
|
|
7
|
+
* npm run embeddings:generate -- --limit 10 # Test with first 10 entities
|
|
8
|
+
* npm run embeddings:generate -- --force # Regenerate all embeddings (even if exist)
|
|
9
|
+
*
|
|
10
|
+
* Requirements:
|
|
11
|
+
* - OPENAI_API_KEY environment variable must be set
|
|
12
|
+
* - Neo4j connection configured (NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD)
|
|
13
|
+
*/
|
|
14
|
+
import { Neo4jStorageProvider } from '../storage/neo4j/Neo4jStorageProvider.js';
|
|
15
|
+
import { EmbeddingServiceFactory } from '../embeddings/EmbeddingServiceFactory.js';
|
|
16
|
+
import dotenv from 'dotenv';
|
|
17
|
+
// Load environment variables
|
|
18
|
+
dotenv.config();
|
|
19
|
+
/**
|
|
20
|
+
* Parse command line arguments
|
|
21
|
+
*/
|
|
22
|
+
function parseArgs() {
|
|
23
|
+
const args = process.argv.slice(2);
|
|
24
|
+
const options = {
|
|
25
|
+
batchSize: 10, // Process 10 entities at a time
|
|
26
|
+
};
|
|
27
|
+
for (let i = 0; i < args.length; i++) {
|
|
28
|
+
switch (args[i]) {
|
|
29
|
+
case '--limit':
|
|
30
|
+
options.limit = parseInt(args[++i], 10);
|
|
31
|
+
break;
|
|
32
|
+
case '--force':
|
|
33
|
+
options.force = true;
|
|
34
|
+
break;
|
|
35
|
+
case '--batch-size':
|
|
36
|
+
options.batchSize = parseInt(args[++i], 10);
|
|
37
|
+
break;
|
|
38
|
+
case '--help':
|
|
39
|
+
printHelp();
|
|
40
|
+
process.exit(0);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return options;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Print help message
|
|
47
|
+
*/
|
|
48
|
+
function printHelp() {
|
|
49
|
+
console.log(`
|
|
50
|
+
Generate Embeddings CLI Tool
|
|
51
|
+
|
|
52
|
+
Usage:
|
|
53
|
+
npm run embeddings:generate [options]
|
|
54
|
+
|
|
55
|
+
Options:
|
|
56
|
+
--limit <n> Generate embeddings for first N entities only (for testing)
|
|
57
|
+
--force Regenerate embeddings even if they already exist
|
|
58
|
+
--batch-size <n> Number of entities to process in each batch (default: 10)
|
|
59
|
+
--help Show this help message
|
|
60
|
+
|
|
61
|
+
Environment Variables:
|
|
62
|
+
OPENAI_API_KEY Required: Your OpenAI API key
|
|
63
|
+
NEO4J_URI Neo4j connection URI (default: bolt://localhost:7687)
|
|
64
|
+
NEO4J_USERNAME Neo4j username (default: neo4j)
|
|
65
|
+
NEO4J_PASSWORD Neo4j password
|
|
66
|
+
|
|
67
|
+
Examples:
|
|
68
|
+
npm run embeddings:generate # Generate for all entities
|
|
69
|
+
npm run embeddings:generate -- --limit 5 # Test with 5 entities first
|
|
70
|
+
npm run embeddings:generate -- --force # Regenerate all
|
|
71
|
+
`);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Generate embeddings for entities in the knowledge graph
|
|
75
|
+
*/
|
|
76
|
+
async function generateEmbeddings(options = {}) {
|
|
77
|
+
console.log('\n🚀 Starting embedding generation...\n');
|
|
78
|
+
// Validate OpenAI API key
|
|
79
|
+
if (!process.env.OPENAI_API_KEY) {
|
|
80
|
+
console.error('❌ Error: OPENAI_API_KEY environment variable is not set');
|
|
81
|
+
console.error(' Please set your OpenAI API key:');
|
|
82
|
+
console.error(' export OPENAI_API_KEY=sk-your-key-here\n');
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
// Create storage provider
|
|
86
|
+
console.log('📊 Connecting to Neo4j...');
|
|
87
|
+
const storageProvider = new Neo4jStorageProvider({
|
|
88
|
+
config: {
|
|
89
|
+
uri: process.env.NEO4J_URI || 'bolt://localhost:7687',
|
|
90
|
+
username: process.env.NEO4J_USERNAME || 'neo4j',
|
|
91
|
+
password: process.env.NEO4J_PASSWORD || '',
|
|
92
|
+
database: process.env.NEO4J_DATABASE || 'neo4j',
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
try {
|
|
96
|
+
// Create embedding service
|
|
97
|
+
console.log('🤖 Initializing OpenAI embedding service...');
|
|
98
|
+
const embeddingService = EmbeddingServiceFactory.createFromEnvironment();
|
|
99
|
+
const modelInfo = embeddingService.getProviderInfo();
|
|
100
|
+
console.log(` Provider: ${modelInfo.provider}`);
|
|
101
|
+
console.log(` Model: ${modelInfo.model}`);
|
|
102
|
+
console.log(` Dimensions: ${modelInfo.dimensions}\n`);
|
|
103
|
+
// Query entities
|
|
104
|
+
const whereClause = options.force
|
|
105
|
+
? 'WHERE e.validTo IS NULL'
|
|
106
|
+
: 'WHERE e.validTo IS NULL AND (e.embedding IS NULL OR size(e.embedding) = 0)';
|
|
107
|
+
const limitClause = options.limit ? `LIMIT ${options.limit}` : '';
|
|
108
|
+
console.log('🔍 Querying entities without embeddings...');
|
|
109
|
+
const query = `
|
|
110
|
+
MATCH (e:Entity)
|
|
111
|
+
${whereClause}
|
|
112
|
+
RETURN e.name AS name, e.observations AS observations, e.entityType AS entityType
|
|
113
|
+
ORDER BY e.name
|
|
114
|
+
${limitClause}
|
|
115
|
+
`;
|
|
116
|
+
const connectionManager = storageProvider.getConnectionManager();
|
|
117
|
+
const result = await connectionManager.executeQuery(query, {});
|
|
118
|
+
const entities = result.records.map((record) => ({
|
|
119
|
+
name: record.get('name'),
|
|
120
|
+
observations: record.get('observations'),
|
|
121
|
+
entityType: record.get('entityType'),
|
|
122
|
+
}));
|
|
123
|
+
if (entities.length === 0) {
|
|
124
|
+
console.log('✅ All entities already have embeddings!\n');
|
|
125
|
+
await storageProvider.close();
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
console.log(` Found ${entities.length} entities to process\n`);
|
|
129
|
+
// Process in batches
|
|
130
|
+
const batchSize = options.batchSize || 10;
|
|
131
|
+
let processed = 0;
|
|
132
|
+
let succeeded = 0;
|
|
133
|
+
let failed = 0;
|
|
134
|
+
for (let i = 0; i < entities.length; i += batchSize) {
|
|
135
|
+
const batch = entities.slice(i, Math.min(i + batchSize, entities.length));
|
|
136
|
+
const batchNum = Math.floor(i / batchSize) + 1;
|
|
137
|
+
const totalBatches = Math.ceil(entities.length / batchSize);
|
|
138
|
+
console.log(`📦 Processing batch ${batchNum}/${totalBatches} (${batch.length} entities)...`);
|
|
139
|
+
for (const entity of batch) {
|
|
140
|
+
try {
|
|
141
|
+
// Prepare text from observations
|
|
142
|
+
const observations = Array.isArray(entity.observations)
|
|
143
|
+
? entity.observations
|
|
144
|
+
: JSON.parse(entity.observations || '[]');
|
|
145
|
+
const text = observations.join('\n');
|
|
146
|
+
if (!text || text.trim().length === 0) {
|
|
147
|
+
console.log(` ⚠️ Skipping ${entity.name}: no observations`);
|
|
148
|
+
processed++;
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
// Generate embedding
|
|
152
|
+
const embedding = await embeddingService.generateEmbedding(text);
|
|
153
|
+
// Update entity
|
|
154
|
+
const updateQuery = `
|
|
155
|
+
MATCH (e:Entity {name: $name})
|
|
156
|
+
WHERE e.validTo IS NULL
|
|
157
|
+
SET e.embedding = $embedding, e.updatedAt = $now
|
|
158
|
+
RETURN e.name
|
|
159
|
+
`;
|
|
160
|
+
await connectionManager.executeQuery(updateQuery, {
|
|
161
|
+
name: entity.name,
|
|
162
|
+
embedding,
|
|
163
|
+
now: Date.now(),
|
|
164
|
+
});
|
|
165
|
+
console.log(` ✅ ${entity.name} (${entity.entityType})`);
|
|
166
|
+
succeeded++;
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
console.error(` ❌ Failed: ${entity.name}`);
|
|
170
|
+
console.error(` Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
171
|
+
failed++;
|
|
172
|
+
}
|
|
173
|
+
processed++;
|
|
174
|
+
}
|
|
175
|
+
// Progress summary
|
|
176
|
+
const progress = ((processed / entities.length) * 100).toFixed(1);
|
|
177
|
+
console.log(` Progress: ${processed}/${entities.length} (${progress}%)\n`);
|
|
178
|
+
// Rate limiting: small delay between batches
|
|
179
|
+
if (i + batchSize < entities.length) {
|
|
180
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// Final summary
|
|
184
|
+
console.log('═══════════════════════════════════════════════════');
|
|
185
|
+
console.log('📊 Embedding Generation Complete!');
|
|
186
|
+
console.log('═══════════════════════════════════════════════════');
|
|
187
|
+
console.log(` Total processed: ${processed}`);
|
|
188
|
+
console.log(` ✅ Succeeded: ${succeeded}`);
|
|
189
|
+
if (failed > 0) {
|
|
190
|
+
console.log(` ❌ Failed: ${failed}`);
|
|
191
|
+
}
|
|
192
|
+
console.log('═══════════════════════════════════════════════════\n');
|
|
193
|
+
// Calculate estimated cost
|
|
194
|
+
const avgTokensPerEntity = 200; // Conservative estimate
|
|
195
|
+
const totalTokens = succeeded * avgTokensPerEntity;
|
|
196
|
+
const costPer1MTokens = 0.02; // text-embedding-3-small
|
|
197
|
+
const estimatedCost = (totalTokens / 1000000) * costPer1MTokens;
|
|
198
|
+
console.log(`💰 Estimated cost: $${estimatedCost.toFixed(4)} USD`);
|
|
199
|
+
console.log(` (${totalTokens.toLocaleString()} tokens × $${costPer1MTokens}/1M tokens)\n`);
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
console.error('\n❌ Fatal error:', error);
|
|
203
|
+
process.exit(1);
|
|
204
|
+
}
|
|
205
|
+
finally {
|
|
206
|
+
await storageProvider.close();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// Main execution
|
|
210
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
211
|
+
const options = parseArgs();
|
|
212
|
+
generateEmbeddings(options).catch((error) => {
|
|
213
|
+
console.error('Unhandled error:', error);
|
|
214
|
+
process.exit(1);
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
export { generateEmbeddings };
|
|
218
|
+
//# sourceMappingURL=generate-embeddings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-embeddings.js","sourceRoot":"","sources":["../../src/cli/generate-embeddings.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,6 +88,35 @@ export class Neo4jSchemaManager {
|
|
|
88
88
|
async createEntityConstraints(recreate = false) {
|
|
89
89
|
this.log('Creating entity name constraint...');
|
|
90
90
|
const constraintName = 'entity_name';
|
|
91
|
+
// Check for conflicting constraints on Entity nodes with 'name' property
|
|
92
|
+
const allConstraints = await this.listConstraints();
|
|
93
|
+
const entityConstraints = allConstraints.filter((c) => {
|
|
94
|
+
// Neo4j returns either 'labelsOrTypes' or 'entityType' depending on version
|
|
95
|
+
const label = c.labelsOrTypes || c.entityType;
|
|
96
|
+
const properties = c.properties;
|
|
97
|
+
return ((label === 'Entity' || (Array.isArray(label) && label.includes('Entity'))) &&
|
|
98
|
+
Array.isArray(properties) &&
|
|
99
|
+
properties.includes('name'));
|
|
100
|
+
});
|
|
101
|
+
// Warn about conflicting constraints
|
|
102
|
+
let hasConflicts = false;
|
|
103
|
+
for (const constraint of entityConstraints) {
|
|
104
|
+
if (constraint.name !== constraintName) {
|
|
105
|
+
hasConflicts = true;
|
|
106
|
+
this.log(`⚠️ WARNING: Found conflicting Entity constraint: ${constraint.name}`);
|
|
107
|
+
this.log(` Properties: ${JSON.stringify(constraint.properties)}`);
|
|
108
|
+
if (recreate) {
|
|
109
|
+
this.log(` Dropping conflicting constraint: ${constraint.name}`);
|
|
110
|
+
await this.dropConstraintIfExists(constraint.name);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
this.log(` Run with recreate=true to automatically remove conflicting constraints`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (hasConflicts && !recreate) {
|
|
118
|
+
this.log('⚠️ Conflicting constraints detected. Use npm run neo4j:init with recreate=true to fix automatically.');
|
|
119
|
+
}
|
|
91
120
|
if (recreate) {
|
|
92
121
|
await this.dropConstraintIfExists(constraintName);
|
|
93
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Neo4jSchemaManager.js","sourceRoot":"","sources":["../../../src/storage/neo4j/Neo4jSchemaManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Neo4jSchemaManager.js","sourceRoot":"","sources":["../../../src/storage/neo4j/Neo4jSchemaManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@henrychong-ai/mcp-neo4j-knowledge-graph",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "Neo4j-based knowledge graph MCP server with temporal versioning and semantic search",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Henry Chong <henry@henrychong.ai>",
|
|
@@ -46,7 +46,9 @@
|
|
|
46
46
|
"format": "prettier --write \"**/*.{ts,json,md}\"",
|
|
47
47
|
"fix": "npm run lint:fix && npm run format",
|
|
48
48
|
"neo4j:init": "tsx src/cli/neo4j-setup.ts init",
|
|
49
|
-
"neo4j:test": "tsx src/cli/neo4j-setup.ts test"
|
|
49
|
+
"neo4j:test": "tsx src/cli/neo4j-setup.ts test",
|
|
50
|
+
"embeddings:generate": "tsx src/cli/generate-embeddings.ts",
|
|
51
|
+
"embeddings:test": "tsx src/cli/generate-embeddings.ts -- --limit 5"
|
|
50
52
|
},
|
|
51
53
|
"dependencies": {
|
|
52
54
|
"@modelcontextprotocol/sdk": "1.11.0",
|