diff --git a/apps/mcp-server-standalone/index.js b/apps/mcp-server-standalone/index.js index ab8c609..89cfff4 100755 --- a/apps/mcp-server-standalone/index.js +++ b/apps/mcp-server-standalone/index.js @@ -1,6 +1,29 @@ #!/usr/bin/env node 'use strict'; +// Check Node version early — better-sqlite3 native bindings don't support bleeding-edge Node +const nodeVersion = parseInt(process.versions.node.split('.')[0], 10); +if (nodeVersion >= 24) { + console.error(`[ra-h-mcp-server] ERROR: Node.js v${process.versions.node} is not supported.`); + console.error('[ra-h-mcp-server] better-sqlite3 requires Node 18-22 LTS. Install Node 22:'); + console.error('[ra-h-mcp-server] nvm install 22 && nvm use 22'); + console.error('[ra-h-mcp-server] or: brew install node@22'); + process.exit(1); +} + +let Database; +try { + Database = require('better-sqlite3'); +} catch (err) { + console.error('[ra-h-mcp-server] ERROR: Failed to load better-sqlite3 native module.'); + console.error(`[ra-h-mcp-server] Node version: ${process.versions.node}`); + console.error('[ra-h-mcp-server] This usually means the native bindings need rebuilding:'); + console.error('[ra-h-mcp-server] npm rebuild better-sqlite3'); + console.error('[ra-h-mcp-server] Or your Node version is too new. Use Node 18-22 LTS.'); + console.error('[ra-h-mcp-server] Original error:', err.message); + process.exit(1); +} + const { z } = require('zod'); const { McpServer } = require('@modelcontextprotocol/sdk/server/mcp.js'); const { StdioServerTransport } = require('@modelcontextprotocol/sdk/server/stdio.js'); @@ -14,7 +37,7 @@ const guideService = require('./services/guideService'); // Server info const serverInfo = { name: 'ra-h-standalone', - version: '1.4.0' + version: '1.4.1' }; const instructions = [ diff --git a/apps/mcp-server-standalone/package.json b/apps/mcp-server-standalone/package.json index de9540a..62fce37 100644 --- a/apps/mcp-server-standalone/package.json +++ b/apps/mcp-server-standalone/package.json @@ -1,6 +1,6 @@ { "name": "ra-h-mcp-server", - "version": "1.4.0", + "version": "1.4.1", "description": "Connect Claude Code/Desktop to your RA-H knowledge base. Direct SQLite access - no web app required.", "main": "index.js", "bin": { @@ -38,7 +38,7 @@ "zod": "^3.23.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <24.0.0" }, "files": [ "index.js",