mcpField
S
Ssh Mcp Server

Ssh Mcp Server

本地服务
github.com/NikolaNddTesla开发工具1122 周前更新

关于 Ssh Mcp Server

Ssh Mcp Server 是通过 SSH 管理远程机器的 MCP 服务,面向运维人员及 AI 助手。它支持多服务器命令操作,并通过 SFTP 传输文件,避免文件内容进入 AI 上下文。

主要功能

  1. 01管理多个 SSH 连接
  2. 02运行远程 Shell 命令
  3. 03通过 SFTP 传输文件和目录
  4. 04跟踪后台传输进度
  5. 05配置 SOCKS 代理和跳板机
  6. 06支持密码、密钥、Agent 或 OTP 认证

适用场景

  1. 01部署构建产物并重启远程服务
  2. 02检查服务器状态和日志
  3. 03以后台方式传输大文件
  4. 04通过代理或跳板机访问内网主机

MCP 相关

向 MCP 客户端提供 SSH 连接管理、远程命令执行、文件操作和代理管理工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ssh-mcp-server-nikolanddtesla": {
"command": "npx",
"args": [
"-y",
"@nl4ever/sshmcp"
]
}
}
}
启动命令npx -y @nl4ever/sshmcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@nl4ever/sshmcp1.2.1

工具

21

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

@nl4ever/sshmcp

npm version MCP Registry License: MIT

中文文档

让 AI 管理你的远程服务。 一个模型上下文协议(MCP)服务,为 AI 助手提供完整的 SSH 访问权限——通过自然对话执行命令、传输文件并同时管理多台服务。

You:   "Deploy the latest build to production server"
AI:    connects → uploads build → restarts service → verifies status

功能特性

  • 21 个工具 — 连接、执行、上传、下载、写入文件等
  • 连接池 — 同时操作多台服务,每条命令都带有 server_id
  • 零令牌文件传输 — 基于 SFTP 路径传输,文件内容不会进入 AI 上下文
  • 目录上传 — 自动 tar.gz 压缩 → 上传 → 远程解压(适合快速传输大量小文件)
  • 异步传输 + 进度 — 在后台传输大文件,并实时跟踪进度
  • 快速连接 — 无需保存配置即可建立临时连接,并返回 host:port 作为临时 ID
  • SOCKS4/5 代理 — 支持为每个连接单独配置代理
  • 跳板服务 — 通过 SSH ProxyJump 访问堡垒机/网关
  • 多种认证方式 — 密码、私钥、ssh-agent、键盘交互(OTP/2FA)

快速开始

全局安装
npm install -g @nl4ever/sshmcp
添加到 Claude Code
claude mcp add sshmcp sshmcp
添加到 Claude Desktop

编辑 claude_desktop_config.json:

{
  "mcpServers": {
    "sshmcp": {
      "command": "npx",
      "args": ["-y", "@nl4ever/sshmcp"]
    }
  }
}
添加到 Cursor

前往 Settings → MCP Servers → Add:

{
  "sshmcp": {
    "command": "npx",
    "args": ["-y", "@nl4ever/sshmcp"]
  }
}

工具概览

连接管理
工具描述
list_servers列出所有已配置的服务和活动连接
get_server查看服务配置详情
add_server添加/更新服务配置(密码、密钥、Agent、OTP)
update_server修改服务配置(只需传入要更改的字段)
delete_server移除服务
rename_server重命名服务 ID
connect手动连接(通常无需使用,工具会自动连接)
quick_connect临时连接,返回 host:port 作为 ID
disconnect断开指定服务或所有连接
test_connection测试连接,不影响现有连接
命令执行
工具描述
execute在远程服务上运行 Shell 命令(可配置超时)
文件操作
工具描述
read_file读取远程文件内容(可选行范围)
write_file将文本内容写入远程文件
upload_file将本地文件上传到远程服务(支持异步模式)
upload_directory上传目录,自动压缩 → 传输 → 解压
download_file将远程文件下载到本地(支持异步模式)
download_directory下载目录,远程压缩 → 传输 → 本地解压
transfer_status查看异步传输进度(大小/速度/预计剩余时间)
代理管理
工具描述
list_proxies列出所有 SOCKS 代理预设
add_proxy添加 SOCKS4/5 代理预设
delete_proxy移除代理预设

连接池:多服务操作

所有操作工具都需要 server_id 参数。连接池会自动管理连接,无需手动连接/断开:

AI: execute(server_id="prod", command="nginx -s reload")         ← auto-connects to prod
AI: execute(server_id="dev", command="tail -f /var/log/app.log") ← auto-connects to dev, prod stays
AI: execute(server_id="prod", command="curl localhost")           ← reuses prod connection

对于临时服务,可使用 quick_connect,它会返回 host:port 作为 ID:

AI: quick_connect(host="1.2.3.4", username="root", password="***")
→ "Connected: [email protected]:22, use server_id="1.2.3.4:22""

AI: execute(server_id="1.2.3.4:22", command="df -h")
AI: disconnect(server_id="1.2.3.4:22")

异步传输(大文件)

对于大文件,可启用后台传输模式,避免操作阻塞:

AI: upload_file(server_id="prod", local_path="big.tar.gz", remote_path="/data/", async_transfer=true)
→ "Background upload started: tf_1"

AI: transfer_status("tf_1")
→ "🔄 Uploading: 638.2 MB / 1.2 GB (53.2%) — 12.4 MB/s, ETA 46s"

AI: transfer_status("tf_1")
→ "✅ Upload complete: 1.2 GB, 98s, 12.3 MB/s"

小文件默认使用同步模式,无需配置。

连接示例

密码认证
AI: add_server(server_id="prod", name="Production", host="10.0.0.1", username="deploy", password="***")
AI: execute(server_id="prod", command="systemctl status nginx")
私钥认证
AI: add_server(server_id="aws", name="AWS EC2", host="ec2-xx.compute.amazonaws.com", username="ubuntu", private_key="~/.ssh/id_rsa")
快速连接(不保存配置)
AI: quick_connect(host="192.168.1.100", username="root", password="***")
→ server_id="192.168.1.100:22"

AI: execute(server_id="192.168.1.100:22", command="df -h")
AI: disconnect(server_id="192.168.1.100:22")
通过 SOCKS5 代理连接
AI: add_proxy(proxy_id="tunnel", name="SSH Tunnel", host="127.0.0.1", port=1080, type="5")
AI: add_server(server_id="internal", ..., proxy="tunnel")
通过跳板服务连接
AI: add_server(server_id="bastion", name="Bastion", host="bastion.example.com", username="admin", private_key="~/.ssh/id_rsa")
AI: add_server(server_id="internal", name="Internal DB", host="10.0.0.5", username="dbadmin", password="***", jump_host="bastion")

配置位置

服务和代理配置存储在:

~/.ssh-mcp/config.json

密码以明文存储。生产环境建议优先使用私钥身份验证。

要求

  • Node.js >= 18
  • 兼容 MCP 的客户端(Claude Code、Claude Desktop、Cursor 等)
  • 可通过 SSH 访问的远程服务

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。