OctSSH
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OCTSSH_SHELL | No | Shell to use on Windows in serve mode (e.g., 'powershell') | |
| OCTSSH_SERVE_KEY | No | Fixed authentication key for serve mode (otherwise random) | |
| OCTSSH_SERVE_HOST | No | Host to listen on in serve mode (default: 127.0.0.1) | |
| OCTSSH_SERVE_PORT | No | Port to listen on in serve mode (default: 8787) | |
| OCTSSH_TOOL_PREFIX | No | Prefix for tool names to avoid collisions (e.g., 'us1_') |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| listA | List configured SSH hosts from local ssh_config. Optionally return cached extended fields. |
| infoA | Get cached (or refreshed) extended info for a machine via SSH. |
| execB | Execute a command on a machine (no sudo). |
| sudo-execB | Execute a command on a machine using passwordless sudo (sudo -n). |
| exec-asyncB | Execute a long-running command in background (remote screen session). |
| exec-async-sudoC | Execute a long-running command in background using passwordless sudo. |
| uploadA | Upload a file or directory to the remote machine. Refuses to overwrite unless confirm_code is provided after a conflict preview. |
| downloadA | Download a file or directory from the remote machine. Never overwrites local files; on conflict, you must choose a new local directory. |
| upload-asyncB | Async upload. Only creates a session if the transfer actually starts. Uses the same overwrite confirmation logic as upload. |
| download-asyncB | Async download. Only creates a session if the transfer actually starts. Never overwrites local files. |
| get-resultB | Get async command status; optionally tail last N lines from logs. |
| grep-resultC | Search async stdout/stderr logs by pattern. |
| write-stdinB | Write data to a running async session stdin. Works for exec-async sessions (remote screen). |
| cancelB | Terminate a running async session by session_id (signal is optional). |
| sleepA | Sleep for a duration (ms). |
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 15 tools
Most tools are clearly distinct: exec vs exec-async vs sudo variants separate sync/async and privilege. A few pairs could cause confusion, such as list vs info (both fetch host data) and get-result vs grep-result (both inspect async logs), but descriptions clarify their different purposes.
Tool names consistently use lowercase hyphenated words (exec-async, upload-async, get-result, write-stdin). However, the placement of 'sudo' varies: sudo-exec puts it first while exec-async-sudo puts it last, which is a minor inconsistency.
15 tools is well-scoped for an SSH server, covering synchronous/async execution, sudo variants, file transfer, session management, and host info. Each tool serves a clear purpose without feeling bloated or sparse.
The domain of remote SSH operations is fairly complete: exec, sudo, upload/download (sync and async), session status/log retrieval, and host listing. Minor gaps include no file-browsing or interactive shell, but core workflows are well covered.