# MCPGex
*MCP server for finding, testing and refining regex patterns*
<div align="center">
<img src="https://github.com/PatzEdi/MCPGex/raw/main/assets/logo.png" alt="mcpgex-high-resolution-logo-transparent" width="500">
</div>
<p align="center">
<img src="https://img.shields.io/badge/License-MIT-brightgreen?style=flat-square"
height="23">
<img src="https://img.shields.io/badge/Creator-PatzEdi-brightgreen?style=flat-square"
height="23">
</p>
<p align = "center">
<img src="https://img.shields.io/pypi/v/MCPGex?style=flat-square&color=%23FFA500"
height="23">
</p>
MCPGex is an MCP server that allows LLMs to test and validate regex patterns against test cases. It provides a systematic way to develop regex patterns by defining or generating expected outcomes and iteratively testing patterns until all requirements are satisfied.
> [!WARNING]
> MCPGex is still in its early stages.
## Index
- [How it works](#how-it-works)
- [Installation](#installation)
- [Usage](#usage)
- [Running the Server](#running-the-server)
- [Configuration](#configuration)
- [Available Tools](#available-tools-click-to-expand)
- [Benefits](#benefits)
- [Requirements](#requirements-installed-automatically-through-pip3)
- [License](#license)
## How it works
1. **Define the goal**: You provide what the goal regex pattern should return. The LLM will generate test cases for you.
2. **Test patterns**: The LLM can test different regex patterns against all defined test cases to see which ones pass or fail.
3. **Iterate**: Based on the results, the LLM can refine the regex pattern until all test cases pass.
4. **Validate**: Once all tests pass, you have a regex pattern that works for your specific use cases.
## Installation
Go ahead and install through pip:
```bash
pip3 install mcpgex
```
## Usage
### Running the Server
If you want to start the MCP server:
```bash
mcpgex
```
### Configuration
You can also add a configuration. For example, for Claude Desktop, you can have:
```json
{
"mcpServers": {
"mcpgex": {
"command": "python3",
"args": ["-m", "mcpgex"]
}
}
}
```
Then, you will be able to use the server in these tools without having to run the python script manually!
<details>
<summary>
### Available Tools (click to expand)
</summary>
The server provides **four** main tools:
#### 1. `add_test_case`
Add a new test case with an input string and expected match.
**Parameters:**
- `input_string` (required): The text to test against
- `expected_matches` (required): The array of substrings that should be extracted/matched
- `description` (optional): Description of what this test case validates
**Example:**
```json
{
"input_string": "Contact me at john@example.com for details",
"expected_matches": ["john@example.com"],
"description": "Basic email extraction"
}
```
#### 2. `test_regex`
Test a regex pattern against all current test cases.
**Parameters:**
- `pattern` (required): The regex pattern to test
- `flags` (optional): Regex flags like 'i' (case-insensitive), 'm' (multiline), 's' (dotall)
**Example:**
```json
{
"pattern": "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}",
"flags": "i"
}
```
#### 3. `get_test_cases`
View all currently defined test cases.
#### 4. `clear_test_cases`
Remove all test cases to start fresh.
</details>
## Benefits
- **Comprehensive testing**: Ensure patterns work across various use cases
- **Iterative improvement**: Easy to test and refine patterns
- **Documentation**: Test cases serve as examples and documentation
- **Confidence**: Know your regex works before deploying it
- **Fully Automated**: Give it instructions, let it do the rest
## Requirements (installed automatically through pip3)
- Python 3.8+
- MCP library (`pip3 install mcp`)
## License
This project is open source under the MIT license. Feel free to use and modify as needed.