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

Strings-LE

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

Install

Overview

Description from the maker (original English)

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

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: Other

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": {
    "string-le": {
      "command": "npx",
      "args": [
        "-y",
        "string-le-mcp"
      ]
    }
  }
}

Run this in your terminal

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

Open in Cursor

Or copy the settings yourself

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

{
  "mcpServers": {
    "string-le": {
      "command": "npx",
      "args": [
        "-y",
        "string-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": {
    "string-le": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "string-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 7, 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 Otheri

  • More stars than 0% of the other 32558 servers in this category
  • Published to the registry more recently than 61% of the other 32558 servers in this category
  • Basic checks equal to or better than 100% of the other 32558 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 Strings-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.5.1) reached the registry 24 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: Spec Driven Development, Remote Desktop Commander, FactLot

Alternatives

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

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

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated yesterday
Install

FactLot

by 9mp96ygnbk-alt

Cited CRE facts and deterministic calculators for agents: rent, CAM, debt sizing, IRR, parcel IDs.

Computer or cloudUpdated today
Install

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.

Strings-LE: Zero Hassle String Extraction

Pull every string value out of the current file in one keystroke

JSON/JSONC, YAML, CSV/TSV, TOML, INI, Environment files, and ten source languages


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

★ GitHub ·

★ Open VSX ·

★ Marketplace

What it does

Open a file, run String-LE: Extract Strings, and every string value 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).

  • i18n prep — flatten locale files (JSON/YAML) into a clean list of translatable values
  • Config review — see every string value in a TOML/INI/.env file at a glance
  • CSV mining — pull one column, several, or all of them; stream very large files

Install

WhereWhat you getInstall
VS CodeThe same 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 strings-le · npm or cargo install string-le · crates.io
Any MCP agent, via Nodeextract_strings over stdionpx string-le-mcp · npm

Use it from an AI agent

The same 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_strings with agent mode
Claude Codeclaude mcp add string-le -- npx -y string-le-mcp
Cursor, Windsurf, anything elsepoint it at npx string-le-mcp
extract_strings(content, format?, filename?, dedupe?, multiline?, maxResults?)

Returns the values in document order, capped at 500 by default with meta.truncated. A format is optional — any unrecognised format falls back to quoted strings.

The server takes content and returns data — it reads no files and makes no network requests of its own. Published as string-le-mcp on npm and as io.github.nolindnaidoo/string-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": { "string-le": { "command": "npx", "args": ["-y", "string-le-mcp"] } } }

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

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

npm install -g string-le-mcp
{

"mcpServers": { "string-le": { "command": "string-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 string-le-mcp

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

Supported formats

FormatLanguage IDsWhat gets extracted
JSONjsonString values (parsed; keys, numbers, and booleans excluded)
YAMLyamlString values including unquoted plain scalars, block/folded scalars, and multi-document files
CSVcsvCells, with optional header handling, column selection, and a streaming mode for large files
TOMLtomlString values including multiline strings; dates and numbers are excluded as typed values
INIiniValues (INI is untyped, so numeric-looking values are extracted as strings)
Environmentdotenv, envValues (export prefixes, quotes, and inline comments handled)
PythonpythonTriple-quoted docstrings as one string, f-strings, r/b/u prefixes
RustrustRaw strings r"…", r#"…"#, r##"…"## as one string with their inner quotes; byte strings
GogoBacktick raw strings as one string, across lines
ShellshellscriptHeredocs (<<EOF, <<'EOF', <<-EOF) as one string
PHP, Ruby, Perlphp, ruby, perlHeredocs and nowdocs (<<<EOT, <<<'NOW', <<~EOS) as one string
C#csharpVerbatim @"…" where "" is one quote; interpolated $"…"
JavaScript, TypeScriptjavascript, typescript (+ the react ids)Template literals as one string, interpolation and nesting included
Markdown, anything elsemarkdownFallback scan for "double", 'single', or `backtick` quoted strings on a single line

Values are trimmed; empty values are dropped; keys are never extracted — one rule, shared by every extractor above. The fallback scan cannot see unquoted strings, which is why the parsed formats and the source languages get real readers; it reads a quoted run across lines when string-le.fallback.multiline is on (the MCP tool's multiline). Parse errors are silent unless string-le.showParseErrors is on.

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 String-LE: Extract Strings from Workspace from the command palette.
  • One folder: right-click it in the Explorer and choose Extract Strings from Folder, or run String-LE: Extract Strings from Folder and pick one.

A project writes the same string in many places, so the report is the distinct strings, the most widely used first, with how often each is written and where. Every string is in the table. Most are written once, and such a one is placed in its row. A repeated one gets a section below that lists each place:

# String-LE workspace report

my-project · 4 file(s) read · 3 distinct string(s), 7 occurrence(s) in 3 file(s)

StringOccurrencesFilesWhere
Save changes43
Cancel22
Press Enter11src/b.py · 2:8

Save changes (4)

  • i18n/en.json · 2:11
  • src/a.ts · 1:11, 3:11
  • src/b.py · 1:9

Cancel (2)

  • i18n/en.json · 3:13
  • src/a.ts · 2:11

Could not be read (1)

  • bad.json: Invalid JSON: Expected value after colon in object property on line 1 column 6

Positions follow string-le.showPositions. With it off, each line is the file and how many times the string is in it: src/a.ts (2). The copy on the clipboard follows string-le.clipboardIncludesPositions, as it does for Extract.

A file its format reader could not parse is listed with the reason, never passed over. A string longer than 120 characters, or one with a line break, is shown as one cut line. Two strings are still compared whole.

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. "string-le.workspace.scanExcludes": ["/fixtures/"], // Read the vendored code, though the built-in list skips it. "string-le.workspace.scanAlwaysInclude": ["/vendor/"] }

String-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 fol

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

Ask PopNx