Token导航 LogoToken导航

MCP Server · 安全风控

Safe Pkgs

safe-pkgs是一个用于AI代理在安装前检查包安全性的工具,提供允许/拒绝决策、风险评分和审计日志功能。

stdio官方级别未说明来源级核验工具 2
RustClaude风险管理Claude Desktop

快速开始

作者 / 组织
math280h
提供方
math280h

工具数量

2

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

6

仓库热度

收录来源

1 个

MCP World

选型结论

Safe Pkgs 属于安全风控类 MCP Server,公开资料标注 2 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

安全风控

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install zensical

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 2 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

安全包装

Package safety checks for AI agents before install.

Rust MCP server + CLI with allow/deny decisions, risk scoring, and audit logs.

Documentation · GitHub Action

Without safe-pkgs With safe-pkgs

它是什么

safe-pkgs 在依赖操作之前检查包风险,并返回一个机器可执行的决策。

决策有效载荷包括:

  • allow: true 或 false
  • risk: low | medium | high | critical
  • reasons:人类可读的发现
  • evidence:结构化调查结果(kind,稳定 id, severity, message, facts)
  • metadata:包上下文(最新、发布日期、下载、公告)
  • fingerprints:确定性哈希(config, policy)

60秒内安装+运行

安装一次:

cargo install --path . --locked

运行MCP服务器:

safe-pkgs serve

执行一次性审核:

safe-pkgs audit /path/to/project-or-lockfile
safe-pkgs audit /path/to/requirements.txt --registry pypi

Windows MCP主机(Claude Desktop等)应使用:

safe-pkgs-mcp.exe

无需订阅

safe-pkgs 不需要付费计划、托管帐户或API密钥进行内置检查。

  • 作为Rust二进制文件(MCP服务器或CLI)在本地运行。
  • 默认情况下使用公共包/咨询端点:

- npm注册表+npm下载API+npm流行指数 - crates.io API - PyPI JSON API+pypistats+top-PyPI索引 - API OSV咨询

  • 在您的计算机上本地存储缓存和审核日志。

注册和检查支持

支持的注册表:

  • npm (默认)
  • cargo (crates.io)
  • pypi (Python包)

查看支持图:

  • 命令: safe-pkgs support-map

配置

全局文件:

  • ~/.config/safe-pkgs/config.toml

项目覆盖:

  • .safe-pkgs.toml (合并到全局之上)

最小示例:

min_version_age_days = 7
min_weekly_downloads = 50
max_risk = "medium"

[cache]
ttl_minutes = 30

[allowlist]
packages = ["my-internal-pkg"]

[denylist]
packages = ["event-stream@3.3.6"]

完整配置架构:

  • docs/configuration-spec.md

MCP配置示例

macOS/Linux:

{
  "servers": {
    "safe-pkgs": {
      "type": "stdio",
      "command": "/path/to/safe-pkgs",
      "args": ["serve"]
    }
  },
  "inputs": []
}

Windows(无控制台窗口):

{
  "servers": {
    "safe-pkgs": {
      "type": "stdio",
      "command": "safe-pkgs-mcp.exe"
    }
  },
  "inputs": []
}

决策输出示例

{
  "allow": true,
  "risk": "low",
  "reasons": [
    "lodash@3.10.1 is 1 major version behind latest (4.17.21)"
  ],
  "evidence": [
    {
      "kind": "check",
      "id": "staleness.behind_latest",
      "severity": "low",
      "message": "lodash@3.10.1 is 1 major version behind latest (4.17.21)",
      "facts": {
        "package_name": "lodash",
        "resolved_version": "3.10.1",
        "latest_version": "4.17.21",
        "major_gap": 1
      }
    }
  ],
  "fingerprints": {
    "config": "c7d9f5b8b9a8f2a9f6b1f42f0e8e8c8a63f2b2ef8fdde1f3cd9ea4f5a2c08a0b",
    "policy": "fca103ee4fd5b86595a6a6e933f8a5f87db0ce087f80744dc1ea9cdbf58f7a6f"
  },
  "metadata": {
    "latest": "4.17.21",
    "requested": "3.10.1",
    "published": "2015-08-31T00:00:00Z",
    "weekly_downloads": 45000000
  }
}

锁文件审核输出示例(dependency_ancestry)

输入锁文件(package-lock.json)用于此示例:

{
  "name": "demo",
  "lockfileVersion": 2,
  "dependencies": {
    "react": {
      "version": "18.2.0",
      "dependencies": {
        "loose-envify": {
          "version": "1.4.0"
        }
      }
    }
  }
}

审计输出:

{
  "allow": true,
  "risk": "low",
  "total": 2,
  "denied": 0,
  "packages": [
    {
      "name": "react",
      "requested": "18.2.0",
      "allow": true,
      "risk": "low",
      "reasons": [],
      "evidence": []
    },
    {
      "name": "loose-envify",
      "requested": "1.4.0",
      "allow": true,
      "risk": "low",
      "reasons": [],
      "evidence": [],
      "dependency_ancestry": {
        "paths": [
          { "ancestors": ["react"] }
        ]
      }
    }
  ],
  "fingerprints": {
    "config": "",
    "policy": ""
  }
}

paths[].ancestors 仅列出祖先(根到直接父级),不包括包本身。 对于直接依赖性, dependency_ancestry 省略。

evidence.id 稳定且面向机器:

  • 内置检查: . (例如: staleness.behind_latest)
  • 自定义规则: custom_rule. (例如: custom_rule.low-downloads)
  • 策略/运行时项:显式ID(例如: denylist.package, risk.medium_pair_escalation)

信任和安全态势

  • 故障关闭行为:出现检查/运行时故障,不允许静默安装。
  • 本地审计跟踪:仅附加审计日志以供决策审查。
  • 确定性政策背景:应对措施包括 policy_snapshot_version,配置和策略指纹,以及启用的检查集。
  • 本地缓存:SQLite缓存由策略指纹+TTL到期的包元组键控。

免责声明

safe-pkgs 作为一个MCP工具,AI代理可以在安装软件包之前调用它。然而, 我们不能保证AI代理总是选择调用此工具 --自主选择工具的代理模型可以继续进行软件包安装,而无需调用 check_package 或 check_lockfile 首先,取决于模型、提示上下文和系统提示配置。

如果你的AI代理跳过了 safe-pkgs 当它应该叫它的时候,请 打开一个问题 通过提示和响应,我们可以改进工具描述和使用指导。

路线图

优先计划工作:

现在

  • \[\]内部/私有包名称的依赖性混淆防御
  • \[\]政策模拟模式(what-if)不强制执行
  • \[\]延迟、缓存命中率和注册表错误率的度量/日志模式
  • \[\]支持远程审计存储后端
  • \[\]支持远程配置源(GitHub仓库、HTTP端点等)
  • \[\]对私人登记处的支持

下一步

  • \[\]保单到期豁免
  • \[\]包来源检查(生态系统元数据支持的情况下)
  • \[\]发布商信任信号(帐户年龄、维护者流失、所有权变更)
  • \[x\] 大型锁文件的性能/规模改进:

- \[x\] 可配置的有界并发(默认:5个并行计算) - \[x\] 阻止API速率限制的批间延迟(默认值:100ms) - \[x\] 缓存命中跟踪以提高可见性

  • \[\]其他性能改进(请求合并重复包)

稍后

  • \[\]NVD咨询丰富
  • \[\]可选Snyk咨询提供商
  • \[\]Socket.dev集成
  • \[\]用于CI审计的GitHub Actions集成
  • \[\]注册表驱动的MCP模式和文档生成(单一事实来源)
  • \[\]HTTP流式MCP服务器选项
  • \[\]更多经过验证的编辑器配置示例
  • \[\]用于预提交检查的Git挂钩集成

发展

cargo fmt --all -- --check
cargo clippy --all-targets -- -D warnings
cargo test

覆盖

安装:

rustup component add llvm-tools-preview
cargo install cargo-llvm-cov

摘要:

cargo llvm-cov --workspace --all-features --summary-only

HTML报告:

cargo llvm-cov --workspace --all-features --html

报告路径:

  • target/llvm-cov/html/index.html

本地文档

pip install zensical
zensical serve
注: 此项目现在使用 森西卡尔 而不是MkDocs。 MkDocs 2.0放弃了插件系统,破坏了向后兼容性,没有迁移路径(公告).

确定性评估时钟(可选)

集 SAFE_PKGS_EVALUATION_TIME 使用RFC3339时间戳强制固定策略评估时间(对重播/调试运行有用):

SAFE_PKGS_EVALUATION_TIME=2026-01-01T00:00:00Z safe-pkgs audit /path/to/project
$env:SAFE_PKGS_EVALUATION_TIME = "2026-01-01T00:00:00Z"
safe-pkgs audit C:\path\to\project

工具与能力

工具数量

2

资源数量

0

提示词数量

0

能力标签

包安全检查Rust本地部署AI代理工具风险管理依赖审计安全决策

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

资产与漏洞排查

批量查询资产和漏洞信息,输出待修清单。

日志审计

从日志里筛出异常访问和高风险操作。

合规检查

按规则核对配置项,记录不符合项。

选择建议

值得选的地方

  • 只提供 2 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Safe Pkgs

MCP World · 本页

2stdio有1 个2026-05-17
Modelcontextprotocol C22988b0

MCP World

0stdio有1 个2026-05-17
Hexstrike AI

MCP World

0stdio有1 个2026-05-17
Cyber Strike AI

MCP World

75未说明未标注1 个2026-05-17
MCP Scan

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Safe Pkgs 怎么安装?

公开资料给出的安装命令是 pip install zensical,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Safe Pkgs 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Safe Pkgs 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Safe Pkgs 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Safe Pkgs 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP