Skip to content
Conduit

mcp server

envdiff

Diff local vs CI environments: Node, OS, lockfile, and env vars — keys named, values never echoed.

CloudCorpRecords/envdiffcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • Node.js 20 or newer
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "envdiff": {
      "command": "npx",
      "args": [
        "-y",
        "@reneturcios/envdiff"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Nov 2, 2026

envdiff

"It works on my machine" — which part of the machine? envdiff compares two environment descriptors, typically a developer's local environment and a CI environment, and reports exactly where they differ:

  • Node version, OS, and lockfile presence, compared as fields (a missing field is reported as null)
  • env vars present on one side only, by key
  • env vars whose values differ — by key name only. Values are compared but never echoed into the report, so a descriptor may carry secrets without leaking them.

A descriptor is a small JSON object: {"node": "20.11.0", "os": "linux", "env": {"CI": "true"}, "lockfile_present": true} — every field optional.

Pure local computation: no network, no configuration.

CLI

npx @reneturcios/envdiff diff local.json ci.json
npx @reneturcios/envdiff --version

Output is the comparison report as JSON, with a summary.total_differences count. Exit codes: 0 on success (differences are a result, not an error), 1 on a runtime error (unreadable or invalid descriptor), 2 on a usage error.

MCP server

npx -y @reneturcios/envdiff mcp

MCP client config:

{
  "mcpServers": {
    "envdiff": {
      "command": "npx",
      "args": ["-y", "@reneturcios/envdiff", "mcp"]
    }
  }
}

Tools

  • diff_environments — Compare two environment descriptors.

    • local (object, required) — the local descriptor
    • ci (object, required) — the CI descriptor

    Each descriptor: node (string), os (string), env (string map), lockfile_present (boolean), all optional.

Docker

docker run -i ghcr.io/cloudcorprecords/envdiff
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/envdiff diff /w/local.json /w/ci.json

Development

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 source

License

MIT — Copyright (c) 2026 Rene Turcios

↑↓ navigate openesc close