远程命令执行服务

通过OpenClaw节点在远程机器上执行命令的MCP服务器,适用于需要远程操作和管理多台机器的场景。

  • by pandysp
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 pandysp/node-exec-mcp

使用说明

节点执行mcp

MCP服务器,用于通过以下方式在远程机器上执行命令 龙虾 节点执行。

通过提供一个工具 模型上下文协议:

  • run --在远程Mac(或任何OpenClaw节点)上执行shell命令,并获取stdout、stderr和退出代码。

每15秒的内置进度通知可防止MCP客户端在长时间运行命令期间超时。

快速开始

NODE_ID=your-node-id npx node-exec-mcp

需要Node.js 20+和 OpenClaw命令行界面 已安装并配置了对目标节点的访问权限。

先决条件

  1. 至少有一个连接节点的运行中的OpenClaw网关
  2. 节点ID(用 openclaw nodes status)
  3. OpenClaw CLI经过身份验证,能够访问网关

配置

克劳德桌面/光标

{
  "mcpServers": {
    "node-exec": {
      "command": "npx",
      "args": ["-y", "node-exec-mcp"],
      "env": {
        "NODE_ID": "your-node-id"
      }
    }
  }
}

OpenClaw(Docker)

在Docker容器内运行时(例如,作为OpenClaw MCP适配器服务器):

{
  "command": "node",
  "args": ["/path/to/dist/index.js"],
  "env": {
    "NODE_ID": "your-node-id"
  }
}

工具参考

run

在远程节点上执行shell命令。

参数 类型 必填 说明
command string yes 要在远程计算机上执行的Shell命令
cwd string no 远程计算机上的工作目录(默认: /tmp)
timeout_ms number no 每次呼叫超时(毫秒)(默认值: 300000)

返回stdout、stderr和退出代码。错误通过以下方式标记 isError 在MCP响应中。

环境变量

变量 默认值 描述
NODE_ID — 必修的。 目标节点ID(来自 openclaw nodes status)
OPENCLAW_BIN openclaw 重写OpenClaw CLI二进制名称或绝对路径
DEFAULT_CWD /tmp 远程计算机上的默认工作目录
TIMEOUT_MS 300000 默认每次呼叫超时时间(毫秒)(5分钟)

运作原理

在后台,服务器向OpenClaw CLI发出命令:

openclaw nodes run --node <NODE_ID> --json --timeout <ms> --cwd <dir> -- bash -c <command>

JSON响应被解析并转换为MCP工具结果。在长时间运行的命令期间,每15秒发送一次进度通知,以保持MCP连接处于活动状态。

安全注意事项

  • 命令在目标节点上运行OpenClaw配套应用程序的用户的权限下执行。
  • 节点上配置的审批策略适用(允许登录、未登录时询问或完全访问)。
  • 上没有输入净化 command 参数 --MCP客户端(LLM)在节点的批准策略内具有完全的shell访问权限。这是为了灵活性而设计的,但意味着节点的批准策略是您的安全边界。
  • 命令通过以下方式执行 bash -c --确保bash在目标机器上可用。

发展

git clone https://github.com/pandysp/node-exec-mcp.git
cd node-exec-mcp
npm install
npm run build
npm test

许可证

麻省理工学院