mcpField
R
Regex Lab

Regex Lab

ローカル
basitalisandhu.github.io開発ツール12 日前に更新

Regex Lab について

Regex Lab は、JavaScript 正規表現のテストと理解を支援する開発者向け MCP サーバーです。パターンの説明や破滅的バックトラッキングの検査を行い、各処理をタイムアウト付きのワーカースレッドで実行します。

主な機能

  1. 01サンプル文字列でパターンをテスト
  2. 02パターンの構成要素とフラグを説明
  3. 03破滅的バックトラッキングの可能性を検出・検証

活用シーン

  1. 01テスト入力のマッチ結果とキャプチャグループを確認
  2. 02ReDoS の可能性があるパターンを点検

MCP 対応

正規表現のテスト、説明、バックトラッキング検査を MCP ツールとして公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"basitalisandhu-mcp-regex-lab": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/basitalisandhu/mcp-regex-lab:0.3.0"
]
}
}
}
起動コマンドdocker run -i --rm ghcr.io/basitalisandhu/mcp-regex-lab:0.3.0

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/basitalisandhu/mcp-regex-lab:0.3.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

regex-lab MCP サーバー

サンプル文字列に対して JavaScript の正規表現をテストし、パターンを構成要素ごとに説明し、壊滅的なバックトラッキングが起きないかを調べます。実行はすべてワーカースレッドで行われ、タイムアウトを超えるとスレッドが終了するため、問題のあるパターンによってサーバーがハングすることはありません。

dev-mcp-servers の一部です。通信方式は Stdio のみで、サーバーがポートを開くことはありません。

ツール

ツール入力返される内容
test_regexpattern、flags?、samples[](最大 20 000 文字のサンプルを最大 50 個)、replacement?、timeout_ms?(50~10 000、デフォルトは 2000)各サンプルのすべてのマッチと、オフセット、テキスト、番号付きおよび名前付きグループ(オフセット付き)、任意の replace プレビューを返します。タイムアウト前に完了したサンプルの結果も返されます。
explain_regexpattern、flags?リテラル、文字クラス、エスケープ、アンカー、グループ、先読み・後読み、量指定子、選択肢をインデント付きで説明し、キャプチャグループの数とフラグの意味も返します。
check_redospattern、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 を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。