Skip to main content
Glama
knowall-ai

Neo4j Agent Memory MCP Server

by knowall-ai
test-update-connection.js4.33 kB
#!/usr/bin/env node // Test script for update_connection function // This script tests updating properties of existing connections import { spawn } from 'child_process'; import dotenv from 'dotenv'; // Load environment variables dotenv.config({ path: '../.env' }); const testUpdateConnection = () => { console.log('🔗🔄 Testing update_connection function...'); const mcp = spawn('node', ['../build/index.js'], { env: { ...process.env, NEO4J_PASSWORD: process.env.NEO4J_PASSWORD, NEO4J_DATABASE: process.env.NEO4J_DATABASE, NEO4J_URI: process.env.NEO4J_URI, NEO4J_USERNAME: process.env.NEO4J_USERNAME }, stdio: ['pipe', 'pipe', 'pipe'] }); let messageId = 1; let outputBuffer = ''; let memory1Id = null; let memory2Id = null; const sendMessage = (name, args) => { const message = { jsonrpc: '2.0', id: messageId++, method: 'tools/call', params: { name, arguments: args } }; mcp.stdin.write(JSON.stringify(message) + '\n'); }; mcp.stdout.on('data', (data) => { outputBuffer += data.toString(); const lines = outputBuffer.split('\n'); outputBuffer = lines[lines.length - 1]; // Keep incomplete line for (let i = 0; i < lines.length - 1; i++) { const line = lines[i]; if (line.trim()) { try { const response = JSON.parse(line); if (response.id === 1) { // Created first memory const content = response.result?.content?.[0]?.text; if (content) { const result = JSON.parse(content); memory1Id = result.n._id; console.log(`✅ Created first memory with ID: ${memory1Id}`); } } else if (response.id === 2) { // Created second memory const content = response.result?.content?.[0]?.text; if (content) { const result = JSON.parse(content); memory2Id = result.n._id; console.log(`✅ Created second memory with ID: ${memory2Id}`); // Create connection console.log('Creating connection...'); sendMessage('create_connection', { fromMemoryId: memory1Id, toMemoryId: memory2Id, type: 'WORKS_AT', properties: { role: 'Engineer', since: '2020', created_at: new Date().toISOString() } }); } } else if (response.id === 3) { // Created connection console.log('✅ Created connection'); // Now update it console.log('Updating connection properties...'); sendMessage('update_connection', { fromMemoryId: memory1Id, toMemoryId: memory2Id, type: 'WORKS_AT', properties: { role: 'Senior Engineer', since: '2020', promoted: '2024', updated_at: new Date().toISOString() } }); } else if (response.id === 4) { // Updated connection console.log('✅ update_connection test passed'); console.log('Response:', response.result?.content?.[0]?.text); // Clean up sendMessage('delete_memory', { nodeId: memory1Id }); sendMessage('delete_memory', { nodeId: memory2Id }); setTimeout(() => mcp.kill(), 1000); } } catch (e) { // Ignore parse errors } } } }); mcp.stderr.on('data', (data) => { console.error('❌ Error:', data.toString()); }); // Create test data console.log('Creating test memories...'); sendMessage('create_memory', { label: 'person', properties: { name: 'TestEmployee', created_at: new Date().toISOString() } }); setTimeout(() => { sendMessage('create_memory', { label: 'organization', properties: { name: 'TestCompany', created_at: new Date().toISOString() } }); }, 500); setTimeout(() => { console.log('⏰ Test timeout'); mcp.kill(); }, 10000); }; testUpdateConnection();

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/knowall-ai/mcp-neo4j-agent-memory'

If you have feedback or need assistance with the MCP directory API, please join our Discord server