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
| Tool | Description | Risk |
|---|---|---|
| ssh_connect | Open a session (resolves ~/.ssh/config, incl. ProxyJump) and store it under an id | medium |
| ssh_disconnect | Close a stored session | medium |
| ssh_exec | Run a command on a stored session; returns stdout, stderr, exit code | high |
| ssh_quick_exec | Connect, run one command, disconnect (stateless) | high |
| ssh_list_dir | List a remote directory over SFTP | low |
| ssh_upload | Upload a local file over SFTP | medium |
| ssh_download | Download a remote file over SFTP | low |
Compatibility
| Client | Local | Docker | Remote | Read-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
Maintain this server? Add the live badge to your README.