NPM哨兵MCP
](https://smithery.ai/server/@Nekzus/npm-sentinel-mcp) ](https://github.com/Nekzus/npm-sentinel-mcp/actions/workflows/publish.yml) ](https://www.npmjs.com/package/@nekzus/mcp-server) ](https://www.npmjs.com/package/@nekzus/mcp-server) ](https://www.npmjs.com/package/@nekzus/mcp-server) ](https://hub.docker.com/r/mcp/npm-sentinel)  
一个强大的模型上下文协议(MCP)服务器,通过人工智能彻底改变了NPM包分析。它与Claude和Anthropic AI集成,提供有关包安全性、依赖性和性能的实时智能。此MCP服务器提供即时洞察和智能分析,以保护和优化您的npm生态系统,使现代开发工作流程的包管理决策更快、更安全。
特性
- 版本分析和跟踪
- 依赖性分析和映射
- 高级安全扫描递归依赖检查、生态系统意识(例如React)和准确的版本解析。
- 严格的输入验证:通过严格的输入净化,防止路径遍历、SSRF和命令注入。
- 包装质量指标
- 下载趋势和统计数据
- TypeScript支持验证
- 包装尺寸分析
- 维护指标
- 实时包比较
- 标准化错误处理和MCP响应格式
- 高效缓存,提高性能和API速率限制管理
- 使用Zod进行严格的模式验证和类型安全
注:服务器通过MCP集成提供AI辅助分析。
缓存和无效
为了在保持性能的同时确保数据准确性,服务器实施了强大的缓存策略:
- 自动失效:缓存在以下情况下自动失效
pnpm-lock.yaml,package-lock.json,或yarn.lock工作空间中的更改。这可确保您在安装或更新依赖关系后始终获得新数据。 - 强制刷新:所有工具都接受可选
ignoreCache: true参数,以绕过缓存并强制从注册表中进行新的查找。
示例用法(JSON-RPC)
调用工具时,只需包含 ignoreCache: true 在论点中:
{
"name": "npmVersions",
"arguments": {
"packages": ["react"],
"ignoreCache": true
}
}安装
迁移到HTTP流媒体
此MCP服务器现在支持STDIO和HTTP流式传输。您现有的STDIO配置将继续工作,无需更改。
新功能:
- 通过Smithery.ai进行HTTP流式传输
- 增强的可扩展性和性能
- 交互式测试操场
开发命令:
# Development server with playground
npm run dev
# Build for HTTP
npm run build:http
# Start HTTP server
npm run start:http在VS代码中安装
将此添加到您的VS Code MCP配置文件中。看 VS代码MCP文档 了解更多信息。
{
"servers": {
"npm-sentinel": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@nekzus/mcp-server@latest"]
}
}
}Smithery.ai部署(HTTP流式传输)
此MCP服务器现在支持通过Smithery.ai进行HTTP流式传输,以增强可扩展性和性能。您可以直接在Smithery.ai上部署它: HTTP部署的好处:
- 可扩展的:处理多个并发连接
- 可流式传输的:实时流媒体响应
- 管理:自动部署和监控
- 向后兼容:仍支持STDIO促进当地发展
- 交互式测试:内置测试工具游乐场
Smithery.ai的配置:
{
"mcpServers": {
"npm-sentinel": {
"type": "http",
"url": "https://smithery.ai/server/@Nekzus/npm-sentinel-mcp"
}
}
}配置
服务器支持以下配置选项:
| 环境变量 | CLI参数 | 默认值 | 描述 |
|---|---|---|---|
NPM_REGISTRY_URL | config.NPM_REGISTRY_URL | https://registry.npmjs.org | 用于所有请求的NPM注册表的URL |
HTTP部署(Smithery/Docker)
通过Smithery或Docker部署时,您可以在配置文件中配置这些选项:
{
"mcpServers": {
"npm-sentinel": {
"type": "http",
"url": "https://smithery.ai/server/@Nekzus/npm-sentinel-mcp",
"config": {
"NPM_REGISTRY_URL": "https://registry.npmjs.org"
}
}
}
}码头工人
构建
# Build the Docker image
docker build -t nekzus/npm-sentinel-mcp .用法
您可以使用Docker运行MCP服务器,并将目录挂载到 /projects:
{
"mcpServers": {
"npm-sentinel-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-w", "/projects",
"--mount", "type=bind,src=${PWD},dst=/projects",
"nekzus/npm-sentinel-mcp",
"node",
"dist/index.js"
]
}
}
}对于多个目录:
{
"mcpServers": {
"npm-sentinel-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-w", "/projects",
"--mount", "type=bind,src=/path/to/workspace,dst=/projects/workspace",
"--mount", "type=bind,src=/path/to/other/dir,dst=/projects/other/dir,ro",
"nekzus/npm-sentinel-mcp",
"node",
"dist/index.js"
]
}
}
}注意:所有挂载的目录必须位于 /projects 以便正确访问。
使用Claude Desktop
将此添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"npmsentinel": {
"command": "npx",
"args": ["-y", "@nekzus/mcp-server@latest"]
}
}
}配置文件位置:
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:(Claude for Desktop目前不正式支持Linux)
NPX
{
"mcpServers": {
"npm-sentinel-mcp": {
"command": "npx",
"args": [
"-y",
"@nekzus/mcp-server@latest"
]
}
}
}API
服务器通过模型上下文协议公开其工具。所有工具均遵循标准化的响应格式:
{
"content": [
{
"type": "text",
"text": "string",
"isError": boolean // Optional
}
// ... more content items if necessary
]
}资源
npm://registry:NPM注册表界面npm://security:安全分析界面npm://metrics:包度量界面
服务器资源
服务器还提供以下可通过MCP访问的信息资源 GetResource 请求:
doc://server/readme:
- 描述:检索主 README.md 此NPM Sentinel MCP服务器的文件内容。 - MIME 类型: text/markdown
doc://mcp/specification:
- 描述:检索 llms-full.txt 内容,提供全面的模型上下文协议规范。 - MIME 类型: text/plain
工具
npm版本
- 获取包的所有版本
- 输入:
packages(字符串\[\]) - 返回:包含发布日期的版本历史记录
npmLatest
- 获取最新版本信息
- 输入:
packages(字符串\[\]) - 返回:最新版本详细信息和更改日志
npmDeps
- 分析包依赖关系
- 输入:
packages(字符串\[\]) - 返回:通过deps.dev完成依赖树分析,包括直接依赖关系和完整传递图(计数和显式展开列表)映射。
npmTypes
- 检查TypeScript支持
- 输入:
packages(字符串\[\]) - 返回:TypeScript兼容性状态
npm大小
- 分析包装尺寸
- 输入:
packages(字符串\[\]) - 退货:捆绑包大小和进口成本分析
npm漏洞
- 扫描安全漏洞
- 特征:
- 即时传输扫描:由谷歌提供技术支持 deps.dev API在单个请求中解析大量依赖树(例如Next.js、Astro),绕过深度递归限制。 - 生态系统意识:自动高效地扫描相关包。 - 丰富的报告:包括CVE ID和OSV.dev的完整摘要。
- 输入:
packages(字符串\[\]) - 返回:详细的安全建议、CVE和严重性评级
npmTrends
- 获取下载趋势
- 输入:
- packages (字符串\[\]) - period (“上周”|“上月”|“去年”)
- 返回:下载随时间变化的统计数据
npmCompre
- 比较多个包
- 输入:
packages(字符串\[\]) - 回报:详细的比较指标
npm维护人员
- 获取软件包维护人员
- 输入:
packages(字符串\[\]) - 返回:维护人员信息和活动
npmScore
- 获得包装质量分数
- 输入:
packages(字符串\[\]) - 回报:全面的质量指标
npmPackageReadme
- 获取包README
- 输入:
packages(字符串\[\]) - 返回:格式化的README内容
npm搜索
- 搜索包裹
- 输入:
- query (字符串) - limit (数字,可选)
- 返回:将包与元数据匹配
npmL许可证兼容性
- 检查许可证兼容性
- 输入:
packages(字符串\[\]) - 返回:许可证分析和兼容性信息
npmRepoStats
- 获取存储库统计信息
- 输入:
packages(字符串\[\]) - 返回:GitHub/存储库指标
npm已弃用
- 检查是否弃用
- 输入:
packages(字符串\[\]) - 返回:弃用状态和替代方案
npm变化分析
- 分析包更改日志
- 输入:
packages(字符串\[\]) - 返回:变更日志摘要和影响分析
npm替代方案
- 查找包装替代品
- 输入:
packages(字符串\[\]) - 返回:带有比较的类似包
npm质量
- 评估包装质量
- 输入:
packages(字符串\[\]) - 回报:质量指标和分数
npm维护
- 检查维护状态
- 输入:
packages(字符串\[\]) - 回报:维护活动指标
构建
# Install dependencies
npm install
# Build for STDIO (traditional)
npm run build:stdio
# Build for HTTP (Smithery)
npm run build:http
# Development server
npm run dev许可证
此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。
______________________________________________________________________
MIT© 尼古斯
