snow_execute_script
Execute server-side JavaScript on ServiceNow. Primary: synchronous execution via Scripted REST API (~1-3s). Fallback: scheduled job if endpoint unavailable. Auto-deploys the executor endpoint on first use. ES5 only (Rhino engine)!
This record as markdown: /tools/serac/snow-execute-script.md
What snow_execute_script does on Serac
AI agents invoke snow_execute_script to trigger actions in Serac. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.
Why snow_execute_script is rated High
This tool executes arbitrary code (server-side JavaScript) on a ServiceNow instance with no apparent restrictions on what the script can do. The ability to run JavaScript in the ServiceNow environment means an AI agent could access sensitive data, modify records, trigger workflows, or perform other consequential operations depending on the script contents and system permissions.
From the tool's definition Execute server-side JavaScript on ServiceNow. Primary: synchronous execution via Scripted REST API (~1-3s). Fallback: scheduled job if endpoint unavailable. Auto-deploys the executor endpoint on first use.
Attacks that exploit this kind of access
The rule that runs snow_execute_script safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Serac, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For snow_execute_script, this is the rule to start with:
snow_execute_script stays usable, but rate-capped: a runaway agent can't fire it dozens of times a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Serac, apply this rule, and every snow_execute_script call is checked against it from then on.
Questions about snow_execute_script
Execute server-side JavaScript on ServiceNow. Primary: synchronous execution via Scripted REST API (~1-3s). Fallback: scheduled job if endpoint unavailable. Auto-deploys the executor endpoint on first use. ES5 only (Rhino engine)!. It is categorised as a Execute tool in the Serac MCP Server, which means it can trigger actions or run processes. Use rate limits and argument validation.
Register the Serac MCP server in PolicyLayer and add a rule for snow_execute_script: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Serac. Nothing to install.
snow_execute_script is a Execute tool with high risk. Execute tools should be rate-limited and have argument validation enabled.
Yes. Add a rate_limit block to the snow_execute_script rule in your PolicyLayer 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.
Set action: deny in the PolicyLayer policy for snow_execute_script. 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.
snow_execute_script is provided by the Serac MCP server (serac-labs/serac). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Serac, and thousands of servers like it.
Across the catalogue