-
Notifications
You must be signed in to change notification settings - Fork 0
Container
The MCP server ships as a container image. It speaks MCP over stdio, so there is no port to expose and no HTTP surface to secure.
ghcr.io/wrg-11/wrg-sigma-rules-mcp
docker pull ghcr.io/wrg-11/wrg-sigma-rules-mcp:latest
docker run --rm -i --network none ghcr.io/wrg-11/wrg-sigma-rules-mcp:latest-i keeps stdin open, which the stdio transport needs. --rm discards the
container when the session ends.
The three tools — draft_rule, validate_rule, convert_rule — do their work
entirely in-process: YAML parsing, schema checks, and pySigma conversion. None of
them fetches anything at runtime. So the server runs with the network switched
off, and that is not a degraded mode — it is the normal one.
This is worth stating plainly because it is the property that makes the image safe to run against rules you have not read yet: a malicious rule cannot make the container call home, because the container has nowhere to call.
| Tag | What it points at |
|---|---|
latest |
the most recent published release |
vX.Y.Z |
that specific release, immutable |
Pin the version tag in anything automated. latest moves.
An MCP session is three steps: initialize, the notifications/initialized
notification, then tools/list or tools/call. scripts/mcp_stdio_smoke.py in
the repository performs exactly that handshake and prints what came back, if you
would rather not drive the protocol yourself.
A useful first check is that tools/list returns three tools and that
validate_rule reports pysigma_available: true. A server that answers but has
no pySigma will still validate schemas — it just cannot tell you whether pySigma
would accept the rule, which is usually the question you came with.
- No network access is required or used at runtime.
- Nothing is written outside the container.
- No telemetry, no phone-home, no usage counter.
The corpus itself is baked into the image, so the rules you convert are the rules
from the release you pulled — not whatever is on main today.