
Security News
White House Authorizes Private Companies to Conduct Offensive Cyber Operations
A new federal program will let vetted U.S. cybersecurity firms help investigate and disrupt foreign cybercrime groups under government direction.
urls-le-mcp
Advanced tools
MCP server that extracts URLs from documentation, config and code — the engine behind the URLs-LE editor extension.
An MCP server that extracts URLs from documentation, configuration and code — the extraction engine behind the URLs-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.
Point any MCP host at npx urls-le-mcp.
Claude Code
claude mcp add urls-le -- npx -y urls-le-mcp
Anything with a JSON config — Cursor, Windsurf, Claude Desktop:
{
"mcpServers": {
"urls-le": {
"command": "npx",
"args": ["-y", "urls-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 (pending review)
No Node? The same extract_urls tool ships in a static Rust binary:
cargo install urls-le, then urls-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 urls_le_scan, which walks a
tree; 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 urls-le-mcp
{
"mcpServers": {
"urls-le": { "command": "urls-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 urls-le-mcp
If that prints extract_urls, the server works.
extract_urls| argument | type | |
|---|---|---|
content | string | required. The text to scan. |
format | string | The language: markdown, yaml, json, typescript… Required unless filename is given. A name with no format-aware extractor is scanned as plain text rather than refused. |
filename | string | Used to infer format when it is absent — README.md resolves to markdown. |
dedupe | boolean | Collapse repeats. Default false. |
maxResults | number | Default 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": {
"urls": [
{ "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.
io.github.nolindnaidoo/urls-le —
registry.modelcontextprotocol.io
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>.
| Package | Tool | Extracts |
|---|---|---|
colors-le-mcp | extract_colors | colors from stylesheets and code |
dates-le-mcp | extract_dates | dates and timestamps |
paths-le-mcp | extract_paths | file and directory paths |
numbers-le-mcp | extract_numbers | numeric values |
string-le-mcp | extract_strings | string values |
regex-le-mcp | extract_patterns | regexes, with a ReDoS verdict |
secrets-le-mcp | detect_secrets | credentials, masked — never the value |
envsync-le-mcp | compare_env_files | dotenv key drift, names only |
scrape-le-mcp | analyze_robots_txt | whether a path may be crawled |
Every tool in the family, one page: letools.dev
Nolin Naidoo — Chief Engineer, AI/ML & Platform Architecture. nolindnaidoo.com · GitHub · LinkedIn
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.
| pixelcoords | Freeze your screen, mark regions, get pixel-exact coordinates and crops | site · crates.io · docs.rs |
| pixelactions | Consume human-verified coordinates, perform the interaction, confirm it landed | site · crates.io · docs.rs |
| paths-le | Find every path in a codebase and report whether it still points at anything | crates.io |
| secrets-le | Find hardcoded credentials, and never print one | crates.io |
| urls-le | Extract every URL from a codebase, with its protocol and exact position | crates.io |
| regex-le | Find every regex in a codebase and report which can be driven into catastrophic backtracking | crates.io |
| string-le | Get every string in a codebase out where a person can read them | crates.io |
| numbers-le | Find every hardcoded number in a codebase so a person can check them | crates.io |
| envsync-le | Compare the dotenv files in a tree and say which keys are missing from which | crates.io |
| colors-le | Find every colour in a codebase, and say which are not in your palette | crates.io |
| scrape-le | Check whether a page is scrapeable before the scraper is written | crates.io |
MIT © Nolin Naidoo
FAQs
MCP server that extracts URLs from documentation, config and code — the engine behind the URLs-LE editor extension.
The npm package urls-le-mcp receives a total of 231 weekly downloads. As such, urls-le-mcp popularity was classified as not popular.
We found that urls-le-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A new federal program will let vetted U.S. cybersecurity firms help investigate and disrupt foreign cybercrime groups under government direction.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.