这是一个用于NPM依赖管理的Model Context Protocol服务器。该服务器提供了NPM包搜索工具以及更新npm包的工具,确保你的项目依赖是最新的,并且升级到最新的兼容版本,避免任何冲突或问题。
作为基准,为了安全地升级任何项目的package.json,你的助手可以调用upgradePackagets工具,并将'peer'参数设置为true。这可能不会将所有依赖项更新到最新版本,但会安全地将其升级到最新的兼容版本,而不会出现任何错误。
如果你正在寻找所有依赖项的全面升级,你的助手有许多工具和参数来安全地探索。参数选项和示例在“可用工具”部分提供。你还可以在'docs'目录中找到更多信息。
此外,还有工具可用于从npmjs检索信息,如果你正在探索添加新包到项目中的选项,或者正在查找特定包的信息。
本指南将帮助你设置并运行npm-helper-mcp服务器。
开始之前,请确保已安装以下内容:
npm-helper-mcp服务器实现了Model Context Protocol,使其能够与支持该协议的LLM应用程序通信。
配置因应用而异。通常,大多数mcp客户端应用都有一个.json配置文件,或者有一个输入命令来运行服务器的地方。这两种方法在大多数情况下应该都能工作。
最简单的方法是使用npx运行服务器,这不需要本地安装。根据你的mcp客户端,使用以下两种方法之一:
{
"mcpServers": {
"npm-helper": {
"command": "npx",
"args": [
"-y",
"@pinkpixel/npm-helper-mcp"
]
}
}
}
npx -y @pinkpixel/npm-helper-mcp
如果你希望本地安装服务器,可以使用以下命令:
# 全局安装包
npm install -g npm-helper-mcp
配置:
{
"mcpServers": {
"npm-helper": {
"command": "npx",
"args": [
"-y",
"@pinkpixel/npm-helper-mcp"
]
}
}
}
npm-helper-mcp
# 克隆仓库
git clone https://github.com/pinkpixel-dev/npm-helper-mcp.git
cd npm-helper-mcp
# 安装依赖
npm install
# 构建项目
npm run build
# 可选运行/测试服务器
npm start
配置:
{
"mcpServers": {
"npm-helper": {
"command": "node",
"args": [
"/path/to/npm-helper-mcp/dist/index.js"
]
}
}
}
node /path/to/npm-helper-mcp/dist/index.js
此服务器遵循Model Context Protocol,允许它被像Claude这样的LLMs使用。LLM可以使用服务器的工具执行各种npm操作。
扫描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"
}
}
将依赖项升级到最新版本。
参数:
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"
}
}
检查特定包的更新。
参数:
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
}
}
使用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"
}
}
配置版本升级规则。
参数:
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"
}
}
迭代安装升级并运行测试以识别破坏性升级。它会自动回滚破坏性升级并保留有效升级。
参数:
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"
}
}
搜索npm包。
参数:
query(必需):npm包的搜索查询maxResults(可选):返回的最大结果数(默认:10)示例:
{
"name": "search_npm",
"arguments": {
"query": "react state management",
"maxResults": 5
}
}
抓取并解析npm包页面的详细内容。
参数:
url(必需):npm包页面的URL示例:
{
"name": "fetch_package_content",
"arguments": {
"url": "https://www.npmjs.com/package/react"
}
}
获取npm包的可用版本。
参数:
packageName(必需):npm包的名称示例:
{
"name": "get_package_versions",
"arguments": {
"packageName": "react"
}
}
获取npm包的详细信息。
参数:
packageName(必需):npm包的名称示例:
{
"name": "get_package_details",
"arguments": {
"packageName": "react"
}
}
所有工具都以标准格式返回响应:
{
"status": "success" | "error",
"data": {}, // 工具特定的数据
"message": "人类可读的消息"
}
如果你遇到未在此处涵盖的问题:
MIT
由Pink Pixel制作 ❤️