@honwee/ssh-mcp-server
v1.1.0
Published
MCP server for efficient SSH remote connection and operations management
Maintainers
Readme
SSH MCP Server
高效的 SSH 远程运维 MCP 服务。让 AI 工具通过 MCP 协议管理 SSH 连接、执行命令、传输文件。
功能
| Tool | 说明 |
|------|------|
| ssh_connect | 建立 SSH 连接(支持跳板机) |
| ssh_disconnect | 断开连接 |
| ssh_exec | 执行单条命令 |
| ssh_exec_script | 执行多行脚本 |
| sftp_read | 读取远程文件 |
| sftp_write | 写入远程文件 |
| sftp_list | 列出远程目录 |
| ssh_status | 查看所有连接状态 |
| ssh_history | 查询操作历史日志 |
| ssh_analyze | 一键诊断远程服务器 |
| ssh_logs | 日志查询与增量监控(file/journalctl/docker) |
| ssh_host_add | 保存服务器配置(支持备注和标签) |
| ssh_host_remove | 删除已保存的服务器 |
| ssh_host_list | 列出所有已保存的服务器 |
| ssh_host_update | 更新服务器备注/标签(AI 知识积累) |
核心特性
- 连接池管理 — 持久化连接,避免重复建连
- 跳板机支持 — 通过 jump host 连接内网服务器
- 多认证方式 — 密码 / 私钥
- SFTP 文件操作 — 读写文件、浏览目录
- 空闲超时清理 — 30 分钟无活动自动断开
- 多行脚本执行 — 通过
bash -s执行复杂脚本 - 持久化操作日志 — 所有操作记录到
~/.ssh-mcp/logs/operations.jsonl,支持 AI 溯源 - 一键服务器诊断 — 系统信息、资源、网络、Docker、GPU 全面检查
安装
npm install -g @honwee/ssh-mcp-server或者直接通过 npx 使用(无需全局安装):
npx @honwee/ssh-mcp-server配置
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ssh": {
"command": "npx",
"args": ["-y", "@honwee/ssh-mcp-server"]
}
}
}Cursor
在 Cursor Settings → MCP 中添加:
{
"mcpServers": {
"ssh": {
"command": "npx",
"args": ["-y", "@honwee/ssh-mcp-server"]
}
}
}Gemini CLI / Antigravity
在 settings.json 中添加:
{
"mcpServers": {
"ssh": {
"command": "npx",
"args": ["-y", "@honwee/ssh-mcp-server"]
}
}
}使用示例
直连服务器
1. ssh_connect(host="192.168.1.100", username="root", password="xxx", alias="web-server")
2. ssh_exec(connectionId="web-server", command="uptime")
3. ssh_exec(connectionId="web-server", command="df -h")
4. sftp_list(connectionId="web-server", remotePath="/var/log")
5. sftp_read(connectionId="web-server", remotePath="/etc/nginx/nginx.conf")
6. ssh_disconnect(connectionId="web-server")通过跳板机连接
ssh_connect(
host="10.0.0.50",
username="deploy",
privateKey="-----BEGIN OPENSSH PRIVATE KEY-----\n...",
alias="internal-db",
jumpHost={
host="bastion.example.com",
username="admin",
password="xxx"
}
)执行多行脚本
ssh_exec_script(
connectionId="web-server",
script="#!/bin/bash\necho '--- Disk Usage ---'\ndf -h\necho '--- Memory ---'\nfree -h\necho '--- Top Processes ---'\nps aux --sort=-%mem | head -10"
)License
MIT
