Skip to main content
Glama

start_server

Initiate a sudo approval daemon locally or over SSH, waiting until the socket is ready for executing privileged commands with mandatory human approval.

Instructions

Start a sudo-proxy approval daemon: with no host, opens a local terminal window running the approval TUI; with host, opens a terminal running SSH to that host with a Unix-socket tunnel so subsequent execute calls reach it. Idempotent: if the daemon (or tunnel) is already live it returns 'already running' without spawning anything. Blocks while polling for end-to-end socket readiness — up to 5s locally, up to 30s for remote tunnels — and returns as soon as the daemon answers. Set forward_agent: true to enable SSH agent forwarding for unprivileged remote commands (ignored locally); errors if no terminal emulator is found or the socket is not ready within the polling window.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hostNoRemote hostname (omit for localhost)
forward_agentNoEnable SSH agent forwarding on the tunnel so unprivileged commands that opt in (via execute's `forward_agent: true`) can authenticate to GitHub etc. with the user's local key. Ignored for local servers.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries full behavioral burden and does so richly: idempotency, polling/blocking behavior, timeout windows, error conditions, and SSH agent forwarding semantics are all disclosed. There is no contradiction with any annotation.

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?

The description is dense but well-structured: core purpose comes first, then conditional modes, then idempotency and failure behavior. Each sentence adds needed detail, though the sentence length makes it slightly less scannable.

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?

It covers invocation modes, timeouts, error cases, and parameter semantics, which is strong for a tool with no output schema. The only minor gap is the absence of an explicit success-return format, but status/stop siblings mitigate the operational context need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters, so the baseline is 3; the description adds real value by explaining the local-versus-host effect, the ignored-locally behavior for `forward_agent`, and the consequences of each setting.

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?

The description clearly identifies the action ('Start') and resource ('sudo-proxy approval daemon'), and explicitly distinguishes local versus host modes. This makes its purpose unambiguous and differentiates it from sibling tools like stop_server and status.

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?

It gives concrete usage conditions: no `host` means local TUI, `host` means SSH tunnel, and `forward_agent` applies to remote tunnels. It links its role to enabling subsequent `execute` calls, though it does not explicitly name stop_server/status as alternatives for stopping or checking state.

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

Deploy Server

Other Tools