内容
deptrust
```text
__ __ __
___/ /___ ___ / /________ _______/ /_
/ _ / __ \/ _ \/ __/ ___/ / / / ___/ __/
/ __/ /_/ / __/ /_/ / / /_/ (__ ) /_
\__,_/\____/ .___/\__/_/ \__,_/____/\__/
/_/
```
deptrust 是一款检查包版本是否存在已知漏洞的命令行工具,支持 npm、PyPI、crates.io、Go 模块、RubyGems、NuGet、Maven、Packagist、pub.dev、CocoaHex.pm、Hackage、GitHub Actions 等系统。
它可以在本地工具运行,也可以作为 MCP 服务器运行。deptrust 直接调用公共包注册表和 OSV API,不需要托管的 deptrust 服务。
该工具的诞生源于对 AI 代理经常使用旧版本的挫败感。
## 目录
- [范围](#范围)
- [命令行用法](#命令行用法)
- [安装](#安装)
- [代理设置](#代理设置)
- [手动 MCP 设置](#手动MCP设置)
- [MCP 工具](#MCP工具)
- [仅限技能使用](#仅限技能使用)
- [故障排除](#故障排除)
## 范围
支持的生态系统:
- npm(包括作用域包,如 `@clidey/ux`)
-
- Cargo / crates.io
- Go 模块
-ems
- Nu- Maven,使用 `groupId:artifactId` 包名
- Packagist / Composer,使用 `vendor/package` 包名
- pub.dev
- CocoaPods
- Hex.pm
- Hackage
- GitHub Actions,使用 `owner/repo` 包名和标签、分支引用或提交 SHA 作为版本
deptrust 目前报告已知漏洞并提供简单的建议:
| 最高已知严重性 | 建议 |
| --- | --- 关键 | 阻止 高 | 阻止 |
| 中等 / 未知 | 审查 |
| 低 | 允许 |
| 未找到 | |
`允许` 表示在公共数据源中未找到已知的阻塞漏洞。它不能证明某个包是安全的。
deptrust 还会发出非 CVE 的风险信号。例如,过去 72 小时内发布的版本会被标记为审查,以便代理不会盲目安装全新的版本。
## 命令行用法
检查确切版本:
```bash
deptrust check npm lod4.17.20
```
检查最新版本:
```bash
deptrust check pypi requests latest
```
以 JSON 格式返回:
```bash
deptrustjson cargo serde latest
```
检查 Go 模块:
```deptrust check go golang.org/x/crypto latest
```
检查 RubyGems、NuGet 或 Maven:
```bash
deptrust check rubygems rails latest
deptrust check nuget Newtonsoft.Json latest
deptrust check maven org.apache.logging.log4j:log4j-core latest
```
检查 Packagist、pub.dev、CocoaPods、Hex.pm、Hackage 或 GitHub Actions:
```bash
deptrust check packagist monolog/monolog latest
deptrust check pub http latest
deptrust check cocoapods AFNetworking latest
deptrust check hex plug latest
deptrust check hackage aeson latest
deptrust check github-actions actions/checkout v7.0.0
deptrust check github-actions actions/checkout main
```
## 安装
最简单的安装方式是使用 `npx` 或px`:
```npx @clidey/deptrust install
pnpx @clidey/deptrust@latest install
```
默认安装程序是引导式的。它安装二进制文件,询问要配置的代理集成,打印用户级目标,然后在更改任何内容之前询问确认。添加 `--yes` 以进行非交互式仅二进制安装,或传递显式集成标志。
要删除用户级二进制文件、技能和 MCP 条目:
```bash
npx @clidey/deptrust uninstall
pnpx @clidey/deptrust@latest uninstall
```
Homebrew 用户可以从 Clidey tap 安装:
```bash
brew install clidey/tap/deptrust
```
或先点击,然后像平常一样安装和升级:
```bash
brew tap clidey/tap
brew install deptrust
brew upgrade deptrust
```
Go 用户可以直接安装:
```bash
go install github.com/clidey/deptrust/cmd/deptrust@latest
```
## 代理设置
要安装 deptrust 并注册安装程序可以配置的所有内容:
```bash
npx @clidey/deptrust install --all
pnpx @clidey/deptrust@latest install --all
```
`--all` 安装二进制文件,注册 Codex MCP(如果有 `codex` CLI),安装 Codex 技能备用方案,并注册 Claude Code MCP(如果有 `claude` CLI)。
## 手动 MCP 设置
如果您的客户端支持 stdio MCP 服务器,请配置它以运行:
```bash
/absolute/path/to/deptrust mcp
```
许多客户端使用此 JSON 格式:
```json
{
"mcpServers": {
"deptrust": {
"command": "/absolute/path/to/deptrust",
"args": ["mcp"]
}
}
}
```
对于 Codex,您也可以使用以下命令添加:
```bash
codex mcp add deptrust -- /absolute/path/to/deptrust mcp
```
对于 Claude Code:
```bash
claude mcp add --transport stdio deptrust -- /absolute/path/toust mcp
`initialize` 时,服务器返回 MCP `instructions`,何时调用这些在添加、更新依赖项之前,或在询问某个版本是否安全更新支持服务器指令的自动应用此功能,因此提醒是可选的的。
## MCP ### `check_package`
检查包版本并返回已知。
```json
{
"ecosystem": "npm",
"package":",
"version4.17.}
```
`version省略或设置为 `latest如果确切的版本不存在,deptrust 返回错误并显式版本CP 输出故意,以便代理可以决定是否项,而无需将 正文拉入上下文。如果用户要求查看完整详细信息,运行 `full_response。
### `suggest`
首先检查最新最新版本不允许,则检查提供者报告的已,然后检查较旧的已知版本,并建议具有 `allow` 建议的新版本。
```json
{
osystem": "npm",
"package": "lodash```
### `compare_versions当前版本和目标版本解决和添加的漏洞。
```json
"ecosystem": " "package":",
"from "4.17. "to_version4.17.21```
## 仅使用
如果不需要 MCP,请安装捆绑的 Codex 技能:
npx @/deptrust skills install
```
该技能告诉 Codex、更新或、PyPI、Cargo 模块、RubyGNuGet、Mavenagist、pub.devPods、Hex.pm、Hackage 和 GitHub之前调用 `de` CLI。
## 故障排除
如果找不到 `deptrust`:
```bash
export PATH="$HOME/.local/bin:$PATH"
```
如果 MCP 客户端无法启动服务器,请找到完整路径:
```bash
which deptrust
```
然后将该绝对路径放入 MCP 配置中。
如果包检查返回 `unknown`,请不要将该包。通常意味着 deptrust 无法从提供获得完整的答案。