
What you get on the App Rules tab
- Stat cards for the selected time range: Rule matches, Allowed, Tagged, Blocked.
- Enforcement Activity histogram: allowed vs. blocked tool calls over time.
- Rules by Server: every app that has rules (or could have rules), with its rules listed underneath. You can toggle each rule on or off from here.
- Search + time range filter to narrow down the view.
- + App Rule button to create a new rule.
How a rule works
A rule is evaluated every time a user or agent invokes a tool on the app it targets. Each rule has four core pieces of configuration:Phase (check_type)
Pick before to check the call before it runs, or after to check it
once the result comes back. Use before to block risky actions and after
to tag calls based on what was returned (for example, a search that came
back with sensitive data).
Action
Pick block to deny the call, or tag to let it through while
labeling the call with your rule’s name so you can find it later in
activity views.
Scope
Limit the rule to specific tool names on the app (for example, only
send_message in Slack, or only create_event in Google Calendar).
Leaving it empty applies the rule to every tool on that app.Condition
A CEL expression that decides whether the rule fires. You have access to:
args— the arguments the caller passed to the tooltool_name— the tool being calledserver_id— the app the tool belongs tooutput— the tool’s return value (only in after rules)
args.channel == "C05QG7RF30A" fires whenever Slack’s
send_message targets that specific channel.Building a rule with the AI rule builder
Clicking + App Rule opens a prompt to choose which app the rule is for, and then takes you into the rule builder. The left panel is a chat with the Gumstack Assistant, and the right panel shows the live rule configuration and simulation results.
Describe the rule in plain English
For example: “Do not allow users to send messages in the general channel.
Channel ID: C05QG7RF30A.”The assistant will ask for any missing details it needs (channel IDs, tool
names, thresholds, etc.). You can
@mention tools on the app to pull them
directly into the conversation.Review the generated configuration
The top-right panel shows the
check_type, action, tool_names, and
conditions that the assistant produced. This is what will actually be
enforced.Check the simulation
Every time the assistant changes the rule, it re-runs the rule against the
most recent tool calls for that app and shows the verdict for each. This
lets you confirm it catches what you want (no false negatives) and doesn’t
catch anything you didn’t expect (no false positives) before the rule ever
goes live.
Suggested prompts
If you aren’t sure where to start, the builder offers prompts like:- Help me create a new rule for this server
- What types of rules can I create?
- Show me examples of common security rules
- Help me set up a rule to block sensitive operations
- Explain how MCP rules work
Active rules
Rules appear under their app in the Rules by Server list. Each entry shows the rule name and description, a toggle to enable or disable it, and click-through to the rule’s detail page.
Editing a rule
Opening a rule takes you back into the rule builder. The right panel has three tabs:- Simulation — re-runs the rule against recent tool calls so you can see the impact of any in-flight edit before saving.
- Activity — shows the actual tool calls this rule has evaluated since it was enabled, with their verdict (allowed, tagged, or blocked), the user who made the call, and where the call came from.
- Settings — the read-only/edit panel shown below.

- Rename the rule or change its description (changes save on blur).
- Toggle Enabled on or off.
- See who created the rule, when it was created, and when it was last updated.
- Delete the rule (this cannot be undone).
Enforcement activity
Every evaluated tool call is recorded so you can audit what the rule has been doing. You can view it in two places:- The App Rules tab at the top of the App Policies page shows enforcement across every rule in the organization, with stat cards and a histogram.
- The Activity tab inside a specific rule shows only that rule’s history.
- Allowed — the call ran normally and no rule matched it.
- Tagged — the call ran, but one or more
tag-action rules matched it. The matched rule names are shown in the Rule column. - Blocked — a
block-action rule matched and the call was denied.
