MCPGex
MCP server for finding, testing and refining regex patterns
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.
Index
How it works
- Define the goal: You provide what the goal regex pattern should return. The LLM will generate test cases for you.
- Test patterns: The LLM can test different regex patterns against all defined test cases to see which ones pass or fail.
- Iterate: Based on the results, the LLM can refine the regex pattern until all test cases pass.
- Validate: Once all tests pass, you have a regex pattern that works for your specific use cases.
Installation
Go ahead and install through pip:
pip3 install mcpgex
Usage
Running the Server
If you want to start the MCP server:
mcpgex
Configuration
You can also add a configuration. For example, for Claude Desktop, you can have:
{
"mcpServers": {
"mcpgex": {
"command": "python3",
"args": ["-m", "mcpgex"]
}
}
}
Or, for other applications, such as Zed:
"context_servers": {
"mcpgex": {
"command": {
"path": "python3",
"args": ["-m", "mcpgex"]
},
"settings": {}
}
}
Then, you will be able to use the server in these tools without having to run the python script manually!
Available Tools (click to expand)
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 againstexpected_matches(required): The array of substrings that should be extracted/matcheddescription(optional): Description of what this test case validates
Example:
{
"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 testflags(optional): Regex flags like 'i' (case-insensitive), 'm' (multiline), 's' (dotall)
Example:
{
"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.
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.
Metadata
Release files for mcpgex 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcpgex-0.1.4.tar.gz | 120.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcpgex-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 127.6 kB
Release files / mcpgex-0.1.4.tar.gz
| Download URL | mcpgex-0.1.4.tar.gz |
|---|---|
| Size | 120.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5fc1d13f7f9b110df5745dcd23bfd468d44cfcdd1e4ac6213f51c21dda8e584a
|
|
BLAKE2b-256 checksum How to use checksums |
e313edabf832a74154aebe1d718a0904677aa5bfbaab78a43ae3d9603704f809
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / mcpgex-0.1.4-py3-none-any.whl
| Download URL | mcpgex-0.1.4-py3-none-any.whl |
|---|---|
| Size | 7.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
88e063824ba8ad20cca5252079863927e549ad725aae500eb4402dd735076cfa
|
|
BLAKE2b-256 checksum How to use checksums |
34f5b3ce95fff03aa5eddf00e8110582be2c62f129667728bd885d96b100610e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|