项目简介

NPM Sentinel MCP 是一个实现了 Model Context Protocol (MCP) 的应用后端服务器。它专注于对 NPM 包进行深入分析,通过提供结构化的数据和可调用的工具,使得大型语言模型 (LLM) 客户端(如 VS Code Copilot Chat, Claude Desktop 等)能够理解和查询 NPM 包的各种信息,从而辅助开发者进行更智能的包管理和决策。

主要功能点

此MCP服务器提供了以下针对NPM包的核心分析能力:

  • 版本管理: 获取包的所有可用版本及最新版本信息。
  • 依赖分析: 查看包的生产依赖、开发依赖和对等依赖。
  • 安全扫描: 检查已知的包安全漏洞。
  • 质量评估: 衡量包的质量、维护和流行度分数。
  • 下载趋势: 获取包在不同时间段的下载量统计。
  • 类型支持: 检查包是否包含TypeScript类型定义。
  • 包大小: 分析包的体积(包含压缩后大小)。
  • 包对比: 对比多个包的关键指标。
  • 维护者信息: 获取包的维护者列表。
  • README获取: 检索并显示包的README内容。
  • 包搜索: 根据关键词搜索NPM仓库中的包。
  • 许可证兼容性: 对比多个包的许可证类型,进行基本兼容性分析。
  • 仓库统计: 获取包关联代码仓库(主要是GitHub)的统计数据(星标、Fork、Issue等)。
  • 弃用检查: 查看包本身及其依赖是否已被标记为弃用。
  • 更新日志分析: 分析包的更新日志和发布历史。
  • 查找替代品: 搜索与当前包功能相似的其他包。

安装步骤

此服务器主要通过MCP客户端进行安装和配置。您不需要手动运行服务器代码,而是通过客户端配置指向该服务器的启动命令。

推荐使用 'npx' 命令来启动服务器,这会自动下载并运行最新版本。

  1. 安装 Node.js: 确保您的系统中安装了 Node.js (包含 npm 和 npx)。
  2. 配置MCP客户端: 将以下JSON配置添加到您的MCP客户端(例如 VS Code 或 Claude Desktop)的MCP服务器配置中。具体配置文件的位置请参考您使用的客户端文档。
{
  "servers": {
    "npm-sentinel": {
      "type": "stdio", // 使用 Stdio 传输协议与客户端通信
      "command": "npx", // 启动服务器的命令
      "args": ["-y", "@nekzus/mcp-server@latest"] // 命令的参数,使用 npx 运行最新的 @nekzus/mcp-server 包
    }
  }
}

或者使用 Docker 镜像运行(需要先安装Docker):

{
  "mcpServers": {
    "npm-sentinel-mcp": {
      "command": "docker", // 启动服务器的命令
      "args": [ // 命令的参数,运行 Docker 容器
        "run",
        "-i", // 保持标准输入流开启
        "--rm", // 容器停止后自动移除
        "-w", "/projects", // 在容器内设置工作目录
        "--mount", "type=bind,src=${PWD},dst=/projects", // 挂载当前目录到容器内的 /projects (可选,取决于功能需求)
        "nekzus/npm-sentinel-mcp", // 使用的 Docker 镜像名称
        "node",
        "dist/index.js" // 容器内启动服务器的实际命令
      ]
    }
  }
}

将相应的配置添加到您的MCP客户端后,客户端会在需要时自动启动并连接到此服务器。

基本使用方法

安装并配置成功后,您就可以在支持MCP协议的LLM客户端中直接与服务器进行交互了。交互是通过向LLM提问来实现的,LLM会根据您的提问内容自动识别并调用此MCP服务器提供的相应工具。

例如,您可以在LLM聊天界面中提出问题:

  • "分析一下 'react' 包的依赖情况。" (LLM可能会调用 'npmDeps' 工具)
  • "帮我查找 'axios' 包的安全漏洞。" (LLM可能会调用 'npmVulnerabilities' 工具)
  • "比较一下 'lodash' 和 'ramda' 这两个包的下载趋势和质量得分。" (LLM可能会调用 'npmTrends', 'npmScore', 'npmCompare' 等工具)
  • "获取 'vue' 包的最新版 README 内容。" (LLM可能会调用 'npmPackageReadme' 工具)

LLM会调用后台的NPM Sentinel MCP服务器,服务器执行相应的分析工具,并将结果返回给LLM,最终由LLM整合并以自然语言的形式呈现给您。

信息

分类

开发者工具