Token导航 LogoToken导航TokenDH.com
MCP Ssh Multi logo
AI代理stdio官方级别未说明来源级核验

MCP Ssh Multi

MCP Server

一个通过AI助手管理多个SSH服务器的工具,提供远程命令执行、文件操作和系统监控等功能。

工具数

11

提示词数

0

GitHub Stars

0

资源数

0
文件操作PythonClaude系统监控Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

gilberth

提供方

gilberth

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mcp-ssh-multi

详细介绍

mcp-ssh多功能

MCP服务器,用于通过AI助手管理多个SSH服务器。提供11个用于远程命令执行、文件操作和系统监控的工具。

特性

  • 多服务器管理 --从单个YAML文件配置和管理多个SSH服务器
  • 连接池 --使用每台服务器锁自动重用连接,并在过时的连接上重试
  • 11个MCP工具 --执行命令、传输文件、读/写文件、尾日志、列表进程
  • 两次运输 --stdio(用于本地MCP客户端)和可流式传输的http(用于网络/远程)
  • Cloudflare隧道兼容 --部署在隧道后面以进行远程访问
  • MCP工具注释 --破坏性、只读、幂等和开放世界操作的提示
  • MCP资源ssh://servers 用于列出已配置服务器的资源
  • 分页 --目录列表支持 limit/offset 对于大型目录
  • 输入验证 --路径和过滤器清理以防止命令注入
  • 结构化错误 --与代码、消息和建议一致的错误响应

安装

使用紫外线(推荐)

uv tool install mcp-ssh-multi

使用pip

pip install mcp-ssh-multi

使用uvx(一次拍摄)

uvx --from mcp-ssh-multi ssh-mcp

来源

git clone https://github.com/gilberth/mcp-ssh-multi.git
cd mcp-ssh-multi
uv sync

配置

1.SSH服务器(SSH_Servers.yaml)

创建一个 ssh_servers.yaml 包含服务器定义的文件:

servers:
  proxmox:
    host: 192.168.1.100
    port: 22
    username: root
    key_file: ~/.ssh/id_rsa
    description: "Proxmox VE hypervisor"

  truenas:
    host: 192.168.1.101
    port: 22
    username: root
    password: "my-password"  # or use key_file
    description: "TrueNAS storage server"

2.环境变量(.env)

复制 .env.example.env 并自定义:

cp .env.example .env
变量默认值描述
SSH_SERVERS_FILEssh_servers.yaml服务器配置路径
SSH_TIMEOUT30默认命令超时(秒)
LOG_LEVELINFO日志记录级别
MCP_PORT8086HTTP服务器端口
MCP_SECRET_PATH/mcpHTTP端点路径

用法

stdio模式(本地MCP客户端)

ssh-mcp

或者使用uvx:

uvx --from mcp-ssh-multi ssh-mcp

HTTP模式(网络/远程MCP客户端)

ssh-mcp-web

服务器将监听 http://0.0.0.0:8086/mcp 默认情况下。

MCP客户端配置

添加到您的MCP客户端配置中(例如,Claude Desktop):

{
  "mcpServers": {
    "ssh": {
      "command": "uvx",
      "args": ["--from", "mcp-ssh-multi", "ssh-mcp"],
      "env": {
        "SSH_SERVERS_FILE": "/path/to/ssh_servers.yaml"
      }
    }
  }
}

对于HTTP模式:

{
  "mcpServers": {
    "ssh": {
      "url": "http://localhost:8086/mcp"
    }
  }
}

工具参考

连接管理

工具说明
ssh_list_servers列出所有已配置的服务器及其连接状态
ssh_disconnect断开与特定服务器的连接

命令执行

工具说明
ssh_execute在远程服务器上执行shell命令

文件操作

工具说明
ssh_upload将本地文件上载到远程服务器
ssh_download从远程服务器下载文件
ssh_file_exists检查服务器上是否存在文件/目录
ssh_list_dir列出远程目录的内容(支持分页 limit/offset)
ssh_read_file从远程服务器读取文本文件
ssh_write_file将内容写入远程服务器上的文件

系统监控

工具说明
ssh_tail_log在远程服务器上跟踪日志文件
ssh_process_list列出正在运行的进程(可选筛选)

MCP资源

服务器公开以下MCP资源:

资源URI描述
ssh://servers具有连接状态的所有已配置SSH服务器的列表

更新日志

v0.2.0版本

  • 每台服务器连接锁 --将全局锁替换为每服务器异步锁,以提高并发性
  • 连接重试 --在过时/丢失的SSH连接上自动重试一次
  • MCP工具注释 --已添加 destructiveHint, readOnlyHint, idempotentHint, openWorldHint 所有工具
  • MCP资源 --已添加 ssh://servers 资源端点
  • 目录分页ssh_list_dir 现在支持 limitoffset 参数
  • 输入验证 --路径净化 ssh_tail_log 和过滤器验证 ssh_process_list
  • 结构化错误 --与一致的错误格式 ErrorCode 所有工具的枚举
  • 动态版本控制 --版本来源于 importlib.metadata 而不是硬编码字符串
  • 测试套件 --添加了分页、重试逻辑、输入验证和版本一致性测试

v0.1.1

  • 首次公开发布,包含11个SSH工具、stdio和HTTP传输

生产部署(LXC+Cloudflare隧道)

在Proxmox LXC容器上的Cloudflare隧道后面运行mcp-ssh-multi作为systemd服务的完整部署指南。

先决条件

  • Proxmox LXC容器(Debian 12/13)
  • 具有域的Cloudflare帐户
  • uvcloudflared 安装在LXC上

1.安装依赖项

# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb \
  -o cloudflared.deb && dpkg -i cloudflared.deb

2.创建SSH服务器配置

mkdir -p /ssh-mcp
cat > /ssh-mcp/ssh_servers.yaml .json`。如果你以后需要找到它,请运行 `cloudflared tunnel list`.

Replace with the UUID from "cloudflared tunnel create" output

cat > /root/.cloudflared/config.yml credentials-file: /root/.cloudflared/.json

ingress: - hostname: ssh-mcp.yourdomain.com service: http://localhost:8086 - service: http_status:404 EOF


### 5.创建systemd服务

**mcp-ssh多服务:**

cat > /etc/systemd/system/mcp-ssh-multi.service << 'EOF' [Unit] Description=MCP SSH Multi Server After=network.target

[Service] Type=simple Environment=SSH_SERVERS_FILE=/ssh-mcp/ssh_servers.yaml Environment=MCP_SECRET_PATH=/your-secret-path ExecStart=/root/.local/bin/uvx --from mcp-ssh-multi@latest ssh-mcp-web Restart=always RestartSec=5 StandardOutput=journal StandardError=journal

[Install] WantedBy=multi-user.target EOF


**cloudflared服务:**

cloudflared service install


**启用并启动以下两项:**

systemctl daemon-reload systemctl enable --now mcp-ssh-multi systemctl enable --now cloudflared


### 6.验证

Check services

systemctl status mcp-ssh-multi systemctl status cloudflared

Test the endpoint

curl -s -X POST "https://ssh-mcp.yourdomain.com/your-secret-path" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'


### 7.配置您的MCP客户端

{ "mcpServers": { "ssh": { "type": "remote", "url": "https://ssh-mcp.yourdomain.com/your-secret-path" } } }


### 服务管理

View logs

journalctl -u mcp-ssh-multi -f journalctl -u cloudflared -f

Restart services

systemctl restart mcp-ssh-multi systemctl restart cloudflared


### 环境变量

|变量|默认值|描述|
|----------|---------|-------------|
| `SSH_SERVERS_FILE` | `ssh_servers.yaml` |服务器配置路径|
| `SSH_TIMEOUT` | `30` |默认命令超时(秒)|
| `LOG_LEVEL` | `INFO` |日志记录级别|
| `MCP_PORT` | `8086` |HTTP服务器端口|
| `MCP_SECRET_PATH` | `/mcp` |HTTP端点路径(使用机密值)|

## 发展

Install with dev dependencies

uv sync --group dev

Run linting

uv run ruff check src/ tests/ --fix uv run ruff format src/ tests/

Run type checking

uv run mypy src/

Run tests

uv run pytest tests/ -v


## 许可证

麻省理工学院

目录标签

目录标签

文件操作PythonClaude系统监控SSH管理本地部署远程命令执行AI助手

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP