多主机SSH管理工具

一个用于通过SSH管理和执行多台远程服务器命令的MCP服务器,支持连接池、认证验证和命令历史记录等功能。

  • by hl9020
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 hl9020/mcp-multi-ssh

使用说明

mcp多ssh

MCP服务器,用于通过SSH在多个远程服务器上管理和执行命令。

专为配合使用而设计 克劳德桌面版 以及其他MCP兼容客户端。

特性

  • 多主机SSH --配置和管理多个服务器连接
  • 连接池 --自动重新连接、保持活动、并发会话
  • CRUD用于连接 --在运行时创建、读取、更新、删除连接
  • 身份验证 --需要密码或私钥,防止无效配置
  • 命令历史记录 --使用时间戳和退出代码跟踪执行的命令
  • 密码屏蔽 --工具响应中从未暴露的敏感数据
  • 占地面积最小 --约500行,仅限SSH,无冗余

安装

克劳德桌面/Claude.ai

增添 claude_desktop_config.json:

窗户: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "mcp-multi-ssh": {
      "command": "npx",
      "args": ["-y", "mcp-multi-ssh"]
    }
  }
}

克劳德代码

claude mcp add mcp-multi-ssh -- npx -y mcp-multi-ssh

或添加到 .mcp.json 在项目根目录中:

{
  "mcpServers": {
    "mcp-multi-ssh": {
      "command": "npx",
      "args": ["-y", "mcp-multi-ssh"]
    }
  }
}

光标

增添 ~/.cursor/mcp.json (全球)或 .cursor/mcp.json (项目):

{
  "mcpServers": {
    "mcp-multi-ssh": {
      "command": "npx",
      "args": ["-y", "mcp-multi-ssh"]
    }
  }
}

帆板运动

增添 ~/.codeium/windsurf/mcp_config.json与上述JSON格式相同。

VS代码+GitHub副本

增添 .vscode/mcp.json 在您的工作空间中:

{
  "servers": {
    "mcp-multi-ssh": {
      "command": "npx",
      "args": ["-y", "mcp-multi-ssh"]
    }
  }
}

克莱恩

打开Cline->MCP服务器图标->编辑MCP设置,然后添加与Claude Desktop相同的JSON。

OpenAI Codex命令行界面

codex mcp add mcp-multi-ssh -- npx -y mcp-multi-ssh

泽德

添加到Zed settings.json (通过代理面板->设置):

{
  "context_servers": {
    "mcp-multi-ssh": {
      "command": {
        "path": "npx",
        "args": ["-y", "mcp-multi-ssh"]
      }
    }
  }
}

兼容性矩阵

工具 配置位置
克劳德桌面/Claude.ai claude_desktop_config.json
克劳德代码 .mcp.json
光标 .cursor/mcp.json
风帆冲浪 ~/.codeium/windsurf/mcp_config.json
VS代码+副本 .vscode/mcp.json
临床 MCP设置JSON
Continue.dev .continue/mcpServers/*.json
Zed settings.json
Codex CLI .codex/config.toml
Roo代码 MCP设置JSON
谷歌反重力 ~/.gemini/settings.json

本地安装

npm install -g mcp-multi-ssh

然后在 claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-multi-ssh": {
      "command": "mcp-multi-ssh"
    }
  }
}

配置

配置文件从以下位置加载(按顺序):

  1. 通过指定的路径 --config 旗帜
  2. ./config.json 在当前目录中
  3. ~/.mcp-multi-ssh/config.json

配置示例

{
  "ssh": {
    "enabled": true,
    "defaultTimeout": 60,
    "maxConcurrentSessions": 10,
    "keepaliveInterval": 5000,
    "keepaliveCountMax": 3,
    "readyTimeout": 30000,
    "connections": {
      "my-server": {
        "host": "example.com",
        "port": 22,
        "username": "deploy",
        "privateKeyPath": "/home/user/.ssh/id_rsa"
      },
      "db-server": {
        "host": "10.0.0.5",
        "port": 22,
        "username": "admin",
        "password": "secret"
      }
    }
  },
  "logging": {
    "enabled": true,
    "maxHistorySize": 1000
  }
}

要生成默认配置,请执行以下操作:

npx mcp-multi-ssh --init-config ~/.mcp-multi-ssh/config.json

工具

工具 说明
ssh_execute 在远程主机上执行命令
ssh_disconnect 关闭SSH连接
create_ssh_connection 向配置添加新连接
read_ssh_connections 列出所有已配置的连接
update_ssh_connection 修改现有连接
delete_ssh_connection 从配置中删除连接
get_command_history 查看最近的SSH命令历史记录

连接配置

每个连接都需要:

字段 必填 描述
host yes 主机名或IP地址
port 是 SSH端口
username 是 SSH用户名
password 其中之一 密码身份验证
privateKeyPath 私钥文件路径之一
keepaliveInterval no 覆盖全局保活(ms)
keepaliveCountMax 否 覆盖最大失败保活时间
readyTimeout 否 覆盖连接超时(ms)

至少 password 或 privateKeyPath 必须提供。

背景

这个项目始于 win-cli-mcp服务器 (现已存档/弃用)。它已被重建为一个专注于SSH的MCP服务器——所有Windows CLI功能都被删除,错误得到修复,代码库减少了50%以上。

许可证

麻省理工学院