Skip to main content
Glama

jev_gate_action

Read-only

Assess an action before execution to judge its destructiveness, outward-facing scope, and blast radius, then return allow, confirm, or block to prevent costly mistakes.

Instructions

Advisory pre-flight check on an action you are about to take: judges whether it is destructive, outward-facing, in scope for what the user asked, and whether it touches credentials, plus how wide its blast radius is — then returns allow / confirm / block from a deterministic policy in code. NOT A SECURITY BOUNDARY. It is a judgment layer that catches plausible mistakes, and Jev is not hardened against adversarial text: an action or context written to argue for its own approval can shift the result. Never rely on it to contain untrusted input, and never let allow stand in for a real permission check. Use it just before something you cannot cheaply undo: deleting or overwriting files, git history rewrites, installs, deploys, sending messages, spending money, anything touching an external system. Pass action as the concrete thing you are about to do, including tool name and arguments — not a paraphrase. Pass user_request in the user's own words. confirm means ask the user first. block means it looks both out of scope and consequential; re-read the request rather than retrying.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesExactly what you are about to do, including the tool name and its arguments.
contextNoOptional short context: the task, the relevant prior step.
thresholdsNoOverride the server's configured gating thresholds for this call only.
user_requestYesWhat the user actually asked for, in their words.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
modelYesThe versioned model id that actually answered.
usageYesToken usage. Jev charges for input tokens only.
reasonsYesWhich policy rules fired, in plain language.
signalsYesRaw P(yes) for each signal. Near 0.5 means the model is unsure.
decisionYesallow: proceed. confirm: ask the user first. block: do not run it.
latency_msYesWall-clock time for the underlying API call(s), including retries.
thresholdsYes
blast_radiusYesHow far the effects reach. 0 = read-only, 3 = production or other people.
signal_leansYesHow each signal was read: yes / no / uncertain, using the auto threshold.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.4

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only and open-world, and the description goes beyond that by disclosing that Jev is not hardened against adversarial text and that action/context can be written to influence the result. It also reveals the deterministic-policy-in-code behavior and translates confirm/block into required agent behavior. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, then the security caveat, then usage timing, parameter guidance, and output interpretation in a sensible order. Although it is longer than a one-line definition, the gating decision is complex enough that the length is justified and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists and the input schema covers all parameters, the description supplies the missing behavioral context: when to call it, how to phrase action and user_request, what confirm/block instruct the agent to do, and important security caveats. An agent has enough information to invoke it correctly without additional documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces how to pass action concretely and user_request in the user's own words, but these largely restate the schema's field descriptions. It adds no substantive detail about context or thresholds beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description names a specific verb-path: an advisory pre-flight check that judges an action before execution and returns allow/confirm/block from a deterministic policy. It clearly defines what the tool evaluates: destructiveness, outward-facingness, scope, credential impact, and blast radius. This makes it distinct from the sibling jev_* tools, which are evaluation/ranking/verification helpers rather than a gating policy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it just before something that cannot be cheaply undone and gives concrete categories: file deletion/overwrite, git history rewrites, installs, deploys, messages, spending money, and external systems. It also states a when-not: it is not a security boundary and must never be relied on to contain untrusted input or replace a real permission check. It does not name sibling alternatives, so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.