MCP SSH 管理器是一款强大的 Model Context Protocol (MCP) 服务器,它能让 Claude Code 无缝管理多个 SSH 连接。用户可以直接在 Claude Code 中控制远程服务器、执行命令以及传输文件。
git clone https://github.com/yourusername/mcp-ssh-manager.git
cd mcp-ssh-manager
npm install
pip install -r tools/requirements.txt
运行交互式配置工具:
python tools/server_manager.py
选择选项 2 来添加服务器。你需要提供以下信息:
production、staging)# 个人使用(仅当前用户)
claude mcp add ssh-manager node /path/to/mcp-ssh-manager/src/index.js
# 团队共享(在项目中创建 .mcp.json)
claude mcp add ssh-manager --scope project node /path/to/mcp-ssh-manager/src/index.js
# 所有项目使用
claude mcp add ssh-manager --scope user node /path/to/mcp-ssh-manager/src/index.js
在 Claude Code 中,你现在可以执行以下操作:
"List all my SSH servers"
"Execute 'ls -la' on production server" # 如果设置了默认目录,则使用默认目录
"Run 'docker ps' on staging"
"Upload config.json to production:/etc/app/config.json"
"Download logs from staging:/var/log/app.log"
使用默认目录:
如果你将 /var/www/html 设置为生产服务器的默认目录,以下命令是等效的:
"Run 'ls' on production" → 在 /var/www/html 中执行"Run 'ls' on production in /tmp" → 在 /tmp 中执行(覆盖默认目录).env 文件和引导式配置工具进行简单设置在 Claude Code 中执行命令的基础示例:
"List all my SSH servers"
使用高级工具进行文件部署和以 sudo 权限执行命令:
# 使用 ssh_deploy 工具部署文件
"ssh_deploy production ['config.json'] {'owner': 'root', 'permissions': '644', 'backup': true, 'restart': false}"
# 使用 ssh_execute_sudo 工具以 sudo 权限执行命令
"ssh_execute_sudo production 'apt update' 'sudo_password' '/tmp'"
ssh_list_servers:列出所有配置的 SSH 服务器及其详细信息。ssh_execute:在远程服务器上执行命令。
server(名称)、command、cwd(可选工作目录)cwd,则使用服务器的默认目录(如果已配置)ssh_upload:将文件上传到远程服务器。
server、local_path、remote_pathssh_download:从远程服务器下载文件。
server、remote_path、local_pathssh_deploy 🚀:自动处理文件部署的权限和备份。
server、files(数组)、options(所有者、权限、备份、重启)ssh_execute_sudo 🔐:以 sudo 权限执行命令。
server、command、password(可选)、cwd(可选)ssh_alias 🏷️:管理服务器别名,方便访问。
action(添加/删除/列出)、alias、serverssh_command_alias 📝:管理常用命令的别名。
action(添加/删除/列出/建议)、alias、commandssh_hooks 🎣:管理 SSH 操作的自动化钩子。
action(列出/启用/禁用/状态)、hookssh_profile 📚:管理不同项目类型的配置文件。
action(列出/切换/当前)、profileSSH 管理器使用配置文件为不同项目类型配置别名和钩子:
export SSH_MANAGER_PROFILE=frappe.ssh-manager-profile 文件并指定配置文件名称default 配置文件default - 基本 SSH 操作frappe - 特定于 Frappe/ERPNextdocker - Docker 容器管理nodejs - Node.js 应用程序profiles/ 目录中创建自定义配置文件服务器在 .env 文件中按以下模式进行配置:
# 服务器配置模式
SSH_SERVER_[NAME]_HOST=hostname_or_ip
SSH_SERVER_[NAME]_USER=username
SSH_SERVER_[NAME]_PASSWORD=password # 用于密码认证
SSH_SERVER_[NAME]_KEYPATH=~/.ssh/key # 用于 SSH 密钥认证
SSH_SERVER_[NAME]_PORT=22 # 可选,默认为 22
SSH_SERVER_[NAME]_DEFAULT_DIR=/path/to/dir # 可选,默认工作目录
SSH_SERVER_[NAME]_DESCRIPTION=Description # 可选
# 示例
SSH_SERVER_PRODUCTION_HOST=prod.example.com
SSH_SERVER_PRODUCTION_USER=admin
SSH_SERVER_PRODUCTION_PASSWORD=secure_password
SSH_SERVER_PRODUCTION_PORT=22
SSH_SERVER_PRODUCTION_DEFAULT_DIR=/var/www/html
SSH_SERVER_PRODUCTION_DESCRIPTION=Production Server
SSH_SERVER_PRODUCTION_SUDO_PASSWORD=secure_sudo_pass # 可选,用于自动部署
Python 管理工具 (tools/server_manager.py) 提供以下功能:
mcp-ssh-manager/
├── src/
│ └── index.js # 主要的 MCP 服务器实现
├── tools/
│ ├── server_manager.py # 交互式服务器管理
│ ├── test-connection.py # 连接测试工具
│ └── requirements.txt # Python 依赖项
├── examples/
│ ├── .env.example # 示例配置
│ └── claude-code-config.example.json
├── package.json # Node.js 依赖项
├── .env # 你的服务器配置(从 .env.example 创建)
└── README.md # 本文件
python tools/test-connection.py production
claude mcp list
/mcp
claude mcp listpython tools/test-connection.py [server_name]chmod 600 ~/.ssh/your_key我们欢迎贡献!请参阅 CONTRIBUTING.md 了解详细信息。
./scripts/setup-hooks.sh
本项目使用自动化质量检查:
./scripts/validate.sh.env 文件 - 始终使用 .env.example 作为模板本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。
如有问题、疑问或建议:
为 Claude Code 社区精心打造 ❤️