Sign In

string-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

string-le-mcp

Extract string values from config files, data files and plain text.

latest
Source
npmnpm
Version
2.3.0
Version published
Weekly downloads
99
-76.26%
Maintainers
1
Weekly downloads
 
Created
Source

string-le-mcp

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

An MCP server that extracts URLs from documentation, configuration and code — the extraction engine behind the String-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 string-le-mcp.

Claude Code

claude mcp add string-le -- npx -y string-le-mcp

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

{
  "mcpServers": {
    "string-le": {
      "command": "npx",
      "args": ["-y", "string-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 extract_strings tool ships in a static Rust binary: cargo install string-le, then string-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 string_le_scan, which walks a tree and reports positions; 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 string-le-mcp
{
  "mcpServers": {
    "string-le": { "command": "string-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 string-le-mcp

If that prints the tool name, the server works.

The tool

extract_strings

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": {
    "strings": [
      { "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/string-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
regex-le-mcpextract_patternsregexes, with a ReDoS verdict
secrets-le-mcpdetect_secretscredentials, masked — never the value
envsync-le-mcpcompare_env_filesdotenv key drift, names only
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

Did you know?

Socket

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.

Install

Related posts