依赖性健康监视器MCP服务器
一个模型上下文协议(MCP)服务器,用于监控和分析Node.js项目中的依赖关系健康状况。此服务器提供智能工具来检查过时的软件包、安全漏洞、许可证合规性,并建议安全的升级路径。
重要:每个MCP服务器实例都配置为监视特定项目。项目路径在启动服务器时指定,为了安全和清晰起见,所有工具仅在配置的项目上运行。
特性
- 🔍 检查过时的包裹 -查找可用的更新版本的软件包
- 🛡️ 安全审计 -识别依赖关系中的漏洞
- 📊 相关性分析 -获取有关依赖关系树的统计信息
- ⚖️ 许可证合规性 -检查可能需要注意的限制性许可证
- 💡 智能更新建议 -获取安全更新的优先建议
- 🔄 自动升级 -通过细粒度控制安全地升级依赖关系
先决条件
- Node.js>=18.0.0
- npm、yarn或pnpm包管理器
- 一个带有package.json的项目
安装
选项1:本地开发/测试
克隆此存储库并安装依赖项:
git clone https://github.com/pramodyadav/dependency-health-mcp.git
cd dependency-health-mcp
npm install选项2:从npm安装
由于这个库已经发布到npm,你可以全局安装:
npm install -g @pramodyadav027/dependency-health-mcp配置
每个MCP服务器实例都监视 一个具体项目。配置服务器时指定项目路径。
用于本地开发(Claude Desktop)
添加到您的Claude Desktop配置文件中:
__macOS__: ~/Library/Application Support/Claude/claude_desktop_config.json __视窗__: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"dependency-health-myproject": {
"command": "node",
"args": [
"/absolute/path/to/dependency-health-mcp/index.js",
"/path/to/your/project"
]
}
}
}监控多个项目,添加单独的服务器条目:
{
"mcpServers": {
"dependency-health-project1": {
"command": "node",
"args": [
"/absolute/path/to/dependency-health-mcp/index.js",
"/path/to/project1"
]
},
"dependency-health-project2": {
"command": "node",
"args": [
"/absolute/path/to/dependency-health-mcp/index.js",
"/path/to/project2"
]
}
}
}对于npm包(发布后)
{
"mcpServers": {
"dependency-health": {
"command": "npx",
"args": [
"@pramodyadav027/dependency-health-mcp",
"/path/to/your/project"
]
}
}
}或者,如果全局安装:
{
"mcpServers": {
"dependency-health": {
"command": "dependency-health-mcp",
"args": [
"/path/to/your/project"
]
}
}
}可用工具
所有工具都在服务器启动时配置的项目上运行。
1.检查_过期_包裹
检查过时的软件包并获取版本比较。
参数:
packageManager(可选):npm、yarn或pnpm(默认:npm)
2.检查漏洞
使用npm/yarn/pnpm审计扫描安全漏洞。
参数:
packageManager(可选):npm、yarn或pnpm(默认:npm)
3.分析依赖关系
获取有关依赖关系树的详细统计信息。
参数: 无
4.检查许可证合规性
识别具有限制性许可证(GPL、AGPL等)的软件包。
参数: 无
5.建议更新
基于语义版本控制获得优先更新建议。
参数: 无
6.升级依赖性
通过细粒度控制自动升级依赖关系。
参数:
packageManager(可选):npm、yarn或pnpm(默认:npm)packages(可选):要升级的特定软件包数组updateType(可选):补丁、次要、主要或最新(默认:最新)
用法示例
一旦配置了MCP客户端(如Claude Desktop或VS Code Copilot),您可以问:
- “检查此项目中是否存在过时的包”
- “是否存在任何安全漏洞?”
- “分析我的项目依赖关系”
- “检查许可证合规性”
- “为我的依赖项建议安全更新”
- “升级所有补丁版本”
- “仅升级反应包”
这些工具将自动在您为此服务器实例配置的项目上运行。
发展
建筑
代码库被组织成模块化组件,以提高可维护性:
- index.js -清洁入口点(10条线)
- server.js -服务器编排和MCP协议处理
- 工具/ -单个工具实现(每个约80行)
- utils/ -用于验证和包管理器抽象的共享实用程序
这种模块化结构使得以下操作变得容易:
- 添加新工具
- 测试单个组件
- 了解代码库
- 维护和更新现有功能
本地运行
# Start the server for a specific project
node index.js /path/to/your/project
# Or use npm scripts (operates on current directory)
npm start
# Development mode with auto-reload
npm run dev测试
您可以通过在Claude Desktop或VS Code中配置服务器并询问有关配置的Node.js项目的问题来测试服务器。
发布到npm(面向维护人员)
# Build/test first
npm install
npm start # Verify it works
# Login to npm
npm login
# Publish
npm publish --access public项目结构
dependency-health-mcp/
├── index.js # Entry point
├── server.js # MCP server orchestration
├── cli.js # CLI entry point (for bin)
├── tools/ # Tool implementations
│ ├── outdated.js # Check outdated packages
│ ├── vulnerabilities.js # Security audit
│ ├── analyze.js # Dependency analysis
│ ├── licenses.js # License compliance
│ ├── suggest.js # Update suggestions
│ └── upgrade.js # Automated upgrades
├── utils/ # Shared utilities
│ ├── validation.js # Input validation
│ └── package-manager.js # Package manager abstraction
├── package.json # Package configuration
├── README.md # This file
├── CHANGELOG.md # Version history
├── QUICKSTART.md # Quick start guide
├── LICENSE # MIT License
├── example-config.json # Configuration examples
├── .gitignore # Git ignore rules
└── .npmignore # npm ignore rules安全
此服务器仅在启动时配置的特定项目路径上运行。工具无法访问或修改配置的项目目录之外的文件。为了增强安全性:
- 在MCP配置中使用绝对路径
- 为要监视的每个项目创建单独的服务器实例
- 在运行任何升级操作之前,请检查配置的项目路径
许可证
麻省理工学院
作者
普拉莫德·库马尔·亚达夫
贡献
欢迎投稿!请随时提交拉取请求。
支持
有关问题、疑问或贡献,请访问 .
