Back to MCP directory
publicPublicdnsLocal runtime

mcp_linux_administration_ssh-openwebui_tool

一个通过SSH控制Linux虚拟机的MCP服务器,集成OpenWebUI界面,提供自动安全检查和实时命令执行功能。

article

README

🚀 MCP 服务器 - 用于 OpenWebUI 的 SSH Linux 控制

通过 OpenWebUI 直接通过 SSH 控制你的 Linux 虚拟机,并对破坏性命令进行自动安全检查。

🚀 快速开始

1. 配置你的虚拟机

复制示例配置文件并进行编辑:

cp config.yaml.example config.yaml
nano config.yaml  # 或者使用你喜欢的编辑器

添加你的虚拟机信息:

hosts:
  vm1:
    hostname: "192.168.1.100"
    username: "root"
    password: "yourpassword"
    description: "My Server"

2. 启动服务器

docker compose up -d --build

3. 连接到 OpenWebUI 网络

# 查找你的 OpenWebUI 网络名称
docker network ls | grep openwebui

# 连接容器(将 'openwebui_default' 替换为你的网络名称)
docker network connect openwebui_default ssh-control-mcp

4. 将工具添加到 OpenWebUI

  1. 打开 OpenWebUI → 工作区 → 工具
  2. 点击 + 创建工具
  3. 复制并粘贴 ssh_linux_control.py 的全部内容
  4. 保存

大功告成!🎉

💻 使用示例

向 OpenWebUI 提问:

  • "列出我的虚拟机"
  • "连接到 vm1 并检查磁盘空间"
  • "显示 vm1 的内存使用情况"
  • "在我的服务器上运行 'systemctl status nginx'"

✨ 主要特性

✅ 基于密码的 SSH 认证(无需密钥)
✅ 自动检测破坏性命令
✅ 支持 sudo(使用配置文件中的密码)
✅ 检测 40 多种破坏性命令模式
✅ 实时命令输出

🔒 破坏性命令安全机制

rm -rfshutdownsystemctl stop 等命令需要明确确认:

  • 首次尝试:显示警告
  • 使用 confirmed=True 重试以执行命令

🛠️ 故障排除

工具无法连接到服务器:

# 检查容器是否正在运行
docker ps | grep ssh-control-mcp

# 查看日志
docker logs ssh-control-mcp

# 测试 API
curl http://localhost:3000/api/hosts

如果 OpenWebUI 是容器化的,确保两个容器在同一网络中:

docker network connect <openwebui-network> ssh-control-mcp

📁 文件结构

  • config.yaml.example - 示例配置文件(可安全提交)
  • config.yaml - 你的虚拟机凭据(已添加到 .gitignore,请勿提交)
  • ssh_linux_control.py - OpenWebUI 工具文件
  • docker-compose.yml - 容器配置文件
  • src/ssh_control_mcp/ - MCP 服务器和 HTTP 包装器

⚠️ 安全注意事项

⚠️ 重要提示

切勿提交 config.yaml - 它包含明文密码。

💡 使用建议

使用 config.yaml.example 作为模板。本工具仅设计用于在受信任的网络上进行本地虚拟机管理。

📄 许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client