6 days ago
A Better Mcp ssh Server.
support host in ~/.ssh/config ,Don't need add every host to mcp config file.
Give host to AI such as:
use ssh mcp connect my_ssh_server, check disk space.
Overview
Project Overview
mcpssh is a Go-based Model Context Protocol (MCP) server designed to facilitate SSH session management for AI agents. It enables an AI to interact with remote servers via SSH by creating persistent sessions, sending commands, and reading outputs through a pseudo-terminal (PTY) interface.
A Better mcp ssh Server.
- support host in
~/.ssh/config,Don't need add every host to mcp config file. - Give host to AI such as:
use ssh mcp connect my_ssh_server, check disk space.
Architecture & Key Components
The project consists of a single main file mcpssh.go which defines the MCP server and its tools.
Core Tools
start_session: Initiates a new SSH connection to a specified host using a PTY. Returns asession_id.interact_session: Sends input to and reads output from an active SSH session. This allows for interactive shell usage (e.g., handling prompts, running scripts).close_session: Terminates an active SSH session and cleans up resources.
Dependencies
github.com/mark3labs/mcp-go: MCP server SDK.github.com/creack/pty: PTY management for interactive SSH sessions.github.com/google/uuid: Session ID generation.
Building and Running
Prerequisites
- Go 1.25.0 or later.
- ssh installed on system. I'm using it in macos.
~/.ssh/configfile
Build Command
go build -o mcpssh
Install
codex install use cmd args
codex mcp add mcpssh -- /your_path_to_mcpssh/mcpssh
gemini edit file ~/.gemini/settings.json
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["chrome-devtools-mcp@latest"]
},
"ssh": {
"command": "/your_path_to_mcpssh/mcpssh",
"args": []
}
},
Server Config
{
"mcpServers": {
"ssh": {
"command": "/your_path_to_mcpssh/mcpssh",
"args": []
}
}
}