firegex-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@firegex-mcpshow me all nfregex services"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
firegex-mcp
MCP server that exposes Firegex — a CTF regex/proxy firewall — to LLM tooling like Claude Desktop or Claude Code.
Features
49 tools across system, nfregex (kernel-side PCRE2 filter), nfproxy (Python inline proxy), firewall (nftables rules), and porthijack (port redirection).
Auto-managed JWT lifecycle: log in on first use, transparently re-login on 401 / secret rotation, single
asyncio.Lockto avoid login storms.Plain-text regex on the tool boundary; base64 is handled inside the client.
Two ways to push nfproxy Python filters: inline
code: stror localpath: str(≤ 1 MiB).Pure async
httpxclient + pydantic v2 DTOs.stdio transport — drop into Claude Desktop or Claude Code as a subprocess.
Install
uvx firegex-mcp # ephemeral, recommended
# or
pip install firegex-mcpConfigure
All settings are env vars with the FIREGEX_MCP_ prefix:
Env var | Default | Description |
|
| Firegex base URL |
| (required) | Used at |
|
| HTTP request timeout |
|
|
|
See .env.example for a starter template.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %AppData%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"firegex": {
"command": "uvx",
"args": ["firegex-mcp"],
"env": {
"FIREGEX_MCP_BASE_URL": "http://localhost:4444",
"FIREGEX_MCP_PASSWORD": "..."
}
}
}
}Restart Claude Desktop fully (Cmd+Q / tray → Quit), then look for the connector under the + menu.
Claude Code
claude mcp add firegex uvx firegex-mcp --env FIREGEX_MCP_PASSWORD=...Tools
Grouped by Firegex module. See the design spec for the full catalogue.
system (6):
get_firegex_status,set_password,change_password,list_interfaces,reset_firegex,login_probe.nfregex (15): services CRUD + regex CRUD/toggle + Prometheus metrics.
nfproxy (14): services CRUD + pyfilter toggle +
get_pyfilter_code,set_pyfilter_code,set_pyfilter_code_from_file.firewall (6):
get_firewall_settings,set_firewall_settings,enable_firewall,disable_firewall,list_firewall_rules,replace_firewall_rules.porthijack (8): services CRUD +
rename_phj_service+change_phj_destination.
Development
git clone https://github.com/umbra2728/firegex-mcp
cd firegex-mcp
uv sync --dev
uv run pytest
uv run ruff check src tests
uv run mypy srcManual smoke test against a real Firegex instance:
# in the firegex repo
python3 run.py start --prebuilt
# back here
FIREGEX_MCP_PASSWORD=test uv run mcp dev src/firegex_mcp/server.pyThis opens the MCP Inspector in your browser; you can call every tool by hand.
Releasing
This package ships to PyPI via Trusted Publishing. The workflow runs on any v*.*.* tag.
Bump
versioninpyproject.toml.Add a
## [X.Y.Z] - YYYY-MM-DDsection toCHANGELOG.md.Commit, tag, push:
git commit -am "Release vX.Y.Z"
git tag vX.Y.Z
git push --tagsOne-time setup (not in repo state):
PyPI → Account settings → Add a pending publisher with repo
umbra2728/firegex-mcp, workflowrelease.yml, environmentpypi.GitHub → repo → Settings → Environments → create
pypi.
Related
packmate-mcp — sibling MCP server for Packmate (CTF network traffic analyzer).
ad-ctf-toolkit — Claude Code plugin that combines
firegex-mcpandpackmate-mcpwith skills and sub-agents for Attack/Defense CTF rounds.
Contact
Questions, suggestions, bug reports, or anything else — reach out:
Telegram: @ismailgaleev
Email: umbra2728@gmail.com
GitHub Issues: preferred for actionable bugs and feature requests
License
MIT — see LICENSE.
Maintenance
Latest Blog Posts
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/umbra2728/firegex-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server