Mcp Remote Ssh

by faizbawa

285 downloads
Not rated
GitHub

About

MCP server giving AI agents full SSH access with secret-safe environment variable injection. Supports persistent sessions, structured command execution, SFTP file transfer, port forwarding, and automatic output redaction that prevents secrets from reaching the LLM.

Details

Author
faizbawa
Downloads
285
Categories
Developer Tools, Infrastructure, AI, Security

- Secret-safe environment variable injection
- Persistent SSH sessions
- Structured command execution
- SFTP file transfer
- Port forwarding
- Automatic output redaction

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Mcp Remote Ssh
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

ssh_connect

Connect to a remote host via SSH. Returns a session_id for use with all other tools. Supports password and key-based authentication.

ssh_list_sessions

List all active SSH sessions with their connection status and details. Returns: List of session info dicts.

ssh_close_session

Close an SSH session and release all its resources (shell, SFTP, port forwards). WARNING: this kills any running processes in the session.

ssh_execute

Execute a command on the remote host and return structured output. Each call runs in an independent exec channel -- no state is shared between calls (use ssh_shell_* tools for persistent state). If secrets have been loaded via ssh_load_env_file, they are automatically injected as environment variables for this command.

ssh_sudo_execute

Execute a command with sudo on the remote host. If the user already has passwordless sudo, leave sudo_password empty. If secrets have been loaded via ssh_load_env_file, they are automatically injected as environment variables for this command.

ssh_forward_port

Create an SSH port forward (local -> remote). Connections to 127.0.0.1:local_port will be tunneled through SSH to remote_host:remote_port. If local_port is 0, a random available port is chosen.

ssh_list_forwards

List all active port forwards for an SSH session.

ssh_close_forward

Close a specific port forward.

ssh_load_env_file

Load environment variables from a LOCAL file (on the machine running this MCP server) into the remote SSH session. The file is read from the local filesystem -- it does NOT need to exist on the remote host. Variable VALUES are never returned to the caller; only variable names are confirmed. Loaded values are: 1. Registered for automatic redaction -- any subsequent tool output (ssh_execute, ssh_shell_send, ssh_shell_read, ssh_read_remote_file) that contains a secret value will have it replaced with '***'. 2. Exported into the remote shell (if open) via builtins, avoiding exposure in the process tree on the remote host.

ssh_clear_secrets

Clear all loaded secrets from the redaction registry. Secrets will no longer be redacted from tool output. Does NOT unset the environment variables from the remote shell.

ssh_upload_file

Upload a local file to the remote host via SFTP.

ssh_download_file

Download a file from the remote host to the local machine via SFTP.

ssh_read_remote_file

Read a text file on the remote host and return its contents. For large files, use max_bytes to limit the amount read.

ssh_write_remote_file

Write text content to a file on the remote host via SFTP.

ssh_list_remote_dir

List files and directories at a path on the remote host via SFTP.

ssh_shell_open

Open a persistent interactive shell on the SSH session. The shell preserves working directory, environment variables, and running processes across multiple send/read calls. Ideal for screen/tmux, long builds, etc. If a shell is already open, this is a no-op (returns existing shell info). If secrets have been loaded via ssh_load_env_file, they are automatically injected into the new shell.

ssh_shell_send

Send text to the interactive shell. By default appends Enter (newline) and waits briefly to capture output.

ssh_shell_read

Read the current content of the interactive shell buffer. Use this to poll for output from long-running commands without sending anything.

ssh_shell_send_control

Send a control character to the interactive shell. Common keys: "c" for Ctrl+C (interrupt), "d" for Ctrl+D (EOF), "z" for Ctrl+Z (suspend), "l" for Ctrl+L (clear screen), "a" for Ctrl+A (screen prefix).

ssh_shell_wait

Wait for the shell output to contain a specific pattern, or for the output to stabilize (no new output for two poll intervals). Useful for waiting on long-running commands to complete.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mcp remote ssh": {
            "remote-ssh": {
                "command": "uvx",
                "args": [
                    "mcp-remote-ssh"
                ]
            }
        }
    }
}

McpServers

{
    "remote-ssh": {
        "command": "uvx",
        "args": [
            "mcp-remote-ssh"
        ]
    }
}

MCP server giving AI agents full SSH access with secret-safe environment variable injection. Supports persistent sessions, structured command execution, SFTP file transfer, port forwarding, and automatic output redaction that prevents secrets from reaching the LLM.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.