Medium Risk

set_logic

Set conditional logic rules and/or event triggers. This replaces ALL existing rules/triggers. Use get_form_summary to see element and page IDs for building conditions. Logic rule structure (FOLLOW THIS EXACTLY): { "id": "<uuid>", "name": "Human-readable rule description", "conditions": [ ...

Part of the Weavely AI Forms & Surveys MCP server. Enforce policies on this tool with Intercept, the open-source MCP proxy.

florian/weavely Write Risk 2/5

AI agents use set_logic to create or modify resources in Weavely AI Forms & Surveys. Write operations carry medium risk because an autonomous agent could trigger bulk unintended modifications. Rate limits prevent a single agent session from making hundreds of changes in rapid succession. Argument validation ensures the agent passes expected values.

Without a policy, an AI agent could call set_logic repeatedly, creating or modifying resources faster than any human could review. Intercept's rate limiting ensures write operations happen at a controlled pace, and argument validation catches malformed or unexpected inputs before they reach Weavely AI Forms & Surveys.

Write tools can modify data. A rate limit prevents runaway bulk operations from AI agents.

florian-weavely.yaml
tools:
  set_logic:
    rules:
      - action: allow
        rate_limit:
          max: 30
          window: 60

See the full Weavely AI Forms & Surveys policy for all 13 tools.

Tool Name set_logic
Category Write
Risk Level Medium

View all 13 tools →

Agents calling write-class tools like set_logic have been implicated in these attack patterns. Read the full case and prevention policy for each:

Browse the full MCP Attack Database →

Other tools in the Write risk category across the catalogue. The same policy patterns (rate-limit, validate) apply to each.

What does the set_logic tool do? +

Set conditional logic rules and/or event triggers. This replaces ALL existing rules/triggers. Use get_form_summary to see element and page IDs for building conditions. Logic rule structure (FOLLOW THIS EXACTLY): { "id": "<uuid>", "name": "Human-readable rule description", "conditions": [ { "id": "<uuid>", "variable": "field:<elementId>", "operator": "isNotEmpty", "value": null } ], "logicalOperator": "all", "actions": [ { "id": "<uuid>", "name": "showElement", "data": { "elementId": "<elementId>" } } ] } CRITICAL: In actions, the action type key is "name" NOT "type". Using "type" will break the form. CRITICAL: In conditions, always include "value" (set to null for operators like isEmpty/isNotEmpty that don't need a value). Condition operators: isEmpty, isNotEmpty, isEqual, isNotEqual, contains, doesNotContain, startsWith, endsWith, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual For isEqual/isNotEqual/contains/etc., set "value" to the comparison string. Action names: hideElement, showElement, hidePage, skipToPage, setEnding Action data: { elementId: "..." } for element actions, { pageId: "..." } for page actions. logicalOperator: "all" (AND) or "any" (OR) for combining multiple conditions. Event trigger structure (FOLLOW THIS EXACTLY): { "id": "<uuid>", "name": "Human-readable trigger description", "trigger": { "name": "formSubmitted" }, "actions": [ { "id": "<uuid>", "name": "openUrl", "data": { "url": "https://example.com" } } ] } CRITICAL: "trigger" is an object with a "name" key, NOT a plain string. Trigger names: formSubmitted, formLoaded, formPageShown Action names: openUrl (requires data.url), restartForm (no data needed) All IDs (rule id, condition ids, action ids) must be UUIDs.. It is categorised as a Write tool in the Weavely AI Forms & Surveys MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.

How do I enforce a policy on set_logic? +

Add a rule in your Intercept YAML policy under the tools section for set_logic. You can allow, deny, rate-limit, or validate arguments. Then run Intercept as a proxy in front of the Weavely AI Forms & Surveys MCP server.

What risk level is set_logic? +

set_logic is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.

Can I rate-limit set_logic? +

Yes. Add a rate_limit block to the set_logic rule in your Intercept policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block set_logic completely? +

Set action: deny in the Intercept policy for set_logic. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides set_logic? +

set_logic is provided by the Weavely AI Forms & Surveys MCP server (florian/weavely). Intercept sits as a proxy in front of this server to enforce policies before tool calls reach the server.

Enforce policies on Weavely AI Forms & Surveys

Open source. One binary. Zero dependencies.

npx -y @policylayer/intercept
github.com/policylayer/intercept →
// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.