exec_command
Execute a shell command on this machine or an owned remote Yaver device and return the output. Commands are validated through the sandbox (dangerous patterns like rm -rf / are blocked). Use this for quick commands — for long-running tasks, use create_task instead.
This record as markdown: /tools/io-github-kivanccakmak-yaver/exec-command.md
What exec_command does on Yaver
AI agents invoke exec_command to trigger actions in Yaver. 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
command | string | Yes | Shell command to execute |
timeout | integer | — | Timeout in seconds (default: 300, max: 3600) |
work_dir | string | — | Working directory (default: agent's work dir) |
device_id | string | — | Optional owned Yaver device id/name/alias to run on, e.g. a self-hosted dev box. |
Parameters from the server's own tool schema.
Why exec_command is rated High
This tool triggers external operations (shell commands) whose effects depend entirely on arguments supplied by the agent. While sandbox restrictions reduce severity from critical to high, the capability to execute arbitrary commands on local and remote machines represents significant blast radius if misused (unauthorized file access, data exfiltration, lateral movement).
From the tool's definition The tool explicitly states it 'Execute[s] a shell command on this machine or an owned remote Yaver device and return[s] the output.' Shell command execution is the defining characteristic of the Execute category.
Attacks that exploit this kind of access
The rule that runs exec_command safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Yaver, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For exec_command, this is the rule to start with:
exec_command 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 Yaver, apply this rule, and every exec_command call is checked against it from then on.
Questions about exec_command
Execute a shell command on this machine or an owned remote Yaver device and return the output. Commands are validated through the sandbox (dangerous patterns like rm -rf / are blocked). Use this for quick commands — for long-running tasks, use create_task instead. It is categorised as a Execute tool in the Yaver MCP Server, which means it can trigger actions or run processes. Use rate limits and argument validation.
exec_command accepts 4 parameters: command, timeout, work_dir, device_id. Required: command. The full parameter table on this page comes from the server's own tool schema.
Register the Yaver MCP server in PolicyLayer and add a rule for exec_command: 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 Yaver. Nothing to install.
exec_command 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 exec_command 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 exec_command. 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.
exec_command is provided by the Yaver MCP server (yaver-cli). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Yaver, and thousands of servers like it.
Across the catalogue