Verified

Ssh Go MCP Server

Execute non-interactive SSH commands and SFTP transfers via a minimal Go binary.

Data last scanned today · Reviewed today

Overview

Ssh Go MCP Server provides a specialized interface for AI agents to interact with remote servers over SSH. By focusing on non-interactive command execution and SFTP file operations, it removes common attack vectors such as PTY access, privilege escalation tools, and port forwarding, limiting remote operations to a strictly defined, auditable set of actions. The server operates as a single static Go binary, eliminating external runtime dependencies like Node.js or Python. It leverages local SSH configurations, including existing ProxyJump setups and identity files, to maintain compatibility with your local environment while enforcing output caps to manage memory and token usage effectively.

Our verdict

This server carries a high risk level (30/100) and is not recommended for production environments in its current state. The security score reflects that it is community-maintained by a single contributor and has not yet undergone an independent editorial review, nor have the authentication or read-only modes been audited. It is best suited for local experimentation or developer environments where you are comfortable manually reviewing the code.

  • Single static binary with zero direct dependencies
  • No interactive shell, PTY, or privilege escalation tools
  • Supports standard OpenSSH configuration and ProxyJump
  • Configurable output size caps for command execution
  • High security risk score of 30/100
  • Single-contributor project with no external editorial review
  • Authentication mechanisms remain unverified

Tools

ToolDescriptionRisk
ssh_connectOpen a session (resolves ~/.ssh/config, incl. ProxyJump) and store it under an idmedium
ssh_disconnectClose a stored sessionmedium
ssh_execRun a command on a stored session; returns stdout, stderr, exit codehigh
ssh_quick_execConnect, run one command, disconnect (stateless)high
ssh_list_dirList a remote directory over SFTPlow
ssh_uploadUpload a local file over SFTPmedium
ssh_downloadDownload a remote file over SFTPlow

Compatibility

ClientLocalDockerRemoteRead-only
ChatGPT
Claude Desktop
Cursor
VS Code
Windsurf

Frequently asked questions

What configuration files does this server use for connections?

The server resolves connections using your local ~/.ssh/config file, respecting settings like HostName, User, Port, and IdentityFile.

How are SSH host keys handled?

Host keys are verified against your ~/.ssh/known_hosts file using accept-new semantics, meaning unknown hosts are automatically added while changed keys are rejected.

Can I limit which SSH tools the AI agent is allowed to use?

Yes, you can use the SSH_MCP_ENABLED_TOOLS environment variable to provide a comma-separated allow-list of the specific tools you want to expose.

How does the server handle command output that exceeds the size limit?

The server automatically truncates output exceeding the limit, returning the first 75% and the final 25% of the data along with a marker indicating how much was dropped.

How should I calculate the optimal output cap for my AI model?

You should size the SSH_MCP_MAX_OUTPUT_BYTES limit based on your model's total context window, typically using a ratio of approximately 1.7 bytes per token for numeric-heavy data or 4 bytes per token for text.

What system permissions or environment configurations are required for key access?

The server looks in ~/.ssh and /etc/ssh by default, but you can add additional directories by setting the SSH_MCP_ALLOWED_KEY_DIRS environment variable.

Alternatives

Badge

Ssh Go MCP Server security score, rated on RepoAI

Maintain this server? Add the live badge to your README.