Skip to main content
Glama
abranson
by abranson

Launch a Sailfish application

sailfish_device_app_launch

Launch an installed .desktop entry on a Sailfish device via SSH, returning a receipt with remote log and status paths for verification.

Instructions

Launch an installed .desktop entry using gio as the configured session user from their home. Detaches all streams and returns a launch receipt and remote log/status paths. Does not stop apps or boosters. Submission is not proof of foreground activation or rendering; verify separately.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deviceNoConfigured device alias or ssh target. When the user says the device is attached over USB, use 'usb' for the default device or 'usb:<name>' when the user supplies a device name. The USB connection trusts that name for device metadata and does not resolve it through DNS.
timeoutNo
desktop_fileYesInstalled desktop basename (for example sailfish-browser.desktop) or absolute device path ending in .desktop.
wait_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare the generic write/open-world/idempotent profile; the description adds genuinely new behavioral facts: streams are detached (fire-and-forget), a launch receipt plus remote log/status paths come back, and the tool will not stop running apps or boosters. The activation caveat also warns the agent about a failure mode the annotations cannot express.

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

Conciseness5/5

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

Three tight sentences, no filler, with the primary action statement first and the caveats last. Every clause carries information (mechanism, return shape, exclusions, verification).

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?

With no output schema, the description helpfully names the return artifacts (launch receipt, remote log/status paths) and the non-foreground-activation caveat. The remaining gap is that the timing parameters (timeout, wait_seconds) that govern launch behavior are left entirely unexplained.

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

Parameters2/5

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

Schema coverage is only 50%: desktop_file and device are described, but timeout and wait_seconds are documented nowhere. The description does not compensate for those two parameters or explain how wait_seconds interacts with timeout, which is exactly the kind of timing semantics an agent needs here.

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 (launch), a specific resource (installed .desktop entry), and the exact mechanism (gio as the configured session user from their home). This clearly separates it from sailfish_device_browser_launch and the command/journal siblings without needing to read any schema.

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?

Provides an explicit exclusion ('Does not stop apps or boosters') and a verification caveat ('Submission is not proof of foreground activation or rendering; verify separately'), which tells the agent when this tool's result is insufficient. It does not, however, name a concrete alternative tool when the agent actually needs to stop or confirm an app.

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