项目简介
Node Runner MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为 LLM 客户端提供安全执行 Node.js 代码和管理 Node.js 环境的能力。它允许 LLM 通过预定义的工具运行 Node.js 脚本、执行 npm 命令、启动和停止后台 Node.js 服务器,并查看服务器日志。该服务器通过权限提示确保操作的安全性,并支持 Node.js 版本管理。
主要功能点
- 运行 Node.js 脚本: 执行指定的 Node.js 脚本文件,并可传递参数和标准输入。
- 执行 npm 脚本: 运行 package.json 中定义的 npm 脚本,方便进行项目构建、测试等操作。
- 动态执行 JavaScript 代码: 直接执行 JavaScript 代码片段,支持指定安全目录。
- 管理 Node.js 服务器: 启动、停止和列出后台运行的 Node.js 服务器进程。
- 监控服务器日志: 实时获取和过滤后台服务器的日志,便于调试和监控。
- Node.js 版本管理: 支持使用 NVM 选择和切换 Node.js 版本。
- 权限控制: 所有执行操作前均需用户授权,确保安全性(可配置禁用)。
安装步骤
- 克隆仓库
git clone https://github.com/platformatic/mcp-node.git cd mcp-node - 安装依赖
npm install - 构建项目
npm run build
服务器配置
要将 Node Runner MCP Server 与 MCP 客户端(例如 Claude for Desktop)配合使用,您需要配置客户端以连接到此服务器。以下是一个典型的 JSON 配置示例,您需要将其添加到 MCP 客户端的配置文件中。
{ "mcpServers": { "node-runner": { "command": "npx", "args": ["-y", "mcp-node@latest"], "env": { "DISABLE_NOTIFICATIONS": "true", // 可选: 禁用权限提示,用于自动化场景,生产环境不建议禁用 "EVAL_DIRECTORIES": "/path/to/safe/dir1:/path/to/safe/dir2" // 可选: 允许 run-node-eval 工具执行代码的额外安全目录,多个目录用冒号分隔 } } } }
配置参数说明:
- server name: 'node-runner' - 服务器的名称,客户端用此名称引用服务器。
- command: 'npx' - 用于启动服务器的命令,这里使用 'npx' 运行最新的 'mcp-node' 包。
- args: '["-y", "mcp-node@latest"]' - 传递给 'npx' 命令的参数,'-y' 表示自动确认安装,'mcp-node@latest' 指定要运行的 npm 包。
- env: 环境变量配置 (可选):
- 'DISABLE_NOTIFICATIONS': 设置为 '"true"' 可以禁用操作前的权限提示。
- 'EVAL_DIRECTORIES': 指定允许 'run-node-eval' 工具执行 JavaScript 代码的安全目录列表。 默认只允许系统临时目录。
注意:
- 确保您的系统已安装 Node.js (>= 22.0.0) 和 npm。
- 如果您希望使用 NVM 进行 Node.js 版本管理,请确保已安装并配置 NVM。
- 生产环境中,强烈建议不要禁用权限提示 'DISABLE_NOTIFICATIONS: "true"',以确保安全性。
基本使用方法
配置完成后,您可以通过 MCP 客户端向 Node Runner MCP Server 发送指令,调用其提供的工具和资源。
常用工具示例:
-
启动 Node.js 服务器: 使用 'start-node-server' 工具启动后台服务器。
start-node-server({ scriptPath: "/path/to/your/server.js", cwd: "/path/to/your/project", serverName: "My API Server", args: ["--port", "3000"] }); -
列出运行中的服务器: 使用 'list-servers' 工具查看当前运行的服务器列表。
list-servers({}); -
停止服务器: 使用 'stop-server' 工具停止指定 ID 的服务器。
stop-server({ serverId: "server-1234567890-1234" }); -
获取服务器日志: 使用 'get-server-logs' 工具获取服务器日志。
get-server-logs({ serverId: "server-1234567890-1234", lines: 100, filter: "error" }); -
运行 Node.js 脚本: 使用 'run-node-script' 工具执行脚本。
run-node-script({ scriptPath: "/path/to/your/script.js", args: ["arg1", "arg2"] }); -
运行 npm 脚本: 使用 'run-npm-script' 工具执行 npm 脚本。
run-npm-script({ packageDir: "/path/to/your/project", scriptName: "start" }); -
动态执行 JavaScript 代码: 使用 'run-node-eval' 工具执行代码。
run-node-eval({ code: "console.log('Hello from eval!');" }); -
列出 Node.js 版本: 使用 'list-node-versions' 工具查看可用的 Node.js 版本。
list-node-versions({}); -
选择 Node.js 版本: 使用 'select-node-version' 工具选择特定版本。
select-node-version({ version: "v18.20.5" }); -
获取当前 Node.js 版本信息: 使用 'get-node-version' 工具查看当前使用的 Node.js 版本信息。
get-node-version({});
请参考仓库的 README.md 文件获取更详细的使用说明和工具参数信息。
信息
分类
开发者工具