ssh-utils logo

ssh-utils

by GrahamJenkins

ssh-utils is an MCP server that enables executing terminal commands on remote servers via SSH. It's designed for secure, key-based SSH command execution from development environments like Roo Code.

View on GitHub

Last updated: N/A

What is ssh-utils?

ssh-utils is a Model Context Protocol (MCP) server that allows you to execute terminal commands on a remote server via SSH. It exposes a tool called execute_ssh_command via the MCP protocol.

How to use ssh-utils?

  1. Place your ssh-utils-servers.json config file in one of the supported locations (current working directory, workspace root, or ~/.config/ssh-utils/). 2. Use the execute_ssh_command tool from Roo Code or another MCP client, specifying the command and optionally overriding connection parameters. The server will connect to the remote server using SSH and run the specified command, using key-based authentication.

Key features of ssh-utils

  • Secure SSH command execution

  • Key-based authentication only

  • Configuration via JSON file

  • MCP protocol integration

  • Overridable connection parameters

Use cases of ssh-utils

  • Automated server management tasks

  • Remote code deployment

  • Running scripts on remote machines

  • Integrating SSH commands into development workflows

FAQ from ssh-utils

What authentication methods are supported?

Only key-based SSH authentication is supported. Password-based authentication is explicitly prohibited for security reasons.

Where should I place the configuration file?

The ssh-utils-servers.json file can be placed in the current working directory, the workspace root, or the global config directory (~/.config/ssh-utils/).

Can I override the configuration file values?

Yes, any tool arguments (such as user, host, or server) will override the config file values.

What is the default SSH port?

The default SSH port is 22. You can specify a different port in the configuration file.

What happens if multiple profiles are present in the config?

The first profile is used by default. You can specify a profile by name to use a different one.