返回市场
MCP隧道

MCP隧道

作者:leomercier4 星标更新:2025-03-18

项目介绍

MCP Tunnel

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

特性

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

预备条件

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

安装和使用

使用npx运行(无需安装)

npx mcp-cli

全局安装

npm install -g mcp-cli
mcp-cli

本地开发

# 克隆仓库
git clone [repository-url]
cd mcp-cli

# 安装依赖
npm install

开发

运行带有热重载的开发服务器,适用于后端和前端:

npm run dev

构建

构建生产环境下的前端和后端:

npm run build-all

使用

  1. 启动MCP服务器:
# 启动并自动创建隧道
npm start

# 不自动创建隧道启动
npm start -- --no-tunnel

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

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

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

可用的MCP工具

  • execute_command: 在虚拟机上运行shell命令
    • 参数:{ "command": "你的shell命令" }
  • start_tunnel: 创建一个web隧道以访问虚拟机接口
    • 参数:{ "port": 8080, "subdomain": "可选子域" }

Web界面

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

  • 直接在虚拟机上执行命令
  • 实时查看命令输出
  • 从任何具有网络访问权限的设备与虚拟机交互

环境变量

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

# 服务器配置
PORT=8080

# Localtunnel配置
LOCALTUNNEL_SUBDOMAIN=你偏好的子域

安全注意事项

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

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