Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TERMIUS_CONNECT_ALLOWNoRestricts which hosts connect_host may connect to. This only applies to connect_host and does not restrict access to existing sessions.

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
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_hostsA

List saved Termius hosts: label, address, port, group, username, auth type. Passwords and keys are never included. query filters by label/address/group.

connect_hostA

Get a tab for a SAVED Termius host (exact label from list_hosts). A tab that THIS session's connect_host opened earlier (list_terminal_sessions marks it "opened by agent: THIS session") and that nobody else has claimed is REUSED; otherwise a NEW TAB is opened (wait until connected, then claim). Tabs a human or another session opened are never reused implicitly. new_tab=true always opens a new tab. A tab claimed by another session is never taken: the call fails and says who holds it. Termius' own saved identity / key / jump hosts are used; no credential is read or passed here. Only saved hosts: no free-form address, no new window. A first-time host-key prompt is answered per TERMIUS_HOSTKEY (default: "ask", the fingerprint is reported back; a CHANGED key is never accepted). A password prompt is NOT answered: read_terminal and ask the human. dry_run=true only checks that the host and Termius' connect function are found. TERMIUS_CONNECT_ALLOW (comma separated labels) can restrict which hosts are allowed.

list_terminal_sessionsA

List terminal sessions open in Termius (SSH and local tabs): id prefix, name, protocol, address, connection state. Any of id prefix / name / address can be passed as session to the other tools.

claim_terminalA

Claim a Termius tab for this session. run_command / send_key / send_text refuse any tab this session has not claimed, so another agent cannot slip commands in between yours. Refused while another live session holds it. A claim ends with release_terminal, when this session's MCP process exits, or after 15 min with no input call. Prefer a tab of your own over one a human or another agent is using.

release_terminalB

Release a tab this session claimed. Release when your work on the tab is done.

read_terminalA

Read terminal text (ANSI stripped, blank runs collapsed). Default: last lines lines of the screen. scrollback=true reads the whole history (capped).

send_textA

Send printable text without Enter. A foreground program may act on any input. Use send_key('enter') to submit, or run_command to execute and collect output.

send_keyB

Send one control key: enter, tab, esc, backspace, ctrl-c, ctrl-d, ctrl-u, ctrl-l, ctrl-z, ctrl-r, up, down, left, right, q, y, n. Note 'enter' submits whatever is typed.

run_commandA

EXECUTE a shell command on the remote host in the open Termius session, wait for the prompt to return, and return only the command's output (echo and prompt removed). If it is still running or waiting for input at timeout, returns what it has so far with a status line; use read_terminal / send_key('ctrl-c') to follow up. The tab must be claimed by this session first (claim_terminal).

switch_terminalB

Activate an explicitly selected terminal and its containing tab; verify state.

close_terminalA

Close one claimed terminal session, never the whole app. Default refuses a busy/non-prompt terminal. force=true can interrupt work; use only when the user explicitly requests that. Verify actual removal, not just dispatch.

list_sftp_sessionsA

List currently connected SFTP panes by session ID, host and directory. Open Termius' SFTP view first. No credentials are returned.

sftp_transfer_statusA

Read retained native upload progress/error/completion by transfer ID. 100% progress or a disappeared queue row alone does not mean completed.

sftp_uploadA

Upload one local regular file through Termius' native SFTP transfer queue. Use the exact remote session ID from list_sftp_sessions, keep one pane on Local, and navigate the remote pane to remote_directory first. Overwrite dialogs stay in Termius for the human; this tool never approves them. Follows the native progress/error/end events. Timeout does NOT cancel; follow sftp_transfer_status with the returned ID, never blindly re-upload. Credential stores (~/.ssh, ~/.aws, keychains, ...) are refused; TERMIUS_UPLOAD_ROOTS can further limit uploads to listed directories.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target clearly distinct actions (connect/claim/release/read/close terminal, list hosts vs sessions vs SFTP panes). The only mild overlap is among send_key, send_text, and run_command, but their descriptions clearly delineate control keys vs raw text vs execute-and-collect-output. Claim/release/switch are similarly well separated.

Naming Consistency4/5

Nearly all tools follow a verb_noun pattern (list_hosts, connect_host, claim_terminal, run_command, sftp_upload). The lone deviation is sftp_transfer_status, which is a noun-style status read rather than a verb-led name. Minor inconsistency, still highly readable.

Tool Count5/5

14 tools is well within the ideal 3-15 range and each tool maps to a concrete lifecycle step (discover, connect, claim, interact, read, close) or an SFTP operation. No redundant or filler tools are apparent.

Completeness4/5

The terminal lifecycle is thoroughly covered (hosts, sessions, claim/read/send/run/switch/close). SFTP is only half-covered: upload and status exist but there is no download or directory-listing tool, which agents would have to work around (e.g. via run_command).

Maintenance

ActivityMaintained
ResponsivenessNo issues