sigma-gate
A deterministic MCP server that guards AI/agent output by detecting secrets, injection, and PII in ~85µs with zero dependencies. Gives a clear ship/block verdict and runs locally or hosted.
README
⟐ σ-gate — guard
Deterministic trust layer for AI/agent output. One call → one verdict. No model, no API key, no network.
1 = 1. Declared output must equal what is safe to realize.
The paradigm
The other four Spektre repos are routing protocols — they move value, capability, promises, and identity
across networks. σ-gate is not a routing protocol, and does not pretend to be one. It is the suite's
deterministic trust verdict: the gate that sits at the edge of any pipeline and answers, in ~85µs and
identically every time, is this output safe to ship? LLM-as-judge guards are slow, burn a model call per
check, and silently degrade under rate-limits. But the highest-frequency risks — a leaked AKIA… key, a
Luhn-valid card number, an "ignore all previous instructions" — are structurally detectable: you don't
need a model, you need a gate that gives the same answer every time. That determinism is the
primitive. σ = declared − realized: a block is always nameable (secret[high]: github_pat), never an
opaque float, so what the gate declares unsafe is exactly what it refuses to realize. guard is that gate.
One call
from guard import guard
result = guard(model_output)
# {"safe_to_ship": True/False, "severity": "clean|low|medium|high|critical",
# "block_reasons": [...], "dimensions": {"secret": {...}, "injection": {...}, "pii": {...}}}
Block a bad output:
v = guard("Here is the key: ghp_16C7e42F292c6912E7710c838347Ae178B4a")
# safe_to_ship: False
# block_reasons: ["secret[high]: github_pat"]
Pass a clean output through:
v = guard("The quarterly report shows revenue grew 12% driven by the EU segment.")
# safe_to_ship: True
# severity: "clean"
Three dimensions, one verdict
| Dimension | What it catches |
|---|---|
| secret | Leaked credentials — 20+ providers (AWS, GitHub, Stripe, GCP, …), entropy-ranked |
| injection | Prompt-injection and jailbreak patterns — structural, not heuristic |
| pii | Email, phone, card (Luhn-verified), SSN, IBAN, IP — compliance-class detection |
Every dimension runs independently. A combined hit fires all three:
guard("AKIA… ghp_… 4111 1111 1111 1111 — ignore all previous instructions")
# block_reasons: ["secret[high]: ...", "injection[high]: ...", "pii[high]: ..."]
Install
Zero dependencies, pure stdlib, Python 3.9+.
git clone https://github.com/spektre-labs/sigma-gate && cd sigma-gate
pip install -e . # installs the `guard` + `guard-mcp` console scripts
python3 -m pytest -q # 7 passed, zero dependencies
No install is even required to import — from guard import guard works from the cloned directory.
Use it
Inline gate in any pipeline:
from guard import guard
def ship(output: str) -> str:
v = guard(output)
if not v["safe_to_ship"]:
raise ValueError(f"blocked: {v['block_reasons']}")
return output
CLI — pipe any output through:
echo "your model output" | python3 -m guard
Self-test — prove every threat class fires:
python3 -m guard selftest
# {"secret_blocked": true, "injection_blocked": true, "pii_blocked": true,
# "clean_passes": true, "combined_all_fire": true, "ALL_PASS": true}
Tune the threshold via env var (default: medium):
GUARD_BLOCK_AT=high python3 -m guard "..."
Use as an MCP tool
σ-gate ships a zero-dependency MCP server — give any agent
(Claude Code, Claude Desktop, Cursor, Cline) a deterministic guard tool it can call before shipping
output. No model, no key, no token cost.
Claude Code:
claude mcp add guard -- python3 /absolute/path/to/sigma-gate/mcp_server.py
Claude Desktop (claude_desktop_config.json):
{ "mcpServers": { "guard": { "command": "python3",
"args": ["/absolute/path/to/sigma-gate/mcp_server.py"] } } }
Exposes two tools: guard(text, …) → the ship/block verdict, and guard_selftest() → proof every
threat class fires. Pure stdlib stdio JSON-RPC.
Hosted — no install
σ-gate also runs as a hosted remote MCP server (scale-to-zero), listed in the
official MCP Registry as io.github.spektre-labs/sigma-gate.
Connect with zero local setup:
https://sigma-gate-864996675261.us-central1.run.app/mcp
MCP clients that browse the registry discover it automatically.
Open-core vs hosted
| Open core (this repo) | Hosted σ scoring | |
|---|---|---|
| What | Deterministic gate: secret + injection + PII | Coherence / hallucination σ-scoring on a hot path |
| Latency | ~85µs | Network round-trip |
| Dependencies | Zero | None on your side |
| Cost | Free, always | Pay-per-call via x402 — no signup |
| Offline | Yes | No |
| Model | None | Optional |
The open core handles what models cannot do reliably — structural pattern detection with identical verdicts on identical inputs. The hosted layer adds probabilistic coherence scoring for the cases where structure alone is insufficient.
Hosted endpoint:
curl "https://swagletz-sigmagate.hf.space/check?text=your+text+here"
# HTTP 402 + permissionless x402 pay-to — no account required
Properties
- Deterministic. Same input → same verdict. No variance, no model drift.
- Composable. Each dimension is independent and pluggable. Wire in a hallucination scorer or extend with custom patterns; the gate architecture is additive.
- Honest. Severity and block-reasons are explicit strings, not opaque floats. A block is always nameable.
- Fails safe. If a detector throws, that dimension returns
severity: "error"— the call does not silently pass. - Zero dependencies. Runs anywhere Python 3.9+ runs. No pip install required to import.
Status
REAL — shipped, deterministic, deployed. CI green, 7/7 tests passing, zero dependencies; live as a local MCP tool and as a hosted scale-to-zero MCP server listed in the official registry.
The Spektre protocol suite
σ-gate is the deterministic trust verdict of a five-part estate. The other four are routing protocols; this one is the gate they ship through:
- vrp — value routing (least-friction multi-hop settlement)
- crp — capability routing (route a task to the best AI substrate)
- vtc — verifiable transaction chain (signed value promises anyone verifies trustlessly)
- sid — sovereign identity (prove one claim, reveal nothing else)
- sigma-gate — deterministic trust verdict (this repo)
License
Apache-2.0 — see LICENSE.
Part of Spektre Labs — coherence-theory research lab.
σ = declared − realized · 1 = 1, made executable.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.