SSH MCP 是一个在本地主机上运行的 MCP 服务器,提供管理并与远程 SSH 主机交互的能力。它支持将主机组织成组,并同时在多个主机上执行命令。
检出仓库:
$ git clone https://github.com/blakerouse/ssh-mcp
构建二进制文件:
$ go build .
更新 Claude Desktop 的 MCP 配置:
{
"mcpServers": {
"ssh": {
"command": "<PATH_TO_BUILT_BINARY>"
}
}
}
重启 Claude Desktop
向组中添加主机(支持多种格式 - ssh:// 前缀是可选的):
将主机添加到生产组,连接地址为 10.0.1.5
将名为 web01 的主机添加到生产组,连接地址为 user@10.0.1.5:2222
将主机添加到测试组,连接地址为 user:pass@10.0.1.10
列出所有组:
显示所有组
列出所有主机:
列出我所有的主机
列出特定组中的主机:
显示生产组中的主机
获取组内所有主机的操作系统信息:
显示生产组的操作系统信息
获取特定主机的操作系统信息:
显示生产组:web01 和 生产组:web02 的操作系统信息
在组内的所有主机上运行命令:
在生产组上运行 "uptime"
检查测试组的磁盘空间
在特定主机上运行命令:
在生产组:web01 和 生产组:web02 上运行 "systemctl status nginx"
在 30 秒内完成的命令会立即返回结果。较长的命令会自动移到后台:
在生产组上运行 "apt-get update && apt-get upgrade -y"
# 如果这需要 >30 秒,您将得到一个命令ID以供稍后检查
强制命令立即在后台运行:
在生产组上以后台方式运行 "apt-get update && apt-get upgrade -y"
检查后台命令的状态:
显示命令 abc-123-def 的状态
显示最后一个命令的状态
列出所有后台命令:
列出所有后台命令
显示所有正在运行的命令
取消正在运行的命令:
取消命令 abc-123-def
停止正在运行的命令 abc-123-def
更新缓存的操作系统信息:
更新生产组的操作系统信息
刷新测试组:db01 的操作系统信息
移除主机:
移除生产组:web01
从测试组移除主机 web02