Guardian Engine
dev.kaimeilabs/guardian-engineVersion 1.0.0Deterministic recipe verification engine — validates AI-generated recipes against master SOPs.
Status
Responds195 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:26 UTC
- Latency
- 195 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://api.kaimeilabs.dev/mcpResponds195 msNo sign-in
Claude Code
claude mcp add --transport http guardian-engine https://api.kaimeilabs.dev/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: guardian-engine
Remote MCP server URL: https://api.kaimeilabs.dev/mcpCursor
{
"mcpServers": {
"guardian-engine": {
"url": "https://api.kaimeilabs.dev/mcp"
}
}
}VS Code
code --add-mcp '{"name":"guardian-engine","type":"http","url":"https://api.kaimeilabs.dev/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
7 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
check_allergensCheck ingredients for EU FIC 1169/2011 allergen compliance.
Returns a detailed audit trace mapping each ingredient to its EU Annex II
allergen group with entry numbers and labels. The safety verdict is
deterministic — no LLM involvement in the decision — and is pinned by the
returned ``kb_version_hash``.
Use check_all_eu_allergens=True for food labelling (detect all allergens).
Use restrictions=['dairy', 'gluten'] to check for specific user allergies.
Supplying neither runs the full 14-group Annex II scan and sets
``defaulted_to_full_scan`` — the tool never reports "safe" without checking.
``is_safe`` answers "was a supplied restriction violated?"; ``declared_allergens``
answers "what is actually present?". Read both. | Not declared | Yes | Yes | Not declared |
check_safetyRun master-independent safety checks on a candidate recipe.
Works for ANY recipe — no dish resolution, no master SOP required. Checks
poultry internal-temperature safety and scans all ingredients for the 14
EU FIC 1169/2011 Annex II allergen groups. The verdict is a deterministic
function of (candidate, kb_version_hash) — no LLM involvement.
Use this when verify_recipe has no matching master for the dish: the
safety layer still applies to every recipe.
Returns:
Safety envelope: verdict (PASSED/FAILED per the zero-critical policy
gate), safe flag, issues found, and the pinned kb_version_hash. | Not declared | Yes | Yes | Not declared |
fix_recipeDeterministically repair a candidate recipe against a Guardian master.
Verifies the candidate, applies every machine-actionable correction the
symbolic engine produced (missing ingredients, quantities, temperatures,
durations, cooking media, ingredient substitutions), then re-verifies the
result. No LLM is used — the repair is a deterministic function of the
candidate recipe and the master ruleset.
Findings that need recipe-authoring judgement — adding a whole cooking
phase, rewriting step instructions, ingredient-ratio rebalancing — are not
auto-applied; they are returned under `patches_skipped`. Allergen findings
are never auto-fixed. The response reports the verdict before and after so
the caller can see exactly what was resolved.
Note: `verdict_after` may still be FAILED when structural changes (e.g.
adding a cooking step, rebalancing ingredient ratios) are needed. These
require recipe-authoring judgement and are returned under `patches_skipped`.
Callers should NOT assume a fixed recipe will pass verification. | Not declared | No | Yes | Not declared |
get_masterReturn the canonical master recipe for a dish (read-only, no LLM).
Enables compare-then-verify agentic loops: fetch the master, diff it against the
user's recipe, then call verify_recipe — instead of verifying blind. Pure knowledge-base
lookup, no LLM in the hot path.
Master content is transparent by default (ADR-009 / ADR-010): exact temperatures, timings,
and EU FIC 1169/2011 allergen codes are returned verbatim, never obfuscated. No score is
included (ADR-013) — this is reference data, not a verdict.
Returns ingredients, steps (technique/temperature/timing/medium), and the EU FIC allergens
derived from the required ingredients. Unknown dishes return a structured UNKNOWN_DISH error. | Not declared | Yes | Yes | Not declared |
list_dishesList all available master dishes with rich metadata.
This is a browse/discovery step, not the verification itself — after picking
a dish, call verify_recipe(dish_name=<slug>, candidate_json=<your recipe>) to
actually check a candidate against it (or fix_recipe to auto-repair it).
Returns:
Dictionary with `schema_version`, a `dishes` list (slug, title, cuisine,
region, aliases, complexity per dish), and a `next_step` hint describing
how to proceed to verification. | Not declared | Yes | Yes | Not declared |
verify_dietary_claimVerify that a recipe satisfies a dietary claim (vegan, halal, gluten-free, ...).
Reuses the existing allergen-detection logic plus a curated forbidden-ingredient
map (apps/guardian/knowledge/dietary_claims.yaml). Returns a structured verdict
with the specific offending ingredients and a short justification — never a
vague paraphrase. | Not declared | Yes | Yes | Not declared |
verify_recipeVerify a candidate recipe against a Guardian master recipe.
Uses deterministic graph-based verification to check technique, temperature,
timing, cooking medium, and required ingredients.
**Verdict**: `verdict` is strictly PASSED or FAILED and is policy-driven — any CRITICAL
finding fails the recipe; more than 5 WARNINGs also fail. There is no score in the
response (ADR-013): gate on `verdict` and explain failures from `findings`.
**Field audience**: `issue` is a machine-readable code for programmatic handling — never
show it to end users. Use `title` and `suggested_correction` as the user-facing fields.
Returns structured JSON by default (machine-actionable findings and patches);
response_format="text" renders a human-readable report. Both formats are
transparent (ADR-009 / ADR-018): exact values and ingredient names included. | Not declared | Yes | Yes | Not declared |
Details
- Registry status
- Active
- Published
- Feb 27, 2026
- Updated
- Feb 27, 2026
- Website
- Not given
- Categories (suggested)
- SecuritySuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared