ArangoDB MCP Server

  • dev
const db = require('@arangodb').db; const fs = require('fs'); function createDatabase(dbName) { // Switch to _system database first db._useDatabase('_system'); if (!db._databases().includes(dbName)) { db._createDatabase(dbName); console.log(`Created database: ${dbName}`); } } // Rest of the functions remain the same function initializeCollection(dbName, collectionName, dataFile) { db._useDatabase(dbName); const collection = db._collection(collectionName); const dataPath = `/docker-entrypoint-initdb.d/data/${dataFile}`; if (fs.exists(dataPath)) { const data = JSON.parse(fs.read(dataPath)); data.forEach(doc => { collection.save(doc, { overwrite: true }); }); console.log(`Loaded ${data.length} documents into ${collectionName}`); } } function ensureCollection(dbName, collectionName) { db._useDatabase(dbName); if (!db._collection(collectionName)) { db._createDocumentCollection(collectionName); console.log(`Created collection: ${collectionName}`); } return db._collection(collectionName); } // Start by ensuring we're in the system database db._useDatabase('_system'); // Initialize e-commerce database const ecommerceDbName = 'ecommerce_db'; createDatabase(ecommerceDbName); // Create and initialize e-commerce collections ensureCollection(ecommerceDbName, 'users'); ensureCollection(ecommerceDbName, 'products'); initializeCollection(ecommerceDbName, 'users', 'users.json'); initializeCollection(ecommerceDbName, 'products', 'products.json'); // Initialize library database const libraryDbName = 'library_db'; createDatabase(libraryDbName); // Create and initialize library collections ensureCollection(libraryDbName, 'authors'); ensureCollection(libraryDbName, 'books'); ensureCollection(libraryDbName, 'borrowings'); initializeCollection(libraryDbName, 'authors', 'authors.json'); initializeCollection(libraryDbName, 'books', 'books.json'); initializeCollection(libraryDbName, 'borrowings', 'borrowings.json');