Skip to main content
Glama
wundervault

wundervault

Official

vault_ssh_exec

Run remote commands or rsync files using a vaulted SSH key kept inside the broker, never written to disk or exposed to the agent. Hosts are checked against the entry allowlist.

Instructions

Run a command on a remote host, or rsync files to it, using a vaulted SSH key that is never written to disk and never returned to you.

The key stays inside the broker, which answers signature requests over a private ssh-agent socket that exists only for the duration of this call. You choose the remote command; you do not get the key.

The destination is checked against the ssh_hosts allowlist on the entry, and the ssh command line is constructed here — naming a different host inside remote_argv does not change where it connects. An entry with no ssh_hosts authorises nothing.

Every signature is audited with the key fingerprint and the authorised host.

Input Schema

NameRequiredDescriptionDefault
purposeYesWhy this is needed (audit log).
entry_idYesVault entry holding the SSH private key (ed25519, unencrypted).
rsync_argsNorsync arguments instead of a remote command. Every [user@]host:path argument is checked against the same allowlist.
destinationYesRemote destination, [user@]host. The host part must be in the entry's ssh_hosts.
remote_argvNoCommand and arguments to run on the remote host. An array, run without a shell. Omit when using rsync_args.
working_dirNoLocal working directory for rsync source paths.
timeout_secondsNoDefault 120.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.2

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations at all, the description carries the full burden and does so thoroughly: the key is never written to disk nor returned, the agent socket lives only for the call, every signature is audited with fingerprint and host, and the host is validated server-side so remote_argv cannot redirect the connection. It also pre-empts the obvious injection attempt explicitly, which is exactly the kind of behavior an agent cannot infer from schema.

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

Conciseness4/5

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

Front-loaded with the action, then layered security constraints; every sentence adds new information. It runs four short paragraphs where three would suffice, but there is no filler to cut.

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

Completeness4/5

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

Covers the security and authorization model completely for a 7-parameter mutation-adjacent tool with no annotations. The remaining gap is the return shape — with no output schema, the description never says whether the caller gets stdout, stderr, and exit status, which matters for a command-execution tool.

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 coverage is 100%, so each of the 7 parameters is already documented in the schema. The description only adds that remote_argv and rsync_args are mutually exclusive paths and that destination must match the entry's ssh_hosts — useful reinforcement but largely a restatement, so baseline 3 applies.

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?

States a specific verb and resource — run a command on a remote host or rsync files — and pins the mechanism: a vaulted SSH key that never leaves the broker. This clearly separates it from siblings like vault_sign and vault_pay, which do not execute remote commands.

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?

The scope of use is explicit (remote exec or rsync against an allowlisted host) and it states a hard when-not: 'An entry with no ssh_hosts authorises nothing.' It never names a sibling as the alternative path, so the routing guidance is clear but not fully comparative.

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