17 KiB
← Home
API Reference
ssh-mcp exposes 37 MCP tools organized into 6 groups. Every tool accepts its parameters as a JSON object and returns a text response.
Core (5 tools)
Essential SSH operations: execute commands, transfer files, list servers.
ssh_execute
Execute a command on a remote SSH server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name from configuration |
command |
string | Yes | Command to execute |
cwd |
string | No | Working directory (uses server default if configured) |
timeout |
number | No | Timeout in ms (default: 120000, max: 300000) |
ssh_upload
Upload a file to a remote SSH server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
localPath |
string | Yes | Local file path |
remotePath |
string | Yes | Remote destination path |
ssh_download
Download a file from a remote SSH server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
remotePath |
string | Yes | Remote file path |
localPath |
string | Yes | Local destination path |
ssh_sync
Synchronize files and folders between local and remote via rsync.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
source |
string | Yes | Source path (prefix with local: or remote:) |
destination |
string | Yes | Destination path (prefix with local: or remote:) |
exclude |
string[] | No | Patterns to exclude |
dryRun |
boolean | No | Preview without making changes |
delete |
boolean | No | Delete files in destination not in source |
compress |
boolean | No | Compress during transfer (default: true) |
verbose |
boolean | No | Show detailed progress |
checksum |
boolean | No | Use checksum instead of timestamp comparison |
timeout |
number | No | Timeout in ms (default: 30000) |
ssh_list_servers
List all configured SSH servers. Takes no parameters.
Sessions (4 tools)
Persistent SSH sessions that maintain working directory state across commands.
ssh_session_start
Start a persistent SSH session.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
name |
string | No | Optional session name for identification |
ssh_session_send
Send a command to an existing SSH session.
| Parameter | Type | Required | Description |
|---|---|---|---|
session |
string | Yes | Session ID from ssh_session_start |
command |
string | Yes | Command to execute in the session |
timeout |
number | No | Timeout in ms (default: 30000) |
ssh_session_list
List all active SSH sessions.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | No | Filter by server name |
ssh_session_close
Close an SSH session.
| Parameter | Type | Required | Description |
|---|---|---|---|
session |
string | Yes | Session ID to close, or "all" to close all |
Monitoring (6 tools)
System health checks, service monitoring, process management, log tailing, and alerting.
ssh_health_check
Perform a comprehensive health check on a remote server (CPU, memory, disk, network, load average, uptime).
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
detailed |
boolean | No | Include detailed metrics |
ssh_service_status
Check the status of services on a remote server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
services |
string[] | Yes | Service names (e.g., ["nginx", "mysql", "docker"]) |
ssh_process_manager
List, inspect, or kill processes on a remote server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
action |
enum | Yes | list, kill, or info |
pid |
number | No | Process ID (for kill / info) |
signal |
enum | No | Signal: TERM, KILL, HUP, INT, QUIT |
sortBy |
enum | No | Sort by cpu or memory |
limit |
number | No | Max processes to return |
filter |
string | No | Filter by process name |
ssh_alert_setup
Configure health monitoring alert thresholds.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
action |
enum | Yes | set, get, or check |
cpuThreshold |
number | No | CPU usage percentage threshold |
memoryThreshold |
number | No | Memory usage percentage threshold |
diskThreshold |
number | No | Disk usage percentage threshold |
enabled |
boolean | No | Enable or disable alerts |
ssh_tail
Tail remote log files.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
file |
string | Yes | Path to the log file |
lines |
number | No | Initial lines to show (default: 10) |
follow |
boolean | No | Follow for new content (default: true) |
grep |
string | No | Filter lines with a grep pattern |
ssh_monitor
Monitor system resources (CPU, RAM, disk, network, processes) on a remote server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
type |
enum | No | overview, cpu, memory, disk, network, or process (default: overview) |
interval |
number | No | Update interval in seconds (continuous mode) |
duration |
number | No | Duration in seconds (continuous mode) |
Backup (4 tools)
Create, list, restore, and schedule backups for databases and files.
ssh_backup_create
Create a backup of a database or file set on a remote server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
type |
enum | Yes | mysql, postgresql, mongodb, files, or full |
name |
string | Yes | Backup name (e.g., production) |
database |
string | Cond. | Database name (required for db types) |
dbUser |
string | No | Database user |
dbPassword |
string | No | Database password |
dbHost |
string | No | Database host (default: localhost) |
dbPort |
number | No | Database port |
paths |
string[] | Cond. | Paths to backup (required for files type) |
exclude |
string[] | No | Patterns to exclude |
backupDir |
string | No | Remote backup directory (default: /var/backups/ssh-manager) |
retention |
number | No | Retention in days (default: 7) |
compress |
boolean | No | Compress backup (default: true) |
ssh_backup_list
List available backups on a remote server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
type |
enum | No | Filter by backup type |
backupDir |
string | No | Backup directory |
ssh_backup_restore
Restore from a backup on a remote server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
backupId |
string | Yes | Backup ID to restore |
database |
string | No | Target database name |
dbUser |
string | No | Database user |
dbPassword |
string | No | Database password |
dbHost |
string | No | Database host |
dbPort |
number | No | Database port |
targetPath |
string | No | Target path for file restores (default: /) |
backupDir |
string | No | Backup directory |
ssh_backup_schedule
Schedule automatic backups using cron on the remote server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
schedule |
string | Yes | Cron expression (e.g., 0 2 * * *) |
type |
enum | Yes | mysql, postgresql, mongodb, or files |
name |
string | Yes | Backup name |
database |
string | No | Database name (for db types) |
paths |
string[] | No | Paths to backup (for files type) |
retention |
number | No | Retention in days (default: 7) |
Database (4 tools)
Database operations for MySQL, PostgreSQL, and MongoDB.
ssh_db_dump
Dump a database to a file on the remote server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
type |
enum | Yes | mysql, postgresql, or mongodb |
database |
string | Yes | Database name |
outputFile |
string | Yes | Output file path on remote server |
dbUser |
string | No | Database user |
dbPassword |
string | No | Database password |
dbHost |
string | No | Database host (default: localhost) |
dbPort |
number | No | Database port |
compress |
boolean | No | Gzip output (default: true) |
tables |
string[] | No | Specific tables to dump (MySQL/PostgreSQL) |
ssh_db_import
Import a database from an SQL file on the remote server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
type |
enum | Yes | mysql, postgresql, or mongodb |
database |
string | Yes | Target database name |
inputFile |
string | Yes | Input file path on remote server |
dbUser |
string | No | Database user |
dbPassword |
string | No | Database password |
dbHost |
string | No | Database host (default: localhost) |
dbPort |
number | No | Database port |
drop |
boolean | No | Drop existing data before import (MongoDB, default: true) |
ssh_db_list
List databases, or tables/collections within a database.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
type |
enum | Yes | mysql, postgresql, or mongodb |
database |
string | No | Database name (omit to list all databases) |
dbUser |
string | No | Database user |
dbPassword |
string | No | Database password |
dbHost |
string | No | Database host (default: localhost) |
dbPort |
number | No | Database port |
ssh_db_query
Execute a read-only SELECT query against a database. Mutating statements (INSERT, UPDATE, DELETE, DROP, etc.) are rejected.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name |
type |
enum | Yes | mysql, postgresql, or mongodb |
database |
string | Yes | Database name |
query |
string | Yes | SQL SELECT query, or MongoDB find query |
collection |
string | No | MongoDB collection name |
dbUser |
string | No | Database user |
dbPassword |
string | No | Database password |
dbHost |
string | No | Database host (default: localhost) |
dbPort |
number | No | Database port |
Advanced (14 tools)
Deployment, sudo, tunnels, groups, aliases, hooks, profiles, and more.
ssh_execute_sudo
Execute a command with sudo on a remote server.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name or alias |
command |
string | Yes | Command to execute with sudo |
password |
string | No | Sudo password (masked in output) |
cwd |
string | No | Working directory |
timeout |
number | No | Timeout in ms (default: 30000) |
ssh_execute_group
Execute a command on a group of servers.
| Parameter | Type | Required | Description |
|---|---|---|---|
group |
string | Yes | Group name (e.g., production, all) |
command |
string | Yes | Command to execute |
strategy |
enum | No | parallel, sequential, or rolling |
delay |
number | No | Delay between servers in ms (for rolling) |
stopOnError |
boolean | No | Stop on first error |
cwd |
string | No | Working directory |
ssh_group_manage
Manage server groups (create, update, delete, list, add/remove servers).
| Parameter | Type | Required | Description |
|---|---|---|---|
action |
enum | Yes | create, update, delete, list, add-servers, remove-servers |
name |
string | No | Group name |
servers |
string[] | No | Server names |
description |
string | No | Group description |
strategy |
enum | No | Default execution strategy |
delay |
number | No | Default delay between servers |
stopOnError |
boolean | No | Default stop-on-error behavior |
ssh_deploy
Deploy files to a remote server with automatic permission handling and optional service restart.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name or alias |
files |
object[] | Yes | Array of { local, remote } file mappings |
options.owner |
string | No | File owner (e.g., user:group) |
options.permissions |
string | No | File permissions (e.g., 644) |
options.backup |
boolean | No | Backup existing files (default: true) |
options.restart |
string | No | Service to restart after deploy |
options.sudoPassword |
string | No | Sudo password if needed |
ssh_command_alias
Manage command aliases for frequently used commands.
| Parameter | Type | Required | Description |
|---|---|---|---|
action |
enum | Yes | add, remove, list, or suggest |
alias |
string | No | Alias name (for add/remove) |
command |
string | No | Command to alias (for add), or search term (for suggest) |
ssh_hooks
Manage automation hooks for SSH operations.
| Parameter | Type | Required | Description |
|---|---|---|---|
action |
enum | Yes | list, enable, disable, or status |
hook |
string | No | Hook name (for enable/disable) |
ssh_profile
Manage SSH Manager profiles for different project types.
| Parameter | Type | Required | Description |
|---|---|---|---|
action |
enum | Yes | list, switch, or current |
profile |
string | No | Profile name (for switch) |
ssh_connection_status
Check SSH connection pool status and manage connections.
| Parameter | Type | Required | Description |
|---|---|---|---|
action |
enum | Yes | status, reconnect, disconnect, or cleanup |
server |
string | No | Server name (for reconnect/disconnect) |
ssh_tunnel_create
Create an SSH tunnel (local port forwarding, remote port forwarding, or SOCKS proxy).
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | Yes | Server name or alias |
type |
enum | Yes | local, remote, or dynamic |
localHost |
string | No | Local bind address (default: 127.0.0.1) |
localPort |
number | Yes | Local port |
remoteHost |
string | No | Remote host (not needed for dynamic) |
remotePort |
number | No | Remote port (not needed for dynamic) |
ssh_tunnel_list
List active SSH tunnels.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
string | No | Filter by server name |
ssh_tunnel_close
Close an SSH tunnel. One of tunnelId or server must be provided.
| Parameter | Type | Required | Description |
|---|---|---|---|
tunnelId |
string | No | Tunnel ID to close |
server |
string | No | Close all tunnels for this server |
ssh_key_manage
Manage SSH host keys for security verification.
| Parameter | Type | Required | Description |
|---|---|---|---|
action |
enum | Yes | verify, accept, remove, list, or check |
server |
string | No | Server name (required for most actions) |
autoAccept |
boolean | No | Auto-accept new keys (use with caution) |
ssh_alias
Manage server aliases for easier access.
| Parameter | Type | Required | Description |
|---|---|---|---|
action |
enum | Yes | add, remove, or list |
alias |
string | No | Alias name (for add/remove) |
server |
string | No | Server name (for add) |
ssh_history
View SSH command history.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit |
number | No | Number of entries (default: 20) |
server |
string | No | Filter by server name |
success |
boolean | No | Filter by success/failure |
search |
string | No | Search in command strings |
Repo: ssh-mcp · MokoStandards
| Revision | Date | Author | Description |
|---|---|---|---|
| 1.0 | 2026-05-09 | Moko Consulting | Initial version |