Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

URLs-LE

by nolindnaidooversion 2.4.0i★ –iRuns on your computer
Registry nameio.github.nolindnaidoo/urls-le

Install

Overview

Description from the maker (original English)

Extract URLs from documentation, configuration and code, with their protocol and position.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Developer tools

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

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

Run this in your terminal

claude mcp add urls-le -- npx -y urls-le-mcp

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

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

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "urls-le": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "urls-le-mcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account nolindnaidoo, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Developer toolsi

  • More stars than 0% of the other 5541 servers in this category
  • Published to the registry more recently than 51% of the other 5541 servers in this category
  • Basic checks equal to or better than 100% of the other 5541 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is URLs-LE safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (2.4.0) reached the registry 32 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: GitHub, Desktop Commander, Cloudflare MCP

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

GitHub

GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.

by githubWidely used★ 34.2KUpdated 5 days ago

Computer or cloud

Desktop Commander

MCP server for terminal commands, file operations, and process management

by wonderwhy-erWidely used↓ 709.6K/wk★ 10.2KUpdated 17 days ago

Runs on your computer

Cloudflare MCP

Cloudflare MCP servers

by cloudflareWidely used★ 4.4KUpdated 14 months ago

Runs in the cloud✓ mcp.cloudflare.com

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

URLs-LE: Zero Hassle URL Extraction

Pull every URL out of the current file in one keystroke

Any text file — Markdown, HTML, CSS, JavaScript, TypeScript, JSON, YAML, Properties, TOML, INI and XML know what to exclude


Useful? A star or rating is how other developers find it —

★ GitHub ·

★ Open VSX ·

★ Marketplace

What it does

Open a file, run URLs-LE: Extract URLs, and every URL in the document lands in a new editor — deduplicate and sort it from there. Works in VS Code and in VS Code–based editors like Cursor and VSCodium (installable from Open VSX).

  • Link auditing — every link, autolink, and plain URL in Markdown and HTML (code blocks excluded in Markdown, comments excluded in HTML)
  • Source review — URLs in string literals, template literals, and comments across JS/TS
  • Config sweep — URLs in JSON strings, YAML values, Java properties, TOML/INI values, and XML (Maven POMs, feeds)

Install

WhereWhat you getInstall
VS CodeThe extraction, in your editor, on a keystrokeMarketplace
Cursor, VSCodium, WindsurfThe same extensionOpen VSX
A terminal or a CI stepThe same run over a whole tree, with exit codesnpx url-le · npm or cargo install urls-le · crates.io
Any MCP agent, via Nodeextract_urls over stdionpx urls-le-mcp · npm

Use it from an AI agent

The same extraction engine runs as an MCP server, so an agent can call it directly instead of you running a command.

EditorHow
VS Code 1.101+Nothing to install — the extension registers extract_urls with agent mode
Claude Codeclaude mcp add urls-le -- npx -y urls-le-mcp
Cursor, Windsurf, anything elsepoint it at npx urls-le-mcp
extract_urls(content, format?, filename?, dedupe?, maxResults?)

Returns every URL with its protocol and 1-based line and column, capped at 500 by default with meta.truncated so a large file cannot flood the agent's context window.

The server takes content and returns data — it reads no files and makes no network requests of its own. Published as urls-le-mcp on npm and as io.github.nolindnaidoo/urls-le in the MCP registry.

Configuring it by hand — any host with an MCP config file

Most hosts read a JSON config. Add one entry:

{

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

-y skips the install prompt on first run. Pin a version if you would rather not track releases — urls-le-mcp@2.4.0.

Prefer not to go through npx on every launch? Install it once and point at the binary instead:

npm install -g urls-le-mcp
{

"mcpServers": { "urls-le": { "command": "urls-le-mcp" } } }

It speaks MCP over stdio and needs no environment variables, no API key and 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

That prints the tool list and exits — if you see extract_urls, the server works.

Across a folder or a workspace

Extract reads the document you have open. A scan reads many files from disk and gives one report.

  • The whole workspace: run URLs-LE: Extract URLs from Workspace from the command palette.
  • One folder: right-click it in the Explorer and choose Extract URLs from Folder, or run URLs-LE: Extract URLs from Folder and pick one.

A project writes the same URL in many places, so the report is the distinct URLs, the most widely used first, with how often each is written and where:

# URLs-LE workspace report

my-project · 3 file(s) read · 2 distinct URL(s), 5 occurrence(s) in 3 file(s)

URLOccurrencesFiles
https://example.com/docs32
https://api.example.com/v122

https://example.com/docs (3)

  • config.json · 2:12
  • docs/a.md · 1:5, 1:34

https://api.example.com/v1 (2)

  • docs/a.md · 2:6
  • src/b.ts · 1:14

That is with urls-le.showPositions on. It is off by default, and then each line is the file and how many times the URL is in it: docs/a.md (2). The copy on the clipboard follows urls-le.clipboardIncludesPositions, as it does for Extract.

What a scan reads. Files come from disk, so an unsaved edit is not seen. A file over the safety size, or one that is not UTF-8 text, is left unread. It stops at 5,000 files or 10,000 listed occurrences. The report ends with a line for each thing it left out, so a short report is never mistaken for a clean project.

What it skips, and how to change that. Three switches are on by default, and each can be turned off on its own in Settings:

SwitchSkips
scanUseDefaultExcludesDependency folders, build output, tool caches and lockfiles. The full list is below
scanRespectGitignoreWhatever the project's .gitignore files skip
scanSkipBinaryFilesImages, fonts, archives and other files that are not text

Two lists adjust the result without turning a switch off. To skip more, add a pattern to scanExcludes. To read something a switch would skip, add it to scanAlwaysInclude:

{

// Also skip the test fixtures. "urls-le.workspace.scanExcludes": ["/fixtures/"], // Read the vendored code, though the built-in list skips it. "urls-le.workspace.scanAlwaysInclude": ["/vendor/"] }

URLs-LE: Open Settings opens all of these in the Settings editor.

The built-in list

Folders, wherever they appear:

.git, .hg, .svn, node_modules, bower_components, jspm_packages, .pnpm-store, .yarn, vendor, site-packages, Pods, Carthage, dist, build, out, target, _build, _site, dist-newstyle, zig-out, storybook-static, cdk.out, DerivedData, CMakeFiles, .next, .nuxt, .output, .svelte-kit, .angular, .astro, .docusaurus, .vuepress, .expo, .turbo, .parcel-cache, .cache, .sass-cache, .jekyll-cache, .dart_tool, .pub-cache, .gradle, .kotlin, .cxx, .externalNativeBuild, captures, ephemeral, .symlinks, .swiftpm, .build, .bundle, .stack-work, .zig-cache, .godot, elm-stuff, .vercel, .netlify, .serverless, .aws-sam, .terraform, .venv, venv, __pycache__, .tox, .nox, .mypy_cache, .pytest_cache, .ruff_cache, .ipynb_checkpoints, .eggs, coverage, htmlcov, .nyc_output, .vscode-test, .idea, .vs, xcuserdata, *.egg-info

Files, wherever they appear:

*.min.js, *.min.css, *.map, *.snap, *.lock, package-lock.json, pnpm-lock.yaml, npm-shrinkwrap.json, go.sum, *.pbxproj, *.iml, local.properties, output-metadata.json, .flutter-plugins, .flutter-plugins-dependencies, .packages, Generated.xcconfig, flutter_export_environment.sh, GeneratedPluginRegistrant.*, fastlane/report.xml, fastlane/test_output/**, doc/api/**

Not on the list, because they are ordinary folders in many projects: bin, obj, tmp, logs, public, generated. A project that generates those ignores them in git, and the scan reads .gitignore.

The settings that shape a scan are under Settings.

The CLI

The same extraction runs from a terminal or a shell pipeline: a Rust CLI in crate/, sharing one corpus with the extension — crate/fixtures/ — so the two can never read a document differently. Install it from npm with npm install -g url-le (or run it with npx url-le) or from crates.io with cargo install urls-le. Both install the same urls-le command and are held to the same output byte for byte. The npm package is named url-le because urls-le was taken there.

urls-le .                     # every URL in the tree; JSON on stdout when piped

urls-le --dedupe docs/ # one line per distinct URL urls-le mcp # the same extraction over MCP on stdio

the point of the whole thing:

urls-le . | jq -r '.urls[].value' | sort -u | lychee -

Install it from npm (url-le) or from crates.io (urls-le). Both install the same urls-le command.

npm install -g url-le   # or run it once: npx url-le

cargo install urls-le

Exit codes follow grep — 0 URLs found, 1 none found, 2 the question was malformed — so if urls-le src/; then … works and finding nothing is an answer rather than an error.

It has no opinions, deliberately. No link checking, no insecure-scheme flag, no filtering. An http:// URL is wrong in a production config and right in a test fixture; a tool that decides for you is one you configure, then argue with, then mute — and the muting takes the extraction with it. Pipe it to lychee and let that have the opinions.

Supported formats

| Format | Language IDs | Notes | |

Only the beginning is shown; read the rest in the repo

Ask PopNx