Strings-LE について
Strings-LEは、設定ファイル、データファイル、ソースコードから文字列値を抽出し、エディターに結果を表示します。CLIでファイルツリーも処理でき、複数の構造化形式やプログラミング言語に対応し、大きなCSVでは列選択とストリーミングを利用できます。
主な機能
- 01JSON、YAML、TOMLなどから値を抽出
- 02複数のプログラミング言語を解析
- 03CSVの列選択と大容量ファイルの処理
- 04重複排除、並べ替え、位置表示
- 05エディター、CLI、MCPに対応
活用シーン
- 01ロケールファイルから翻訳対象を整理
- 02設定ファイル内の文字列値を確認
- 03大きなCSVから指定列を抽出
- 04コードベース全体のユーザー向け文言を収集
MCP 対応
MCPサーバーはstdio経由でextract_stringsを提供し、入力内容を解析して文書内の順序で文字列値を返します。形式、重複排除、複数行処理、結果数を指定でき、ファイル読み取りやネットワーク接続は行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| dedupe | boolean | いいえ | 重複する値をまとめ、最初に出現した値のみを残します。 |
| format | enum | いいえ | ドキュメント形式。省略または認識できない形式の場合、引用符で囲まれた文字列の抽出にフォールバックします。json | jsonc | yaml | csv | tsv | toml | ini | env | python | rust | go | shellscript | php | ruby | perl | csharp | javascript | typescript | fallback |
| content | string | はい | スキャンするドキュメントのテキスト。 |
| filename | string | いいえ | `format` が未指定の場合に形式を推定するためのファイル名。例:"config.toml"。 |
| multiline | boolean | いいえ | ここで解析できない形式では、引用符で囲まれた文字列が複数行にまたがることを許可し、複数行のテンプレートリテラルやメッセージも読み取ります。言語仕様上、文字列が複数行にまたがる言語では、常にそのように読み取ります。 |
| maxResults | integer | いいえ | 返される文字列の上限(デフォルトは 500)。meta.truncated は、破棄された文字列があるかどうかを示します。 |
詳細
Strings-LE:手間いらずの文字列抽出
キーを1回押すだけで、現在のファイルからすべての文字列値を抽出
JSON/JSONC、YAML、CSV/TSV、TOML、INI、環境ファイル、および10種類のソース言語に対応
便利でしたか? スターや評価があると、ほかの開発者にも見つけてもらいやすくなります — ★ GitHub · ★ Open VSX · ★ Marketplace
できること
ファイルを開いて String-LE: Extract Strings を実行すると、ドキュメント内のすべての文字列値が新しいエディターに表示されます。そこから重複を除去して並べ替えられます。VS Code、および Cursor や VSCodium などの VS Code ベースのエディター(Open VSX からインストール可能)で動作します。
- i18n の準備 — ロケールファイル(JSON/YAML)をフラット化して、翻訳可能な値の一覧を作成します
- 設定の確認 — TOML/INI/.env ファイル内のすべての文字列値をひと目で確認できます
- CSV の抽出 — 1列、複数列、またはすべての列を抽出し、非常に大きなファイルもストリーミング処理します
インストール
| 場所 | 使用できる機能 | インストール |
|---|---|---|
| VS Code | エディター内でキーを押すだけで同じ抽出を実行 | Marketplace |
| Cursor、VSCodium、Windsurf | 同じ拡張機能 | Open VSX |
| ターミナルまたは CI のステップ | 終了コードに対応し、ツリー全体に対して同じ処理を実行 | npx strings-le · npm または cargo install string-le · crates.io |
| Node 経由のあらゆる MCP エージェント | stdio 経由の extract_strings | npx string-le-mcp · npm |
AI エージェントから使用する
同じエンジンがMCPサーバーとしても動作するため、コマンドを実行する代わりに、エージェントから直接呼び出せます。
| エディター | 方法 |
|---|---|
| VS Code 1.101+ | インストール不要です — 拡張機能がエージェントモードで extract_strings を登録します |
| Claude Code | claude mcp add string-le -- npx -y string-le-mcp |
| Cursor、Windsurf、その他のもの | npx string-le-mcp を指定します |
extract_strings(content, format?, filename?, dedupe?, multiline?, maxResults?)
値をドキュメント内の順序で返します。デフォルトでは meta.truncated が示すとおり最大 500 件です。フォーマットの指定は任意です。認識できないフォーマットは引用符付き文字列として処理されます。
サーバーはコンテンツを受け取ってデータを返します。ファイルの読み取りや、独自のネットワークリクエストは行いません。npm では string-le-mcp として、MCP レジストリでは io.github.nolindnaidoo/string-le として公開されています。
手動で設定する — MCP 設定ファイルを使うすべてのホスト
ほとんどのホストは JSON 設定を読み込みます。次のエントリを追加してください。
{
"mcpServers": {
"string-le": {
"command": "npx",
"args": ["-y", "string-le-mcp"]
}
}
}
初回実行時に -y を付けると、インストールの確認を省略できます。リリースを追跡せず、バージョンを固定したい場合は [email protected] を指定してください。
起動のたびに npx を実行したくない場合は、一度インストールして、代わりにバイナリを指定してください。
npm install -g string-le-mcp
{
"mcpServers": {
"string-le": { "command": "string-le-mcp" }
}
}
MCP を stdio 経由で使用します。環境変数、API キー、独自の設定は必要ありません。ほかのものに接続する前に確認するには、次を実行してください。
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npx -y string-le-mcp
ツールの一覧を出力して終了します。extract_strings が表示されれば、サーバーは動作しています。
サポート対象のフォーマット
| フォーマット | 言語 ID | 抽出される内容 |
|---|---|---|
| JSON | json | 文字列値(解析して抽出。キー、数値、ブール値は除外) |
| YAML | yaml | 引用符なしのプレーンスカラー、ブロック/折り返しスカラー、複数ドキュメントファイルを含む文字列値 |
| CSV | csv | セル。ヘッダー処理、列の選択、大きなファイル向けのストリーミングモードに対応 |
| TOML | toml | 複数行文字列を含む文字列値。型付き値である日付と数値は除外 |
| INI | ini | 値(INI は型を持たないため、数値のように見える値も文字列として抽出) |
| Environment | dotenv、env | 値(export 接頭辞、引用符、行内コメントを処理) |
| Python | python | 三重引用符の docstring を 1 つの文字列として抽出。f-string、r/b/u 接頭辞に対応 |
| Rust | rust | Raw 文字列 r"…"、r#"…"#、r##"…"## を内部の引用符も含めて 1 つの文字列として抽出。バイト文字列にも対応 |
| Go | go | バッククォートの Raw 文字列を、複数行にわたる場合も 1 つの文字列として抽出 |
| Shell | shellscript | Heredoc(<<EOF、<<'EOF'、<<-EOF)を 1 つの文字列として抽出 |
| PHP、Ruby、Perl | php、ruby、perl | Heredoc と nowdoc(<<<EOT、<<<'NOW'、<<~EOS)を 1 つの文字列として抽出 |
| C# | csharp | "" を 1 つの引用符として扱う逐語的文字列 @"…"、補間文字列 $"…" |
| JavaScript、TypeScript | javascript、typescript(react ID も含む) | テンプレートリテラルを補間とネストも含めて1 つの文字列として抽出 |
| Markdown、その他 | markdown | "double"、'single'、`backtick` のように引用符で囲まれた 1 行の文字列をフォールバック検索 |
値の前後の空白は削除され、空の値は除外されます。キーは抽出されません。上記のすべての抽出器で共通のルールです。フォールバック検索では、引用符のない文字列は検出できません。そのため、解析可能なフォーマットや各プログラミング言語には専用のリーダーが用意されています。string-le.fallback.multiline が有効な場合、複数行にまたがる引用符付きの文字列も読み取ります(MCP ツールの multiline)。string-le.showParseErrors が有効でない限り、解析エラーは表示されません。
フォルダーまたはワークスペース全体を対象にする
Extract は、開いているドキュメントを読み取ります。スキャンでは、ディスク上の多数のファイルを読み取り、1 つのレポートを作成します。
- ワークスペース全体:コマンドパレットから
String-LE: Extract Strings from Workspaceを実行します。 - 1 つのフォルダー:エクスプローラーでフォルダーを右クリックして
Extract Strings from Folderを選ぶか、String-LE: Extract Strings from Folderを実行してフォルダーを選択します。
プロジェクトでは同じ文字列がさまざまな場所に記述されているため、レポートには重複を除いた文字列が、最も多く使われているものから順に表示されます。それぞれの文字列が記述された回数と場所も表示されます。各文字列は表に表示されます。ほとんどの文字列は 1 回だけ記述されており、その場合は該当する行に表示されます。複数回記述された文字列には、そのすべての場所を示すセクションが下に表示されます。
# String-LE workspace report
`my-project` · 4 file(s) read · 3 distinct string(s), 7 occurrence(s) in 3 file(s)
| String | Occurrences | Files | Where |
|---|---|---|---|
| `Save changes` | 4 | 3 | |
| `Cancel` | 2 | 2 | |
| `Press Enter` | 1 | 1 | `src/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
位置の表示は string-le.showPositions に従います。オフにすると、各行にはファイル名と、そのファイル内での文字列の出現回数が表示されます:src/a.ts (2)。クリップボードにコピーされる内容は、Extract と同じく string-le.clipboardIncludesPositions に従います。
フォーマットリーダーで解析できなかったファイルは、理由とともに一覧に表示され、見落とされることはありません。120 文字を超える文字列、または改行を含む文字列は、途中で切り詰められた 1 行として表示されます。比較は、2 つの文字列全体を対象に行われます。
スキャンで読み取られるもの。 ファイルはディスクから読み取られるため、保存されていない変更は反映されません。安全上のサイズ制限を超えるファイルや、UTF-8 テキストではないファイルは読み取られません。スキャンは 5,000 ファイルまたは 10,000 件の出現箇所に達すると停止します。レポートの末尾には、除外されたものごとに 1 行が表示されるため、短いレポートをプロジェクトに問題がない証拠だと誤解することはありません。
スキップされるものと変更方法。 既定で有効になっているスイッチは 3 つあり、それぞれ Settings で個別に無効にできます。
| スイッチ | スキップされるもの |
|---|---|
scanUseDefaultExcludes | 依存関係フォルダー、ビルド出力、ツールのキャッシュ、ロックファイル。全リストは下記を参照してください |
scanRespectGitignore | プロジェクトの .gitignore ファイルでスキップされるすべてのもの |
scanSkipBinaryFiles | 画像、フォント、アーカイブなどのテキストではないファイル |
スイッチを無効にせずに結果を調整するリストが 2 つあります。さらにスキップするには、scanExcludes にパターンを追加します。スイッチでスキップされるものを読み取るには、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 を実行すると、これらすべての項目が Settings エディターで開きます。
組み込みリスト
場所を問わず対象となるフォルダー:
.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
場所を問わず対象となるファイル:
*.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/**
多くのプロジェクトで通常のフォルダーとして使われているため、リストに含まれていないもの:bin、obj、tmp、logs、public、generated。これらのフォルダーを生成するプロジェクトでは、git で無視するように設定すると、スキャンでも .gitignore が読み込まれます。
スキャンに影響する設定は、Settings にあります。
CLI
同じ抽出処理をターミナルまたはシェルパイプラインから実行できます。Rust 製の CLI は crate/ にあり、拡張機能と同じコーパス(crate/fixtures/)を共有するため、同じドキュメントを異なる方法で読み取ることはありません。npm から npm install -g strings-le でインストールするか(または npx strings-le で実行する)、crates.io から cargo install string-le でインストールしてください。どちらも同じコマンドをインストールし、壊れたドキュメントを拒否するときにパーサーが使う語句を除き、出力がバイト単位で一致するように保たれています。
string-le . # every string in the tree; JSON on stdout when piped
string-le --values src/ # just the values, one per line
string-le --dedupe --values . # each distinct string once
string-le mcp # the same extraction over MCP on stdio
# the point of the whole thing:
string-le --values --dedupe src/ | sort > after.txt
diff before.txt after.txt # what changed in the copy this release
npm (strings-le) または crates.io (string-le) からインストールできます。どちらも同じ string-le コマンドをインストールします。
npm install -g strings-le # or run it once: npx strings-le
cargo install string-le
読む人は書いた人とは限りません。 拡張機能は、現在開いているバッファーを対象に回答します。リリース前には、QA リード、コンプライアンスレビュー担当者、ローカライズ担当者などが、ユーザーに表示されるすべての文字列を読む必要があります。しかし、こうした人たちはエディターを開いておらず、チェックアウトを渡せない人もいます。CLI を使えば、リポジトリ全体を 1 つのファイルにまとめて読めます。
主役となるのはソースファイルです。 ユーザー向けの文言が含まれる .ts や .py ファイルは、それぞれの言語に固有のリテラル構文で読み取られます。認識されなかったものは拒否されず、引用符で囲まれた文字列の抽出に回されます。
終了コードは grep と同じです — 文字列が見つかった場合は 0、見つからなかった場合は 1、質問の形式が不正な場合は 2 です。何も見つからないことはエラーではなく、ひとつの回答です。
コマンド
| コマンド | 説明 |
|---|---|
String-LE: Extract Strings | アクティブなドキュメントからすべての文字列値を抽出します |
String-LE: Extract Strings from Workspace | ワークスペース内のすべてのファイルから重複を除いた文字列を抽出し、それぞれの場所を示します |
String-LE: Extract Strings from Folder | 1 つのフォルダーに対して同じ処理を行います。エクスプローラーでフォルダーを選択した場合にも利用できます |
String-LE: Deduplicate Strings | アクティブなドキュメントから重複行を削除します |
String-LE: Sort Strings | 行をアルファベット順または長さ順に並べ替えます |
String-LE: Toggle CSV Streaming | 大きな CSV ファイルのストリーミングを有効または無効にします |
String-LE: Open Settings | String-LE の設定を開きます |
String-LE: Help & Troubleshooting | 組み込みドキュメント |
既定では、どのコマンドにもキーは割り当てられていません。エディターの キーボードショートカット で任意のコマンドに割り当ててください。
設定
| 設定 | デフォルト | 説明 |
|---|---|---|
string-le.openResultsSideBySide | true | 結果を現在のエディターの横に開きます |
string-le.postProcess.openInNewFile | true | 後処理コマンドは、ファイルを直接編集せず、新しいファイルに書き込みます |
string-le.showPositions | false | 各文字列の行と列を表示します |
string-le.copyToClipboardEnabled | false | 結果をクリップボードにもコピーします(CSV 出力では無効です) |
string-le.clipboardIncludesPositions | false | コピーに行と列も含めます |
string-le.dedupeEnabled | false | 抽出後に結果を自動的に重複排除します |
string-le.sortEnabled | false | 抽出後に結果を自動的に並べ替えます |
string-le.sortMode | off | alpha-asc、alpha-desc、length-asc、length-desc |
string-le.csv.streamingEnabled | false | CSV の結果をエディターに逐次出力します |
string-le.showParseErrors | false | 解析エラーを通知として表示します |
string-le.notificationsLevel | silent | all = すべての通知、important = 警告とエラー、silent = エラーのみ |
string-le.workspace.scanPatterns | ["**/*"] | フォルダーまたはワークスペースのスキャンで読み込むファイル |
string-le.workspace.scanUseDefaultExcludes | true | 依存関係フォルダー、ビルド出力、キャッシュ、ロックファイルをスキップします |
string-le.workspace.scanRespectGitignore | true | プロジェクトの .gitignore ファイルで除外されるものをスキップします |
string-le.workspace.scanSkipBinaryFiles | true | 画像、フォント、アーカイブなどのテキスト以外のファイルをスキップします |
string-le.workspace.scanExcludes | [] | グロブパターンで指定する、追加でスキップするファイル |
string-le.workspace.scanAlwaysInclude | [] | 上記3つの設定でスキップされる場合でも読み込むファイル |
string-le.workspace.scanMaxFiles | 5000 | 1回のスキャンで読み込むファイルの最大数 |
string-le.workspace.scanMaxResults | 10000 | 読み込みを停止するまでに一覧表示する出現箇所の最大数 |
string-le.safety.enabled | true | 非常に大きなファイルや出力に対するガードレールを有効にします |
string-le.safety.fileSizeWarnBytes | 1000000 | このファイルサイズを超える場合、抽出前に警告します |
string-le.safety.largeOutputLinesThreshold | 50000 | 結果数がこの値を超えると、開く/コピー/キャンセルを選択できます |
string-le.safety.manyDocumentsThreshold | 8 | この数の結果ドキュメントを開く前に確認します(CSV の複数列) |
string-le.statusBar.enabled | true | ステータスバー項目を表示します |
string-le.telemetryEnabled | false | ローカルのみのイベントログ(プライバシーを参照) |
言語
英語のほかに12言語に対応しています:
ドイツ語 · スペイン語 · フランス語 · インドネシア語 · イタリア語 · 日本語 · 韓国語 · ポルトガル語(ブラジル) · ロシア語 · ウクライナ語 · ベトナム語 · 中国語(簡体字)
両方の表示に対応しています。マニフェスト(コマンドタイトル、設定名、説明)と、 拡張機能の実行中に表示されるすべての内容(通知、ステータスバー、 クイックピック、プロンプト)です。拡張機能は VS Code の表示言語に従うため、 エディターで設定済みの言語がそのまま反映され、拡張機能独自の設定はありません。
プライバシーとセキュリティ
- ネットワークアクセスはありません。 拡張機能がデータを外部に送信することはありません。
telemetryEnabled設定は、確認可能なローカルの出力チャネル(String-LE)にイベントを書き込むだけです。 - MCP サーバーも同じ方針です。 コンテンツを引数として受け取り、データを返します。ファイルシステムへのアクセス、ネットワーク呼び出し、テレメトリーはありません。エージェントはすでにファイル読み取りツールを備えているため、サーバー内に同等の機能を重複して実装しても、機能は増えず、パストラバーサルの攻撃対象領域が広がるだけです。サーバーがこれらにアクセスし得るものをインポートした場合、
check:mcp-bundleによってビルドが失敗します。 - エラー通知では、ホームディレクトリと認証情報に似た形式の文字列が伏せられます。
- 評価を求めるプロンプトは、最大2回だけ表示されます。 3回目の正常な使用時に、評価していただけるかどうかを拡張機能が一度尋ねます。後でを選ぶか、表示を閉じた場合は、20回目にもう一度だけ尋ねます。今後表示しないを選ぶと、以後表示されません。
notificationsLevelを自分でimportantまたはsilentに設定すると、この機能は無効になります。回数は VS Code の拡張機能ストレージに保存され、外部に送信されることはありません。評価するを選ぶと、インストール元の掲載ページ(VS Code Marketplace または Open VSX)がブラウザーで開きます。
ドキュメント
| 内容 | 場所 |
|---|---|
| ツールが出力してよい内容 — 対象範囲、出力規約、拒否、対象外事項 | crate/SPEC.md |
| 拡張機能の構築方法と仕組み — アーキテクチャ、不変条件、ツールチェーン、リリース | AGENTS.md |
| CLI の構築方法と仕組み | crate/AGENTS.md |
| 変更内容 | CHANGELOG.md · crate/CHANGELOG.md |
| ツールのページと、ほかの15種類 | letools.dev/tools/string-le |
パフォーマンス
| 入力 | サイズ | 検出数 | 時間 | 速度 | スキャン速度 |
|---|---|---|---|---|---|
| JSON ロケールファイル | 1.77 MB | 40,000 | 9.53 ms | 4,198,116/sec | 185.9 MB/s |
| YAML ロケールファイル | 1.01 MB | 30,000 | 13.33 ms | 2,250,169/sec | 75.7 MB/s |
| CSV 文字列 | 1.35 MB | 80,002 | 28.29 ms | 2,827,438/sec | 47.8 MB/s |
Apple M5 Pro、24 GB RAM、Node 24.3.0 で、ウォームアップ後に7回実行した中央値です。入力はリポジトリに含まれているファイルではなく、scripts/benchmark.ts によって生成されるため、上記のサイズは測定時の値と完全に一致します。bun run benchmark で再現できます。
これらの値はマシン固有であり、CI では保証されません。ビルドの合否をベンチマークで判定しても、ランナーの負荷状況がわかるだけです。
テスト
| 指標 | カバレッジ |
|---|---|
| ステートメント | 81.57% |
| 分岐 | 72.80% |
| 関数 | 89.50% |
| 行 | 83.13% |
43ファイルにわたる525のテストケースに加え、実際の VS Code 拡張機能ホストで実行する統合テストスイートと、ビルド済みの .vsix をクリーンなプロファイルにインストールするエンドツーエンドテストがあります。
実際の実行結果である coverage/coverage-summary.json と coverage/test-results.json から scripts/coverage-readme.js が生成します。このセクションにずれがあると CI は失敗します。bun run test:coverage で再現でき、ケース数は vitest が出力する値です。
LE ファミリーのその他のツール
あらゆるモデルが直面する作業に対応する、単機能ツールが16個あります。それぞれに Rust CLI と MCP サーバーが付属します。詳細はこちら:letools.dev
取り出す
- String-LE — コードベース内のすべての文字列を抽出し、人が読めるようにします
- Numbers-LE — コードベース内のすべてのハードコードされた数値を抽出し、人が確認できるようにします
- Units-LE — 単位付きの数量をすべて抽出して正規化し、曖昧なものは名前を示して対象外にします
- Dates-LE — すべての日付とタイムスタンプ、およびそれぞれが解決される正確な時点を抽出します
- IDs-LE — UUID、ULID、NanoID、ObjectId、Snowflakeをすべて抽出し、内部に含まれる時刻をデコードします
- IPs-LE — IPアドレス、CIDRブロック、MACアドレスをすべて抽出し、正規化してスコープ別に分類します
- URLs-LE — コードベース内のすべてのURLを、プロトコルと正確な位置情報とともに抽出します
- Paths-LE — コードベース内のすべてのファイルパスを抽出し、現在も何かを指しているかどうかを示します
- Colors-LE — コードベース内のすべての色を抽出し、パレットにない色を示します
チェックする
- Regex-LE — コードベース内のすべての正規表現を検出し、壊滅的なバックトラッキングを引き起こす可能性があるものを報告します
- Versions-LE — リポジトリ内のマニフェスト間で、同じ依存関係のバージョン制約が異なる箇所を検出します
- i18n-LE — プロジェクトで使用している i18n ライブラリを特定し、そのライブラリのルールに基づいてカタログを監査します
- Scrape-LE — スクレイパーを書く前にページをスクレイピングできるか確認し、判定できない場合はその旨を示します
保護する
- Secrets-LE — コードベース内のハードコードされた認証情報を検出し、レポートに表示することはありません
- EnvSync-LE — ディレクトリツリー内の dotenv ファイルを比較し、どのファイルにどのキーがないかを示します
- Unicode-LE — 意味を隠す Unicode を検出します。双方向制御文字、不可視文字、ホモグリフ、混在スクリプトが対象です
それぞれが独立しています。共有クレートも、公開されたコアもありません。2つのツールが同じ答えにたどり着くとすれば、それはその答えが2度正しかったからです。
お問い合わせ — nolindnaidoo.com · GitHub · LinkedIn
nolindnaidoo によるその他のプロジェクト
Rust — pixelcoords と pixelactions は一連のループを構成します。pixelcoords が 場所 に答え、pixelactions がそこで 操作 します。それぞれ独自のツールと独自の方針を持ち、LE ファミリーには属しません。
- pixelcoords — 画面を固定し、領域を指定して、ピクセル単位で正確な座標と切り抜きを取得します pixelcoords.dev · crates.io · docs.rs
- pixelactions — 人が検証した座標を受け取り、操作を実行して、反映されたことを確認します pixelactions.dev · crates.io · docs.rs
ライセンス
MIT © nolindnaidoo
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。