Termius MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TERMIUS_CONNECT_ALLOW | No | Restricts 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_hostsA | List saved Termius hosts: label, address, port, group, username, auth type.
Passwords and keys are never included. |
| 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. |
| 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 |
| 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 |
| 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 |
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
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.
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.
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.
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).