MCP SSH Session
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| execute_command | Execute a command on an SSH host using a persistent session. |
| list_sessionsA | List all active SSH sessions. |
| close_sessionB | Close a specific SSH session. |
| close_all_sessionsB | Close all active SSH sessions. |
| read_fileA | Read a remote file over SSH. Falls back to sudo cat if permission denied. |
| write_fileC | Write content to a remote file over SSH. |
| execute_command_asyncC | Execute a command asynchronously. Returns a command ID. |
| get_command_statusC | Get the status and output of an async command. |
| interrupt_command_by_idB | Interrupt a running async command by sending Ctrl+C. |
| list_running_commandsA | List all currently running async commands. |
| list_command_historyC | List recent command history. |
| send_inputC | Send input to a running async command. |
| send_input_by_sessionC | Send input to the active shell for a session. |
| read_screenC | Read the terminal screen state (requires MCP_SSH_INTERACTIVE_MODE=1). |
| send_keysC | Send special keys to a session. |
| execute_command_enhancedC | Execute a command with auto timeout extension and streaming. |
| get_session_diagnosticsC | Get comprehensive diagnostics for an SSH session. |
| reset_session_promptC | Reset and recapture prompt detection. |
| get_connection_health_reportB | Get health report for all active SSH connections. |
| get_command_status_enhancedC | Get enhanced status with detailed metrics. |
| get_performance_metricsC | Get performance metrics. |
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 20 tools
Most tools have distinct purposes, but there is some overlap between execute_command_async and execute_command_enhanced, and between send_input, send_input_by_session, and send_keys. The descriptions help differentiate them.
The naming follows a consistent verb_noun pattern in snake_case (e.g., close_session, execute_command_async), but minor inconsistencies exist like 'close_all_sessions' vs 'close_session' and 'send_keys' breaking the verb_noun pattern.
20 tools is on the higher side but appropriate for the server's scope, covering session management, command execution, file operations, and diagnostics. Each tool serves a clear purpose.
The tool set covers core SSH session management and file read/write, but lacks file deletion, directory listing, and an explicit session creation tool (sessions may be implicit). The command execution variants are redundant, leaving minor gaps.