enginedrift
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
enginedrift
Three places in a Node project quietly name a Node version:
engines.node in package.json, the node-version values in CI,
and the FROM node:... tags in a Dockerfile. When they disagree,
the failure usually shows up late — a CI job running a different
major than the container, or a syntax feature that works in one
place and not another. enginedrift extracts what each source
actually declares and reports the drift up front.
It answers with:
drift— true when sources declare conflicting majors, or a source sits entirely below package.json's declared minimumsources— one entry per provided source, with the raw declared strings, the majors found (ascending, unique), and a note when a source cannot pin a major (for example a CInode-version-filekey)issues— in a fixed order:MAJOR_MISMATCH(distinct majors across sources),BELOW_MINIMUM(a source entirely below package.json's minimum major),UNPINNED_IMAGE(a DockerfileFROM nodewith no numeric tag, such aslts-alpineorlatest), andNO_ENGINES(package.json declares noengines.node)
Extraction notes: for an engines range, the declared minimum is
the smallest major mentioned (>=20 means 20, ^18.2 means
18, 20.x means 20, and a bare * declares nothing). CI values
may be scalars, inline matrix lists such as [20, 22], or YAML
block lists under the key. Every Dockerfile stage is scanned, so
multi-stage builds report each FROM node line. An absent CI
config or Dockerfile is never an issue by itself. Pure local
computation: no network, no configuration, no files read by the
tool itself.
CLI
npx @reneturcios/enginedrift check --package-json package.json --ci .github/workflows/ci.yml --dockerfile Dockerfile
npx @reneturcios/enginedrift --versionThe --ci and --dockerfile flags are optional. The result is
printed as JSON. Exit codes: 0 when the check ran (drift is
data, not an error), 1 on a runtime error (including an
unreadable file or an invalid package.json), 2 on a usage
error.
Related MCP server: end-of-life-mcp
MCP server
npx -y @reneturcios/enginedrift mcpMCP client config:
{
"mcpServers": {
"enginedrift": {
"command": "npx",
"args": ["-y", "@reneturcios/enginedrift", "mcp"]
}
}
}Tools
check_engine_drift— Compare Node majors declared in package.json, CI config, and a Dockerfile, and report drift.package_json(string, required) — package.json text; its engines.node range is the anchor sourceci_yaml(string, optional) — CI workflow YAML text; node-version values are extracteddockerfile(string, optional) — Dockerfile text; FROM node image tags are extracted
Docker
docker run -i ghcr.io/cloudcorprecords/enginedrift
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/enginedrift check --package-json /w/package.json --dockerfile /w/DockerfileDevelopment
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (pure local, no network)
npm run dev # run the CLI from sourceLicense
MIT — Copyright (c) 2026 Rene Turcios
This server cannot be deployed
Maintenance
Related MCP Connectors
Detect malicious or vulnerable npm packages: registry search, OSV.dev and GitHub advisory lookups
Scan packages and lockfiles (npm, PyPI, Go, Maven, Cargo, NuGet) for vulnerabilities and malware.
Deterministic package.json upgrade plans: age gate, aligned peers, reasons per change. No AI.
Semver parse, compare, npm range checks, max-satisfying and version bumps (node-semver compatible).
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMonitors and analyzes dependency health in Node.js projects, providing tools to check outdated packages, vulnerabilities, licenses, and suggest safe upgrades.5 npmMIT
- AlicenseAqualityBmaintenanceEnables checking project files like Dockerfile, .nvmrc, and CI workflows to determine whether pinned runtime, database, and OS versions are still supported, providing end-of-life dates, latest patches, and upgrade targets for 470+ products.31MIT
- AlicenseAqualityAmaintenanceRead-only npm dependency diagnostics: inventory, audit and health checks from package-lock.json, no account needed.492 npmMIT
- AlicenseAqualityAmaintenanceEnables AI coding agents to ground dependency setup, compatibility checks, and major-version migration advice in a project's real runtime, lockfiles, and config files. It parses local project state and npm registry metadata deterministically, then returns tag-pinned install commands, breaking changes, and upgrade steps rather than generic documentation.5213 npmMIT