Token导航 LogoToken导航TokenDH.com
Remote Shell MCP Server logo
运维云端stdio官方级别未说明来源级核验

Remote Shell MCP Server

MCP Server

一个用于大模型SSH远程连接多轮交互的MCP服务,支持安全连接、多轮会话、命令执行和文件操作。

工具数

16

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude会话管理Claude DesktopClaude

安装说明

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

作者 / 组织

fairyto2

提供方

fairyto2

最后核验

2026/5/17 20:19

运行时

Python

快速接入

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

命令预览

uv run mcp_ssh_server

详细介绍

MCP SSH Server

一个用于大模型 SSH 远程连接多轮交互的 MCP (Model Context Protocol) 服务。

](https://python.org) ![License](LICENSE) ![Tests](#测试)

功能特性

  • 🔐 安全的 SSH 连接管理: 支持密码和密钥认证,连接池和自动重连
  • 💬 多轮交互会话: 维护会话状态、历史记录和上下文信息
  • 命令执行: 在远程服务器上安全执行命令,支持超时控制
  • 📁 文件操作: 上传、下载和浏览远程文件
  • 🐚 交互式 Shell: 支持持久化 shell 会话和实时交互
  • 🔧 灵活配置: 支持环境变量和配置文件
  • 📊 完整日志: 详细的操作日志和错误追踪

快速开始

安装

# 克隆项目
git clone https://github.com/fairyto2/remote-shell-mcp-server.git
cd remote-shell-mcp-server

# 安装依赖
uv install

# 安装项目
uv pip install -e .

运行模式

本项目支持两种运行模式:

1. 本地 MCP 服务器(标准模式)

uv run mcp_ssh_server

适用于与本地 AI 助手(如 Claude Desktop)集成。

2. 远程 MCP 服务器

uv run python -m mcp_ssh_server.remote_server

适用于通过网络提供 MCP 服务,支持多客户端连接。默认端口为 8080

远程连接配置:

在客户端(如 Claude Desktop)的配置文件中添加:

{
  "mcpServers": {
    "remote-ssh": {
      "url": "http://:8080/mcp"
    }
  }
}

注意:服务器已配置为允许所有 Host 和 Origin,因此可以安全地部署在远程服务器上并通过 IP 地址访问,不会出现 421 Misdirected Request 错误。

详细配置请参考 远程服务器文档

基本使用

  1. 启动服务器
uv run mcp_ssh_server
  1. 建立 SSH 连接
{
  "name": "ssh_connect",
  "arguments": {
    "name": "my-server",
    "host": "example.com",
    "username": "user",
    "password": "password"
  }
}
  1. 创建会话
{
  "name": "session_create",
  "arguments": {
    "name": "my-session",
    "connection": "my-server"
  }
}
  1. 执行命令
{
  "name": "session_execute",
  "arguments": {
    "session_id": "会话ID",
    "command": "ls -la"
  }
}

详细使用说明请参考 快速开始指南完整使用文档

MCP 工具列表

SSH 连接管理

  • ssh_connect - 建立 SSH 连接
  • ssh_disconnect - 断开 SSH 连接
  • ssh_list_connections - 列出所有 SSH 连接
  • ssh_execute - 在远程服务器上执行命令

文件操作

  • ssh_upload - 上传文件到远程服务器
  • ssh_download - 从远程服务器下载文件
  • ssh_list - 列出远程目录内容

交互式 Shell

  • ssh_shell - 创建交互式 shell
  • shell_send - 在 shell 中发送命令
  • shell_close - 关闭交互式 shell

会话管理

  • session_create - 创建新的交互会话
  • session_list - 列出所有会话
  • session_delete - 删除会话
  • session_execute - 在会话中执行命令
  • session_history - 获取会话历史记录
  • session_context - 获取会话上下文信息

配置

环境变量

变量名描述默认值
MCP_SSH_LOG_LEVEL日志级别INFO
MCP_SSH_TIMEOUT默认 SSH 连接超时时间(秒)30
MCP_SSH_CONFIG配置文件路径~/.mcp_ssh_config.json

配置文件

示例配置文件 (config/example.json):

{
  "log_level": "INFO",
  "default_timeout": 30,
  "max_sessions": 100,
  "connections": {
    "prod-server": {
      "host": "prod.example.com",
      "username": "deploy",
      "key_filename": "/path/to/private/key",
      "port": 22,
      "timeout": 30
    }
  }
}

架构设计

核心组件

  1. SSHConnectionManager: SSH 连接管理器

- 连接池管理 - 连接状态监控 - 自动重连机制 - 文件操作支持

  1. SessionManager: 会话管理器

- 多会话支持 - 历史记录管理 - 上下文信息维护 - 会话导入/导出

  1. MCPSshServer: MCP 服务器

- 协议处理 - 工具注册 - 请求路由

安全特性

  • 🔒 连接隔离: 每个会话使用独立的 SSH 连接
  • 🔑 认证支持: 支持密码和密钥认证
  • ⏱️ 超时保护: 命令执行超时机制
  • 📝 日志审计: 完整的操作日志记录
  • 🧹 自动清理: 定期清理不活跃会话

开发

项目结构

mcp_ssh_server/
├── __init__.py          # 包初始化
├── server.py            # MCP 服务器主类
├── ssh_manager.py       # SSH 连接管理
├── session_manager.py   # 会话管理
└── config.py           # 配置管理

tests/                   # 测试文件
├── conftest.py         # 测试配置
├── test_simple_core.py # 核心逻辑测试
└── ...

docs/                    # 文档
├── quickstart.md       # 快速开始指南
├── usage.md           # 完整使用文档
└── ...

config/                  # 配置文件
└── example.json        # 配置示例

运行测试

# 运行所有测试
uv run pytest

# 运行特定测试
uv run pytest tests/test_simple_core.py -v

# 生成覆盖率报告
uv run pytest --cov=mcp_ssh_server

代码质量

# 代码格式化
uv run black mcp_ssh_server/
uv run isort mcp_ssh_server/

# 类型检查
uv run mypy mcp_ssh_server/

# 代码检查
uv run ruff check mcp_ssh_server/

故障排除

常见问题

  1. SSH 连接失败

- 检查网络连接和防火墙设置 - 验证认证信息(密码/密钥) - 确认 SSH 服务运行状态

  1. 命令执行超时

- 增加超时时间设置 - 检查命令执行时间 - 验证服务器响应速度

  1. 文件传输失败

- 检查文件路径和权限 - 确认磁盘空间充足 - 验证网络稳定性

调试模式

启用详细日志:

MCP_SSH_LOG_LEVEL=DEBUG uv run mcp_ssh_server

路线图

  • [ ] 支持 SSH 代理转发
  • [ ] 添加 SFTP 文件编辑功能
  • [ ] 实现命令模板和快捷方式
  • [ ] 支持多服务器批量操作
  • [ ] 添加 Web 管理界面
  • [ ] 集成监控和告警

贡献

我们欢迎各种形式的贡献!

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

致谢

联系方式

  • 项目主页: https://github.com/fairyto2/remote-shell-mcp-server
  • 问题反馈: https://github.com/fairyto2/remote-shell-mcp-server/issues
  • 文档: https://github.com/fairyto2/remote-shell-mcp-server/docs

目录标签

目录标签

PythonClaude会话管理SSH管理本地部署远程连接多轮交互文件操作

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

16

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiosession部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP