MCP隧道
一个简单的MCP服务器,允许通过基于Web的终端界面访问和执行虚拟机上的shell命令,并通过自动隧道功能使该虚拟机可从任何地方访问。
服务介绍
MCP Tunnel
一个简单的MCP(Model Context Protocol)服务器,允许访问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
使用方法
- 启动MCP服务器:
# Start with automatic tunneling
npm start
# Start without automatic tunneling
npm start -- --no-tunnel
这将构建项目并启动服务器。默认情况下会自动创建一个隧道。使用 --no-tunnel 标志可以禁用自动隧道。
-
服务器将启动,并且输出将在stderr上显示(以避免干扰stdout上的MCP通信)。
-
使用以下工具通过MCP与服务器交互:
可用的MCP工具
execute_command: 在VM上运行shell命令- 参数:
{ "command": "your shell command" }
- 参数:
start_tunnel: 创建web隧道以访问VM界面- 参数:
{ "port": 8080, "subdomain": "optional-subdomain" }
- 参数:
Web界面
启动隧道后,您可以通过隧道提供的URL访问基于Web的终端界面。此界面允许您:
- 直接在VM中执行命令
- 实时查看命令输出
- 从任何具有网络访问权限的设备与VM交互
环境变量
创建一个 .env 文件来配置服务器:
# Server configuration
PORT=8080
# Localtunnel configuration
LOCALTUNNEL_SUBDOMAIN=your-preferred-subdomain
安全注意事项
此工具提供了直接访问您的VM命令行的功能。请考虑以下安全实践:
- 在暴露隧道之前使用强认证机制
- 通过适当的验证限制可执行的命令
- 考虑在受限环境中运行
- 不要通过隧道暴露敏感信息