虚拟机命令行隧道服务

一个基于MCP协议的服务器,允许通过Web访问虚拟机命令行,并提供实时通信和自动隧道功能。

  • by leomercier
  • JavaScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 leomercier/mcp-tunnel

使用说明

MCP隧道

一个简单的MCP(模型上下文协议)服务器,允许访问VM机器的命令行。启动时,它还将主机隧道连接到网络,以便可以通过MCP访问。

特性

  • 通过MCP在VM上执行shell命令
  • 基于Web的VM交互终端界面
  • 自动隧道使VM可以从任何地方访问
  • 基于WebSocket的实时通信

先决条件

  • Node.js(v18或更新版本)

安装和使用

使用npx运行(无需安装)

npx mcp-cli

全球安装

npm install -g mcp-cli
mcp-cli

地方发展

# Clone repository
git clone [repository-url]
cd mcp-cli

# Install dependencies
npm install

发展

运行开发服务器,对后端和前端进行热重新加载:

npm run dev

建筑

为生产构建前端和后端:

npm run build-all

用法

  1. 启动MCP服务器:
# Start with automatic tunneling
npm start

# Start without automatic tunneling
npm start -- --no-tunnel

这将构建项目并启动服务器。默认情况下,将自动创建隧道。使用 --no-tunnel 标记以禁用自动隧道。

  1. 服务器将启动并在stderr上提供输出(以避免干扰stdout上的MCP通信)

  2. 使用MCP使用以下工具与服务器交互:

可用的MCP工具

  • execute_command:在VM上运行shell命令
    • 参数: { "command": "your shell command" }
  • start_tunnel:创建web隧道以访问VM接口
    • 参数: { "port": 8080, "subdomain": "optional-subdomain" }

web界面

启动隧道后,您可以通过隧道提供的URL访问基于web的终端界面。此界面允许您:

  • 直接在VM中执行命令
  • 实时查看命令输出
  • 从任何具有web访问权限的设备与VM交互

环境变量

创建一个 .env 配置服务器的文件:

# Server configuration
PORT=8080

# Localtunnel configuration
LOCALTUNNEL_SUBDOMAIN=your-preferred-subdomain

安全考虑

此工具提供对VM命令行的直接访问。考虑以下安全实践:

  • 在暴露隧道之前使用强身份验证机制
  • 通过适当的验证限制可以执行的命令
  • 考虑在受限环境中运行
  • 不要通过隧道暴露敏感信息