Back to N8n Mcp

Database & Memory Configuration

docs/DATABASE_CONFIGURATION.md

2.50.41.4 KB
Original Source

Database & Memory Configuration

Database Adapters

n8n-mcp uses SQLite for storing node documentation. Two adapters are available:

  1. better-sqlite3 (Default in Docker)

    • Native C++ bindings for best performance
    • Direct disk writes (no memory overhead)
    • Enabled by default in Docker images (v2.20.2+)
    • Memory usage: ~100-120 MB stable
  2. sql.js (Fallback)

    • Pure JavaScript implementation
    • In-memory database with periodic saves
    • Used when better-sqlite3 compilation fails
    • Memory usage: ~150-200 MB stable

Memory Optimization (sql.js)

If using sql.js fallback, you can configure the save interval to balance between data safety and memory efficiency:

Environment Variable:

bash
SQLJS_SAVE_INTERVAL_MS=5000  # Default: 5000ms (5 seconds)

Usage:

  • Controls how long to wait after database changes before saving to disk
  • Lower values = more frequent saves = higher memory churn
  • Higher values = less frequent saves = lower memory usage
  • Minimum: 100ms
  • Recommended: 5000-10000ms for production

Docker Configuration:

json
{
  "mcpServers": {
    "n8n-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--init",
        "-e", "SQLJS_SAVE_INTERVAL_MS=10000",
        "ghcr.io/czlonkowski/n8n-mcp:latest"
      ]
    }
  }
}

docker-compose:

yaml
environment:
  SQLJS_SAVE_INTERVAL_MS: "10000"