Regex Lab について
Regex Lab は、JavaScript 正規表現のテストと理解を支援する開発者向け MCP サーバーです。パターンの説明や破滅的バックトラッキングの検査を行い、各処理をタイムアウト付きのワーカースレッドで実行します。
主な機能
- 01サンプル文字列でパターンをテスト
- 02パターンの構成要素とフラグを説明
- 03破滅的バックトラッキングの可能性を検出・検証
活用シーン
- 01テスト入力のマッチ結果とキャプチャグループを確認
- 02ReDoS の可能性があるパターンを点検
MCP 対応
正規表現のテスト、説明、バックトラッキング検査を MCP ツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/basitalisandhu/mcp-regex-lab:0.3.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/basitalisandhu/mcp-regex-lab:0.3.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
regex-lab MCP サーバー
サンプル文字列に対して JavaScript の正規表現をテストし、パターンを構成要素ごとに説明し、壊滅的なバックトラッキングが起きないかを調べます。実行はすべてワーカースレッドで行われ、タイムアウトを超えるとスレッドが終了するため、問題のあるパターンによってサーバーがハングすることはありません。
dev-mcp-servers の一部です。通信方式は Stdio のみで、サーバーがポートを開くことはありません。
ツール
| ツール | 入力 | 返される内容 |
|---|---|---|
test_regex | pattern、flags?、samples[](最大 20 000 文字のサンプルを最大 50 個)、replacement?、timeout_ms?(50~10 000、デフォルトは 2000) | 各サンプルのすべてのマッチと、オフセット、テキスト、番号付きおよび名前付きグループ(オフセット付き)、任意の replace プレビューを返します。タイムアウト前に完了したサンプルの結果も返されます。 |
explain_regex | pattern、flags? | リテラル、文字クラス、エスケープ、アンカー、グループ、先読み・後読み、量指定子、選択肢をインデント付きで説明し、キャプチャグループの数とフラグの意味も返します。 |
check_redos | pattern、flags?、probe?(デフォルトは true)、timeout_ms? | 静的解析の検出結果(入れ子になった無制限の繰り返し、繰り返しの中で重複する選択肢、隣接する重複した繰り返し)と、それぞれのプローブ文字を返します。その後、長さを増やした細工済みの入力に対して時間を計測して実行し、パターンの安全性を確認または否定します。 |
インストール
Claude Code:
claude mcp add regex-lab -- docker run --rm -i ghcr.io/basitalisandhu/mcp-regex-lab:0.2.2
すべてのプロジェクトで使えるようにするには、-s user を追加します。.mcp.json を読み取るクライアント(Claude Code、Claude Desktop、Cursor):
{
"mcpServers": {
"regex-lab": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/basitalisandhu/mcp-regex-lab:0.2.2"]
}
}
}
バージョンを上記のように固定すると、気付かないうちに更新によってエディターで実行される内容が変わることを防げます。このパッケージはまだ npmjs.com に公開されていないため、npx は使えません。GitHub Packages npm についてはリポジトリの README を参照してください。チェックアウトしたリポジトリでは、ルートで npm install && npm run build を実行した後、"command": "node", "args": ["<path>/packages/regex-lab/dist/index.js"] を使用します。
影響するもの
- ネットワーク:なし。
- ローカルファイル:なし。
- テレメトリー:なし。
注意事項
- 構文は V8(Node.js)に準拠しています。PCRE、RE2、Python とは、強欲でない量指定子や後読みなどで違いがあります。
- マッチング時には
gフラグとdフラグが自動的に追加されます。置換プレビューでは指定したフラグが使われます。 - 検出結果がなく、計測時間が一定であっても、パターンが安全であることの証明にはなりません。あくまで根拠の一つです。
ビルドとテスト
npm install # at the repository root
npm run build -w @basitalisandhu/mcp-regex-lab
npm test -w @basitalisandhu/mcp-regex-lab
テストでは node:test と SDK のインメモリトランスポートを使用し、ネットワークには接続しません。
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。