Package Exports
- @zb2947244682/mcp-ssh
- @zb2947244682/mcp-ssh/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@zb2947244682/mcp-ssh) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
MCP SSH 远程连接工具
📖 项目介绍
这是一个功能完整的 MCP (Model Context Protocol) SSH工具,支持通过SSH私钥连接到远程服务器,执行命令,并保持长时间连接。它提供了完整的SSH会话管理功能,包括连接建立、命令执行、连接断开和状态监控。
NPM 仓库地址: @zb2947244682/mcp-ssh
🚀 核心功能
此 MCP 服务提供了强大的SSH远程管理工具:
🔗 connect_ssh 工具
建立SSH连接到远程服务器,支持私钥认证和连接管理。
参数说明
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
host |
字符串 | ✅ | - | 远程服务器地址 |
port |
数字 | ❌ | 22 | SSH端口号 |
username |
字符串 | ✅ | - | SSH用户名 |
privateKey |
字符串 | ✅ | - | SSH私钥内容(PEM格式) |
passphrase |
字符串 | ❌ | - | 私钥密码(如果有的话) |
connectionName |
字符串 | ❌ | - | 连接名称(用于标识连接) |
使用示例
{
"tool": "connect_ssh",
"parameters": {
"host": "192.168.1.100",
"port": 22,
"username": "admin",
"privateKey": "-----BEGIN OPENSSH PRIVATE KEY-----\n...",
"connectionName": "生产服务器"
}
}📝 execute_command 工具
在已连接的SSH会话中执行远程命令。
参数说明
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
connectionId |
字符串 | ✅ | - | SSH连接的ID |
command |
字符串 | ✅ | - | 要执行的命令 |
timeout |
数字 | ❌ | 30000 | 命令执行超时时间(毫秒) |
使用示例
{
"tool": "execute_command",
"parameters": {
"connectionId": "abc123",
"command": "ls -la /var/log",
"timeout": 60000
}
}🔌 disconnect_ssh 工具
断开指定的SSH连接。
参数说明
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
connectionId |
字符串 | ✅ | 要断开的SSH连接ID |
使用示例
{
"tool": "disconnect_ssh",
"parameters": {
"connectionId": "abc123"
}
}📊 get_ssh_stats 工具
获取SSH连接的统计信息和当前状态。
参数说明
无需参数,直接调用即可获取统计信息。
⚙️ 配置说明
在 Cursor 中配置
将以下配置添加到您的 Cursor mcp.json 文件中:
{
"mcp-ssh": {
"command": "npx",
"args": [
"-y",
"@zb2947244682/mcp-ssh@latest"
]
}
}通过 npx 直接运行
您可以通过以下命令直接从命令行运行此 MCP 项目:
npx @zb2947244682/mcp-ssh@latest本地开发配置
如果您在本地开发环境中使用,可以将以下配置添加到您的 Cursor mcp.json 文件中:
{
"mcp-ssh": {
"command": "node",
"args": ["D:\\Codes\\MCPRepo\\mcp-ssh\\index.js"]
}
}🔧 特性
- ✅ 安全连接 - 支持SSH私钥认证
- ✅ 连接管理 - 自动生成唯一连接ID
- ✅ 长时间会话 - 支持保持连接状态
- ✅ 命令执行 - 完整的远程命令执行
- ✅ 超时控制 - 可配置的命令执行超时
- ✅ 错误处理 - 完善的错误信息和处理
- ✅ 状态监控 - 实时连接状态和统计
- ✅ 多连接支持 - 同时管理多个SSH连接
📋 使用流程
1. 建立SSH连接
# 使用 connect_ssh 工具建立连接
# 需要提供:主机地址、用户名、私钥等2. 执行远程命令
# 使用 execute_command 工具执行命令
# 需要提供:连接ID、要执行的命令3. 断开连接
# 使用 disconnect_ssh 工具断开连接
# 需要提供:连接ID4. 查看状态
# 使用 get_ssh_stats 工具查看统计信息
# 无需参数,直接调用🔐 安全说明
- 私钥安全 - 私钥内容通过MCP协议传输,请确保传输安全
- 连接超时 - 默认30秒连接超时,可防止长时间等待
- 命令超时 - 默认30秒命令执行超时,防止命令卡死
- 连接清理 - 自动清理断开的连接,释放资源
💡 最佳实践
- 连接命名 - 为重要连接设置有意义的名称
- 超时设置 - 根据网络情况调整超时时间
- 错误处理 - 注意检查命令执行结果和错误输出
- 资源管理 - 及时断开不需要的连接
- 权限控制 - 确保SSH用户有足够的权限执行所需命令
🐛 常见问题
连接失败
- 检查主机地址和端口是否正确
- 确认SSH服务是否运行
- 验证私钥格式是否正确(PEM格式)
- 检查私钥密码是否正确
- 确认防火墙设置允许SSH连接
命令执行失败
- 检查命令语法是否正确
- 确认用户权限是否足够
- 检查网络连接是否稳定
- 尝试重新连接SSH
连接断开
- 检查网络稳定性
- 确认服务器SSH配置
- 查看连接统计信息
📚 技术细节
- SSH协议 - 使用SSH2协议进行安全连接
- 连接池 - 支持多个并发SSH连接
- 心跳机制 - 自动保持连接活跃
- 异步处理 - 非阻塞的命令执行
- 内存管理 - 自动清理断开的连接
让AI成为你的远程服务器管理助手! 🚀