Expand description
SSH MCP Server - A Model Context Protocol server for remote SSH command execution
This crate provides an MCP server that allows executing commands on remote Linux
systems via SSH. It supports both password and key-based authentication, as well
as privilege elevation via su and sudo.
§Features
- Execute shell commands on remote SSH servers (
shelltool) - Support for
sudocommand execution with password (sudo_shelltool) - Persistent SSH connection with auto-reconnect
- Configurable command timeout
- Command length limits for safety
§MCP Tools
shell- Execute a shell command on the remote SSH serversudo_shell- Execute a command with sudo privileges (can be disabled with--disable-sudo)check_process- Monitor background commands and read their local logstransfer- Transfer files and directories over SSHread- Read a remote UTF-8 file with preview/head/tail/full modesapply_patch- Create, update, or delete one remote UTF-8 text filesudo_apply_patch- Apply an exact remote file patch under sudo (can be disabled with--disable-sudo)
§Example Usage (CLI)
ssh-mcp --host=192.168.1.100 --user=admin --password=secret§Example Usage (MCP Inspector)
npx @modelcontextprotocol/inspector ./target/release/ssh-mcp -- \
--host=YOUR_HOST --user=root --password=passRe-exports§
pub use config::Args;pub use config::Config;pub use error::Result;pub use error::SshMcpError;pub use server::SshMcpServer;pub use ssh::CommandOutput;pub use ssh::HostKeyCheckMode;pub use ssh::SshConfig;pub use ssh::SshConnectionManager;pub use ssh::SshHandler;pub use ssh::escape_command_for_shell;pub use ssh::escape_for_shell;pub use ssh::escape_for_timeout_wrapper;pub use ssh::sanitize_command;pub use ssh::sanitize_password;pub use ssh::wrap_command_with_timeout;pub use ssh::wrap_sudo_command;pub use tools::CheckProcessParams;pub use tools::ExecParams;pub use tools::SudoExecParams;
Modules§
- background
- Local background job state + log spooling (Phase 1 scaffold).
- config
- Configuration and CLI argument parsing for SSH MCP Server
- error
- Error types for SSH MCP Server
- logging
- Logging initialization and configuration
- server
- MCP Server implementation
- ssh
- SSH connection management module
- tools
- MCP Tools module
- transfer
- File and directory transfer tool support.