regexguard
regexguard-mcp-server
Сервер MCP, который дает любому ИИ-агенту возможность проверить только что сгенерированное регулярное выражение — и что оно на самом деле сопоставляет, и безопасно ли его использовать с недоверенными входными данными — перед его выпуском. Полностью локальный: без API-ключа, без сетевых вызовов, без зависимостей, кроме MCP SDK и Zod.
Зачем
Регулярные выражения — известное место, где легко внести ошибку, которая выглядит нормально в каждом примере, который вы тестируете. Особенно распространены и легко упускаются из виду два типа сбоев:
Оно не соответствует тому, что вы думаете.
explain_regexпревращает шаблон в реальное синтаксическое дерево и описывает его простым английским языком, так что на вопрос «действительно ли это требует хотя бы одной цифры?» можно быстро получить ответ, не полагаясь на собственное чтение вложенных скобок.Это вектор отказа в обслуживании. Регулярное выражение с вложенными квантификаторами (
(a+)+) или неоднозначной альтернативой внутри повторяющейся группы ((a|a)+) может заставить механизм обратного отслеживания работать экспоненциальное время на специально созданном (или даже случайном) несовпадающем входе — это ReDoS, реальный и многократно эксплуатируемый класс уязвимостей, а также вероятный дефект в любом регулярном выражении, которое агент пишет без проверки на состязательные входные данные.check_redos_riskотмечает структурную форму без выполнения шаблона — его безопасно запускать на недоверенных или намеренно вредоносных исходниках регулярных выражений.
Related MCP server: Regex Toolkit MCP Server
Инструменты
explain_regex
Разбирает шаблон в AST и возвращает описание на простом английском языке того, что он сопоставляет.
check_redos_risk
Статически анализирует структуру шаблона на наличие вложенных квантификаторов и неоднозначной альтернативы внутри повторяющейся группы — двух классических причин катастрофического возврата. Возвращает "safe", "high" или "critical" с конкретным результатом для каждой найденной проблемы.
Оба инструмента используют один парсер (src/services/parser.ts): настоящий рекурсивный нисходящий парсер регулярных выражений (литералы, классы символов, сокращенные классы, якоря, захватывающие/незахватывающие/именованные группы, опережающие проверки, альтернативы, квантификаторы, обратные ссылки), а не набор эвристик сопоставления строк с исходным текстом шаблона.
Это эвристическая структурная проверка, а не формальный верификатор — check_redos_risk может сказать, что шаблон имеет классическую форму экспоненциального раздувания; он не может доказать, что шаблон быстр на всех входных данных, и существуют ReDoS-паттерны вне двух форм, которые он сейчас обнаруживает. Относитесь к результату "safe" как к «ничего очевидного не найдено», а не как к гарантии.
Установка и настройка
git clone https://github.com/wedo911/regexguard-mcp-server.git
cd regexguard-mcp-server
npm install
npm run buildДобавьте его в конфигурацию вашего MCP-клиента (например, claude_desktop_config.json или .mcp.json проекта для Claude Code):
{
"mcpServers": {
"regexguard": {
"command": "node",
"args": ["/absolute/path/to/regexguard-mcp-server/dist/index.js"]
}
}
}Запуск тестов
npm run build
node --test tests/parser.test.mjs tests/explain.test.mjs tests/redosCheck.test.mjs44 теста покрывают грамматику парсера, вывод объяснений, а также истинные положительные случаи ((a+)+, (a*)*, (a|a)+, (a|ab)+, шаблоны, вложенные в незахватывающие группы) и истинные отрицательные случаи ((cat|dog)+, реалистичный шаблон имени пользователя, реалистичный шаблон электронной почты, соседние — не вложенные — повторения) для проверки ReDoS, так что уровень ложных срабатываний на обычных шаблонах является проверенным свойством, а не надеждой.
Попробуйте без клиента
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call --tool-name check_redos_risk \
--tool-arg pattern='^(([a-zA-Z0-9])+([\.-]?([a-zA-Z0-9])+)*)$'Лицензия
MIT — см. LICENSE.
Maintenance
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceRegexForge gives AI agents a reliable way to get a regex without asking an LLM to hallucinate one. Pass in labeled examples (strings that should match, strings that shouldn't) plus an optional description; get back the regex, a proof matrix showing it handles every example, and a backtracking-risk audit flagging catastrophic-backtracking patterns. Pure symbolic synthesis over a template bank with
- FlicenseAqualityCmaintenanceEnables LLM agents to extract, validate, and mask personally identifiable information using deterministic regular expressions, reducing token usage and hallucination risks.373
- AlicenseAqualityAmaintenanceEnables AI agents to parse, validate, explain, and preview cron expressions, surfacing common silent bugs before deployment.4108MIT
- AlicenseAqualityCmaintenanceProvides tools to test regex patterns for correctness, performance (ReDoS), and memory usage, and suggests safe rewrites. Enables LLMs to iterate on regex generation with verifiable feedback.9MIT
Related MCP Connectors
The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...
Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.
Pay-per-call cybersecurity for AI agents: vuln scans, threat intel, compliance, code security.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wedo911/regexguard-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server