mcpField
N
npm-run-mcp-server

npm-run-mcp-server

本地服务
github.com/fstubner开发工具329 周前更新

关于 npm-run-mcp-server

npm-run-mcp-server 将项目 package.json 中的脚本转为 AI Agent 可调用的工具。它会检测工作区和包管理器,并可配置脚本访问范围及带类型的参数。

主要功能

  1. 01自动检测工作区中的 package.json
  2. 02支持 npm、pnpm、yarn 和 bun
  3. 03通过白名单或排除列表筛选脚本
  4. 04配置工具名称和说明
  5. 05定义映射到命令行标志的类型化参数

适用场景

  1. 01通过 AI Agent 运行项目测试
  2. 02仅开放获准的构建和 lint 脚本
  3. 03为项目命令传递已配置的参数

MCP 相关

将 package.json 脚本作为 MCP 工具提供,并使用检测到的包管理器在项目根目录执行。可配置开放的脚本和工具参数。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"fstubner-npm-run": {
"command": "npx",
"args": [
"-y",
"npm-run-mcp-server"
]
}
}
}
启动命令npx -y npm-run-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmnpm-run-mcp-server0.2.12

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

npm-run-mcp-server

让 AI Agent 能够使用项目现有的 package.json 脚本来构建、测试和部署项目。

Test Build & Publish NPM Version MCP Registry Install in Cursor Install in VS Code License: MIT

npm-run-mcp-server MCP 服务

npm-run-mcp-server 是一个 Model Context Protocol (MCP) 服务,可自动将项目的 npm 脚本接入 AI 助手。

  • 🔍 自动检测项目的 package.json(无需硬编码路径)。
  • 📦 兼容各种工具:npm、pnpm、yarn 和 bun。
  • 🔒 安全且可配置:将特定脚本加入白名单,防止意外执行。
  • ⚡ 零配置:开箱即用,也可通过详细配置满足更多需求。

⚡ 快速开始

几秒钟内即可将 Agent 连接到脚本。无需全局安装,只需让 npx 来处理即可。

Claude Desktop

将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "npm-scripts": {
      "command": "npx",
      "args": ["-y", "npm-run-mcp-server"]
    }
  }
}
Cursor

Install in Cursor

  1. 前往 Settings > Features > MCP Servers。
  2. 点击 + Add New MCP Server。
  3. 输入详细信息:
    • Type:command
    • Name:npm-scripts
    • Command:npx
    • Args:-y npm-run-mcp-server
VS Code(GitHub Copilot)

Install in VS Code

将以下内容添加到工作区的 .vscode/settings.json:

{
  "github.copilot.chat.mcpServers": {
    "npm-scripts": {
      "command": "npx",
      "args": ["-y", "npm-run-mcp-server"]
    }
  }
}

🛠️ 配置

虽然 npm-run-mcp-server 开箱即用,但你可能不希望 AI 访问所有脚本(例如 eject 或 publish)。你可以在项目根目录中创建 npm-run-mcp.config.json 文件来控制访问权限。

配置示例

在 package.json 旁边创建 npm-run-mcp.config.json:

{
  "include": ["test", "lint", "build", "start"],
  "scripts": {
    "test": {
      "description": "Run the test suite. Use --watch for interactive mode.",
      "inputSchema": {
        "properties": {
          "watch": { "type": "boolean", "description": "Watch files for changes" }
        }
      }
    }
  }
}
配置选项
字段类型描述
includestring[]要公开的脚本名称白名单。若省略,则公开所有脚本。
excludestring[]要隐藏的脚本名称黑名单。
scriptsobject特定脚本的详细配置。
每个脚本的选项

在 scripts 对象中,你可以将脚本名称映射到:

  • toolName:覆盖 AI 看到的工具名称(例如,将 test:unit 重命名为 run_unit_tests)。
  • description:提供自定义描述,帮助 AI 了解何时使用此脚本。
  • inputSchema:定义严格类型的参数,供 AI 传入(映射到 CLI 标志)。

📖 工作原理

  1. 自动检测:服务启动时,会在当前工作区中查找 package.json。它支持标准格式以及 npm、pnpm、yarn 和 bun 约定。
  2. 创建工具:它会将你的脚本转换为 MCP 工具。
    • 类似 test:unit 的脚本会变为类似 test_unit 的工具。
    • 工具描述会包含实际命令(例如 vitest run),让 AI 知道它将运行什么。
  3. 执行:AI 调用工具时,服务会使用检测到的包管理器,在项目根目录中执行脚本。

🔧 高级用法 / CLI 用法

你可以手动运行服务以进行调试,或在需要传递特定标志时手动运行。

# Run directly
npx npm-run-mcp-server --list-scripts

# Run in a specific directory
npx npm-run-mcp-server --cwd /path/to/project

# Force a specific package manager
npx npm-run-mcp-server --pm pnpm
CLI 标志
  • --cwd <path>:手动设置工作目录。
  • --pm <npm|pnpm|yarn|bun>:强制使用指定的包管理器。
  • --config <path>:指定 JSON 配置文件的路径。
  • --verbose:将调试日志打印到 stderr。

🤝 参与贡献

欢迎贡献!请随时提交 Pull Request。

  1. Fork 此仓库。
  2. 创建功能分支(git checkout -b feature/amazing-feature)。
  3. 提交更改(git commit -m 'Add some amazing feature')。
  4. 推送到该分支(git push origin feature/amazing-feature)。
  5. 发起 Pull Request。

许可证

MIT © Felix Stubner

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。