New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

envsync-le-mcp

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

envsync-le-mcp

Compare dotenv files and report which keys are missing or extra, by name only.

latest
Source
npmnpm
Version
2.2.5
Version published
Weekly downloads
33
Maintainers
1
Weekly downloads
 
Created
Source

envsync-le-mcp

Install from VS Code Marketplace Open VSX downloads envsync-le-mcp on npm LE Tools

An MCP server that extracts URLs from documentation, configuration and code — the extraction engine behind the EnvSync-LE editor extension, exposed as a tool an agent can call.

No dependencies, no network calls, no filesystem access. Content goes in, structured results come out.

Use it

Point any MCP host at npx envsync-le-mcp.

Claude Code

claude mcp add envsync-le -- npx -y envsync-le-mcp

Anything with a JSON config — Cursor, Windsurf, Claude Desktop:

{
  "mcpServers": {
    "envsync-le": {
      "command": "npx",
      "args": ["-y", "envsync-le-mcp"]
    }
  }
}

VS Code and Zed need nothing here. Install the extension instead — it carries this server and registers it for you: VS Code Marketplace · Open VSX · Zed (no listing yet — add it by hand)

No Node? The same compare_env_files tool ships in a static Rust binary: cargo install envsync-le, then envsync-le mcp (crates.io). The two servers answer identically — one fixture corpus runs against both and CI fails if they diverge. The binary additionally offers envsync_le_check, which discovers the dotenv files in a directory; this server reads no files, which is what lets an agent call it anywhere.

Prefer a global install to npx on every launch:

npm install -g envsync-le-mcp
{
  "mcpServers": {
    "envsync-le": { "command": "envsync-le-mcp" }
  }
}

No environment variables, no API key, no configuration of its own. To check it before wiring it into anything:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npx -y envsync-le-mcp

If that prints the tool name, the server works.

The tool

compare_env_files

argumenttype
contentstringrequired. The text to scan.
formatstringThe language: markdown, yaml, json, typescript… Required unless filename is given.
filenamestringUsed to infer format when it is absent — README.md resolves to markdown.
dedupebooleanCollapse repeats. Default false.
maxResultsnumberDefault 500, ceiling 5000.

Returns each URL with its protocol and 1-based line and column, plus meta.truncated so a capped result is never mistaken for a complete one.

{
  "ok": true,
  "data": {
    "files": [
      { "value": "https://example.com/guide", "protocol": "https", "line": 2, "column": 15 }
    ]
  },
  "meta": { "count": 1, "truncated": false }
}

Extraction is heuristic, and what it deliberately does not match is documented as carefully as what it does — see the extension README.

Also in the MCP registry

io.github.nolindnaidoo/envsync-leregistry.modelcontextprotocol.io

Nine more like it

One tool each, same shape: content in, structured data out, no network and no filesystem. Every one is on npm as <name>-mcp and in the MCP registry as io.github.nolindnaidoo/<name>.

PackageToolExtracts
urls-le-mcpextract_urlsURLs, with protocol and position
colors-le-mcpextract_colorscolors from stylesheets and code
dates-le-mcpextract_datesdates and timestamps
paths-le-mcpextract_pathsfile and directory paths
numbers-le-mcpextract_numbersnumeric values
string-le-mcpextract_stringsstring values
regex-le-mcpextract_patternsregexes, with a ReDoS verdict
secrets-le-mcpdetect_secretscredentials, masked — never the value
scrape-le-mcpanalyze_robots_txtwhether a path may be crawled

Every tool in the family, one page: letools.dev

Built by

Nolin Naidoo — Chief Engineer, AI/ML & Platform Architecture. nolindnaidoo.com · GitHub · LinkedIn

Also from the same workshop

Twelve Rust tools built the same way: small, single-purpose, and driven by a machine rather than a person. pixelcoords and pixelactions make up one loop — pixelcoords answers where, pixelactions acts there. The nine LE crates are the terminal half of the extensions they sit in: the same detection, held to the extension's own corpus, and an exit code instead of a results editor.

pixelcoordsFreeze your screen, mark regions, get pixel-exact coordinates and cropssite · crates.io · docs.rs
pixelactionsConsume human-verified coordinates, perform the interaction, confirm it landedsite · crates.io · docs.rs
paths-leFind every path in a codebase and report whether it still points at anythingcrates.io
secrets-leFind hardcoded credentials, and never print onecrates.io
urls-leExtract every URL from a codebase, with its protocol and exact positioncrates.io
regex-leFind every regex in a codebase and report which can be driven into catastrophic backtrackingcrates.io
string-leGet every string in a codebase out where a person can read themcrates.io
numbers-leFind every hardcoded number in a codebase so a person can check themcrates.io
envsync-leCompare the dotenv files in a tree and say which keys are missing from whichcrates.io
colors-leFind every colour in a codebase, and say which are not in your palettecrates.io
scrape-leCheck whether a page is scrapeable before the scraper is writtencrates.io

Licence

MIT © Nolin Naidoo

Keywords

mcp

FAQs

Package last updated on 14 Aug 2026

Related posts