关于 Regex Lab
Regex Lab 是供开发者测试和理解 JavaScript 正则表达式的 MCP 服务。它可解释模式并检查灾难性回溯,每次执行都在受超时保护的工作线程中运行。
主要功能
- 01用样例字符串测试正则模式
- 02解释模式结构和标志
- 03检测并探测潜在灾难性回溯
适用场景
- 01检查测试输入的匹配结果和捕获组
- 02评估模式是否可能遭受 ReDoS
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[](最多 50 个,每个不超过 20 000 个字符)、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。从检出目录开始,在仓库根目录运行 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。