feat: implement universal Node.js compatibility with automatic database adapter fallback

This commit is contained in:
czlonkowski
2025-06-12 23:51:47 +02:00
parent 66f5d74e42
commit b476d36275
20 changed files with 16668 additions and 4772 deletions

View File

@@ -33,6 +33,8 @@
**Note**: Update the path in `args` to match your actual installation directory.
> **New in v2.3**: The project now automatically handles Node.js version mismatches. If Claude Desktop uses a different Node.js version, the database adapter will automatically fall back to a pure JavaScript implementation (sql.js) that works with any version.
4. **Restart Claude Desktop** to load the new configuration.
## Available Tools
@@ -74,14 +76,20 @@ Once configured, you'll have access to these tools in Claude:
1. **If the server doesn't appear in Claude:**
- Check that the path in `args` is absolute and correct
- Ensure you've run `npm run build` and `npm run rebuild`
- Check `~/.n8n-mcp/logs/` for error logs
- Check Claude Desktop logs: `~/Library/Logs/Claude/mcp*.log`
2. **If tools return errors:**
- Ensure the database exists: `data/nodes.db`
- Run `npm run validate` to check the database
- Rebuild if necessary: `npm run rebuild`
3. **For development/testing:**
3. **Node.js version issues:**
- **No action needed!** The project automatically detects version mismatches
- If better-sqlite3 fails, it falls back to sql.js (pure JavaScript)
- You'll see a log message indicating which adapter is being used
- Both adapters provide identical functionality
4. **For development/testing:**
You can also run with more verbose logging:
```json
{
@@ -98,4 +106,9 @@ Once configured, you'll have access to these tools in Claude:
}
}
}
```
```
5. **Checking which database adapter is active:**
Look for these log messages when the server starts:
- `Successfully initialized better-sqlite3 adapter` - Using native SQLite
- `Successfully initialized sql.js adapter` - Using pure JavaScript fallback