Skip to main content
Glama
abranson
by abranson

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SAILFISH_DEVEL_MCP_LOG_DIRNoOverride the log directory for the server wrapper. The wrapper writes startup, shutdown, MCP request, and tool-call logs to ~/.local/state/sailfish-devel-mcp/server.log by default.
SAILFISH_DEVEL_MCP_SERVER_LABELNoSet the server label used in the wrapper startup line so it matches the MCP client's server label.
SAILFISH_SDK_BUILD_ENGINE_IMAGENoOverride the wrapper image used for SDK builds. Defaults to sailfish-sdk-build-engine:$USER.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
sailfish_doctorA

Check helper compatibility, local tools, SDK targets and configuration without contacting devices.

sailfish_obs_watchB

Watch OBS until completion in a detached local job; use sailfish_build_status/cancel or the jobs CLI waiter.

sailfish_devicesA

List configured Sailfish OS device aliases and SSH targets.

sailfish_device_setupA

Check command availability and session configuration over SSH. By default this only reads device state. Explicit install_missing=true installs missing python3-base or mce-tools from existing repositories in a detached job; use sailfish_build_status/cancel. Missing base OS tools need manual repair.

sailfish_device_journalC

Read recent journalctl output from a Sailfish OS device.

sailfish_device_topmost_pidB

Query Lipstick for the current topmost window process id.

sailfish_device_proc_mapsC

Read or filter /proc//maps on a Sailfish OS device.

sailfish_device_lipstick_screenshotB

Ask Lipstick to save a screenshot on the device, optionally pulling it locally.

sailfish_device_touchC

Discover the touchscreen input device or inject tap/swipe events over SSH.

sailfish_device_touch_workflowC

Capture a Lipstick screenshot, optionally list touch inputs, then inject a tap or swipe.

sailfish_device_user_bus_callC

Run a typed dbus-send method call on the defaultuser session bus.

sailfish_device_user_session_commandA

Run a short command, limited to 15 seconds, with the configured Sailfish user-session D-Bus environment. Use sailfish_device_command_start for anything that may run longer.

sailfish_device_command_startA

Start a detached SSH command with the configured Sailfish user-session environment and immediately return a job id. Use this for GDB, tracing, and any device command that may exceed 15 seconds.

sailfish_device_command_statusA

List detached device command jobs or read one job's status. A bounded failure excerpt is included automatically; running logs are omitted by default.

sailfish_device_command_cancelB

Request cancellation of a detached device command and its process group.

sailfish_device_install_rpmB

Start a detached RPM copy/install transaction; use sailfish_build_status/cancel.

sailfish_device_restart_serviceC

Run systemctl start/stop/restart/status for a system or user service.

sailfish_device_app_launchA

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.

sailfish_device_browser_launchB

Stop stale browser state, launch Sailfish Browser with display/session env, and report topmost PID details.

sailfish_build_rpmB

Start an asynchronous RPM build. Ordinary local builds share mb2 snapshots; custom inputs or an explicit key use an isolated original target. paths.local_sdk defaults to the live installed SDK, with third-party coderus Docker-image fallback only for explicit named releases.

sailfish_build_preflightB

Validate and return a structured Sailfish RPM build plan without mutating the project.

sailfish_build_statusA

Read status and recent log output for asynchronous Sailfish RPM build jobs.

sailfish_build_cancelB

Request cancellation of a local asynchronous Sailfish RPM build job.

sailfish_android_build_hostsB

List configured remote Android/AppSupport build hosts.

sailfish_android_buildA

Start a remote Android/AppSupport build under nohup on the configured build host; project_dir must be configured for the host or supplied.

sailfish_android_build_statusA

List remote Android/AppSupport build jobs or read one job's status and recent log output.

sailfish_android_build_cancelC

Cancel a remote Android/AppSupport build after verifying its process identity.

sailfish_sdk_refresh_metadataB

Start a detached SDK metadata refresh; use sailfish_build_status/cancel.

sailfish_obs_resultsA

Read OBS results. Use wait_seconds for bounded mechanical monitoring instead of repeated model-driven status calls.

sailfish_obs_buildlogC

Fetch a build log from a configured OBS server or explicit API alias; defaults to the API nostream form.

sailfish_repo_statusB

Run git status --short --branch under the configured git root.

sailfish_repo_findC

Search a repo or subtree under the configured git root.

sailfish_spec_summaryC

Parse high-level metadata from a Sailfish RPM spec file.

sailfish_qml_find_translationsC

Find qsTrId and translator comments in QML files.

sailfish_qml_check_translator_ternariesC

Flag QML ternary qsTrId expressions that need branch-local comments.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Effective configurationResolved configuration including private host identifiers and local paths; credential files are not read.
Tool summaryNames and descriptions of exposed tools.

TDQS

B3.3/5.0

Scored across 35 tools

Disambiguation4/5

Tools are grouped by domain and most have clearly distinct purposes, such as local RPM build, Android build, OBS, device SSH commands, and QML translation checks. Some boundaries blur because sailfish_build_status/cancel are reused for multiple local async jobs despite the 'build' name, and device_user_session_command vs device_command_start require reading descriptions to distinguish short from long-running commands.

Naming Consistency4/5

All tool names use snake_case with a consistent sailfish_ prefix, which makes the set predictable. However, the suffix pattern is not uniformly verb_noun: sailfish_devices, sailfish_doctor, sailfish_spec_summary, and sailfish_obs_watch mix noun/state and action forms, though deviations are minor.

Tool Count3/5

35 tools is heavy for a single MCP server, even though the server spans several subdomains including device, build, Android, OBS, repo, SDK, spec, and QML. The breadth justifies many tools, but the surface is at the upper end and could likely be consolidated in places.

Completeness4/5

The tool set covers a wide lifecycle: build planning, local and Android builds, device inspection and command execution, OBS monitoring, SDK refresh, repo search, spec parsing, and QML translation checks. Minor gaps remain, such as RPM uninstall, explicit app stop/termination, git write operations, and signing/deployment workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues