返回市场
npm助手mcp

npm助手mcp

作者:pinkpixel-dev7 星标更新:2025-06-02

项目介绍

MseeP.ai 安全评估徽章

<div align="center"> <img src="https://gips2.baidu.com/it/u=1938129607,1322713113&fm=3081&app=3081&f=PNG?w=500&h=500" alt="NPM Helper MCP Logo" width="300" height="300"/> </div>

📦 NPM Helper - 一个帮助你的AI助手进行npm包管理的工具。🤖 npm 版本

这是一个用于NPM依赖管理的Model Context Protocol服务器。该服务器提供了NPM包搜索工具以及更新npm包的工具,确保你的项目依赖是最新的,并且升级到最新的兼容版本,避免任何冲突或问题。

作为基准,为了安全地升级任何项目的package.json,你的助手可以调用upgradePackagets工具,并将'peer'参数设置为true。这可能不会将所有依赖项更新到最新版本,但会安全地将其升级到最新的兼容版本,而不会出现任何错误。

如果你正在寻找所有依赖项的全面升级,你的助手有许多工具和参数来安全地探索。参数选项和示例在“可用工具”部分提供。你还可以在'docs'目录中找到更多信息。

此外,还有工具可用于从npmjs检索信息,如果你正在探索添加新包到项目中的选项,或者正在查找特定包的信息。

✨ 功能

npm-check-updates 工具

  • 🔍 checkUpdates: 扫描package.json以查找过时的依赖项
  • 🚀 upgradePackages: 将依赖项升级到最新版本
  • 🔎 filterUpdates: 检查特定包的更新
  • 🔄 resolveConflicts: 处理依赖项冲突
  • ⚙️ setVersionConstraints: 配置版本升级规则
  • 🩺 runDoctor: 迭代运行升级和测试以检测破坏性更改

NPM 搜索工具

  • 🔍 searchPackages: 在npmjs.org注册表中搜索包
  • 📝 fetchPackageContent: 抓取并提取npm包页面的内容
  • 📋 getPackageVersions: 获取包的版本历史
  • 📝 getPackageDetails: 获取详细的包元数据

🚀 npm-helper-mcp 安装指南

本指南将帮助你设置并运行npm-helper-mcp服务器。

📋 先决条件

开始之前,请确保已安装以下内容:

  • Node.js(版本18.x或更高)
  • npm(版本8.x或更高)

🔧 配置

npm-helper-mcp服务器实现了Model Context Protocol,使其能够与支持该协议的LLM应用程序通信。

配置因应用而异。通常,大多数mcp客户端应用都有一个.json配置文件,或者有一个输入命令来运行服务器的地方。这两种方法在大多数情况下应该都能工作。

选项1:使用npx运行

最简单的方法是使用npx运行服务器,这不需要本地安装。根据你的mcp客户端,使用以下两种方法之一:

  1. 将json配置复制粘贴到应用的mcp配置文件中。
{
    "mcpServers": {
      "npm-helper": {
        "command": "npx",
        "args": [
            "-y",
            "@pinkpixel/npm-helper-mcp"
        ]
      }
    }
  }
  1. 在应用的mcp配置设置中输入运行服务器的命令。
  npx -y @pinkpixel/npm-helper-mcp

选项2:本地安装

如果你希望本地安装服务器,可以使用以下命令:

# 全局安装包
npm install -g npm-helper-mcp

配置:

  1. 将json配置复制粘贴到应用的mcp配置文件中。
{
    "mcpServers": {
      "npm-helper": {
        "command": "npx",
        "args": [
            "-y",
            "@pinkpixel/npm-helper-mcp"
        ]
      }
    }
  }
  1. 在应用的mcp配置设置中输入运行服务器的命令。
  npm-helper-mcp

选项3:从源代码安装

# 克隆仓库
git clone https://github.com/pinkpixel-dev/npm-helper-mcp.git
cd npm-helper-mcp

# 安装依赖
npm install

# 构建项目
npm run build

# 可选运行/测试服务器
npm start

配置:

  1. 将json配置复制粘贴到应用的mcp配置文件中。
{
    "mcpServers": {
      "npm-helper": {
        "command": "node",
        "args": [
            "/path/to/npm-helper-mcp/dist/index.js"
        ]
      }
    }
  }
  1. 在应用的mcp配置设置中输入运行服务器的命令。
 node /path/to/npm-helper-mcp/dist/index.js

使用LLMs

此服务器遵循Model Context Protocol,允许它被像Claude这样的LLMs使用。LLM可以使用服务器的工具执行各种npm操作。

可用工具

工具:check_updates

扫描package.json以查找过时的依赖项。

参数:

  • packagePath(可选):package.json文件路径(默认:./package.json)
  • filter(可选):要检查的包名列表
  • reject(可选):要排除的包名列表
  • target(可选):要升级的目标版本(latest, newest, greatest, minor, patch, semver)
  • interactive(可选):启用交互模式以选择更新
  • peer(可选):检查已安装包的peer依赖项
  • minimal(可选):不升级已经满足版本范围的新版本
  • packageManager(可选):使用的包管理器(npm, yarn, pnpm, deno, bun, staticRegistry)

示例:

{
  "name": "check_updates",
  "arguments": {
    "packagePath": "./package.json",
    "filter": ["react", "lodash"],
    "peer": true,
    "minimal": true,
    "packageManager": "npm"
  }
}

工具:upgrade_packages

将依赖项升级到最新版本。

参数:

  • packagePath(可选):package.json文件路径(默认:./package.json)
  • upgradeType(可选):要升级的目标版本(latest, newest, greatest, minor, patch, semver)
  • interactive(可选):启用交互模式以选择更新
  • peer(可选):检查已安装包的peer依赖项
  • minimal(可选):不升级已经满足版本范围的新版本
  • packageManager(可选):使用的包管理器(npm, yarn, pnpm, deno, bun, staticRegistry)

示例:

{
  "name": "upgrade_packages",
  "arguments": {
    "upgradeType": "minor",
    "peer": true,
    "minimal": true,
    "packageManager": "yarn"
  }
}

工具:filter_updates

检查特定包的更新。

参数:

  • packagePath(可选):package.json文件路径(默认:./package.json)
  • filter(必需):要检查的包名列表
  • upgrade(可选):是否升级package.json文件或仅检查
  • minimal(可选):不升级已经满足版本范围的新版本
  • packageManager(可选):使用的包管理器(npm, yarn, pnpm, deno, bun, staticRegistry)

示例:

{
  "name": "filter_updates",
  "arguments": {
    "filter": ["react", "react-dom"],
    "upgrade": false,
    "minimal": true
  }
}

工具:resolve_conflicts

使用peer依赖项处理依赖项冲突。

参数:

  • packagePath(可选):package.json文件路径(默认:./package.json)
  • upgrade(可选):是否升级package.json文件或仅检查
  • minimal(可选):不升级已经满足版本范围的新版本
  • packageManager(可选):使用的包管理器(npm, yarn, pnpm, deno, bun, staticRegistry)

示例:

{
  "name": "resolve_conflicts",
  "arguments": {
    "upgrade": true,
    "packageManager": "npm"
  }
}

工具:set_version_constraints

配置版本升级规则。

参数:

  • packagePath(可选):package.json文件路径(默认:./package.json)
  • target(必需):目标版本约束策略(latest, newest, greatest, minor, patch, semver)
  • removeRange(可选):从最终包版本中移除版本范围
  • upgrade(可选):是否升级package.json文件或仅检查
  • minimal(可选):不升级已经满足版本范围的新版本
  • packageManager(可选):使用的包管理器(npm, yarn, pnpm, deno, bun, staticRegistry)

示例:

{
  "name": "set_version_constraints",
  "arguments": {
    "target": "minor",
    "removeRange": false,
    "upgrade": true,
    "packageManager": "pnpm"
  }
}

工具:run_doctor

迭代安装升级并运行测试以识别破坏性升级。它会自动回滚破坏性升级并保留有效升级。

参数:

  • packagePath(可选):package.json文件路径(默认:./package.json)
  • doctorInstall(可选):自定义安装脚本(默认:'npm install' 或 'yarn')
  • doctorTest(可选):自定义测试脚本(默认:'npm test')
  • packageManager(可选):使用的包管理器(npm, yarn, pnpm, deno, bun, staticRegistry)

示例:

{
  "name": "run_doctor",
  "arguments": {
    "packagePath": "./package.json",
    "doctorInstall": "npm ci",
    "doctorTest": "npm run test:ci",
    "packageManager": "npm"
  }
}

工具:search_npm

搜索npm包。

参数:

  • query(必需):npm包的搜索查询
  • maxResults(可选):返回的最大结果数(默认:10)

示例:

{
  "name": "search_npm",
  "arguments": {
    "query": "react state management",
    "maxResults": 5
  }
}

工具:fetch_package_content

抓取并解析npm包页面的详细内容。

参数:

  • url(必需):npm包页面的URL

示例:

{
  "name": "fetch_package_content",
  "arguments": {
    "url": "https://www.npmjs.com/package/react"
  }
}

工具:get_package_versions

获取npm包的可用版本。

参数:

  • packageName(必需):npm包的名称

示例:

{
  "name": "get_package_versions",
  "arguments": {
    "packageName": "react"
  }
}

工具:get_package_details

获取npm包的详细信息。

参数:

  • packageName(必需):npm包的名称

示例:

{
  "name": "get_package_details",
  "arguments": {
    "packageName": "react"
  }
}

📝 响应格式

所有工具都以标准格式返回响应:

{
  "status": "success" | "error",
  "data": {}, // 工具特定的数据
  "message": "人类可读的消息"
}

🆘 故障排除

连接问题**:

  • 确保你的LLM应用正确配置为使用Model Context Protocol。
  • 检查你的.json文件是否有任何错误,或验证你的启动命令是否正确。
  • 如果本地运行,请验证到index.js文件的路径。如有必要,请使用绝对路径。

获取帮助

如果你遇到未在此处涵盖的问题:

  • 查看GitHub问题,了解类似问题及其解决方案。
  • 创建一个新的问题,详细描述你的问题。

📄 许可证

MIT

🙏 致谢

由Pink Pixel制作 ❤️