AgentGuards security guardrails for a self-hosted appliance — explains that enforcement is fully automatic via hooks and there is nothing further to call. Load this if asked how guardrails are enforced in this variant, or why no agentguards MCP tools are available.
Installs into .claude/skills of the current project.
Are you the author of Guardrails?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/alelaguard-guardrails-b711a80f)
---
name: guardrails
description: AgentGuards security guardrails for a self-hosted appliance — explains that enforcement is fully automatic via hooks and there is nothing further to call. Load this if asked how guardrails are enforced in this variant, or why no agentguards MCP tools are available.
---
# AgentGuards — self-hosted, hooks-only
This variant bundles no MCP server, so there is no `check_input`/`authorize_action`
to reach for — do not look for them, they are not installed here.
That is not reduced protection. The three hooks in `hooks/hooks.json` enforce
deterministically, on every request, regardless of anything the model does:
- **`BeforeAgent`** screens every prompt before you see it.
- **`BeforeTool`** authorizes every tool call before it runs.
- **`AfterTool`** scans content fetched by `web_fetch`/`google_web_search`, and
by `run_shell_command` when it invokes a fetch binary (curl, wget, etc.) —
withholding it if flagged.
Nothing here requires you to call a tool, check a decision, or format a block
message — the hook has already acted by the time you see (or don't see) the
result. If a hook blocks something, reply with its message rather than
composing your own.
**Why no MCP server:** Gemini CLI's extension manifest cannot substitute an
environment variable into its MCP server URL, so a URL baked in at publish
time cannot be made to point at each installer's own appliance — it would
either be fixed to one instance or, worse, silently fall back to AgentGuards'
hosted service. Rather than ship that, this variant relies entirely on the
hooks, which read `AGENTGUARDS_URL` correctly per installation because they
are a subprocess, not a static config file. If you're on the hosted product
instead of a self-hosted appliance, install `agentguards-gemini`, which does
bundle the MCP server.