mcpField
Z
Zyrax Guard

Zyrax Guard

本地服务
github.com/tiagosilva07安全211 周前更新

关于 Zyrax Guard

Zyrax Guard 是用于本地审计 AI Agent 配置和软件包的命令行工具,面向开发者及 CI 流程。它检测提示注入、可疑 MCP 配置、凭据外泄线索和依赖风险,并在设备上处理扫描内容。

主要功能

  1. 01扫描 Agent 配置中的提示注入
  2. 02检查 MCP 服务配置和权限
  3. 03审查 npm、PyPI、crates.io 与 Go 包
  4. 04先检查再安装依赖
  5. 05扫描锁文件差异并生成 SARIF
  6. 06通过策略文件维护允许列表

适用场景

  1. 01运行编码 Agent 前检查仓库配置
  2. 02在 CI 中阻止高风险 Agent 配置
  3. 03审查拉取请求新增的软件包
  4. 04将扫描发现提交到代码扫描流程

MCP 相关

注册为 MCP 服务端后,可向 Agent 提供 `scan_agents` 工具,用于扫描指定目录中的 Agent 配置文件。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"tiagosilva07-zyrax-guard": {
"command": "npx",
"args": [
"-y",
"zyrax-guard"
]
}
}
}
启动命令npx -y zyrax-guard

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmzyrax-guard0.13.0

工具

2

收录的工具列表 · 更新于 2 周前

参数类型必填说明
deepboolean否下载构件并静态分析安装/构建脚本(较慢)
namestring是要检查的软件包名称
versionstring否可选;默认为最新发布版本
ecosystemenum否npm | pypi | crates | gomod

详细介绍

Zyrax Guard

CI License: MIT Go Report Card Website

运行 AI Agent 前,先审计其配置。 检测指引 AI 的文件中隐藏的提示词注入、恶意 MCP 服务和凭据窃取行为——CLAUDE.md、.mcp.json、Agent 设置、技能等;还可审查这些文件引入的软件包。只需几毫秒。所有内容都不会离开你的设备。

$ zyrax-guard scan-agents .

Scanning . for agent config files...
  Found 2 file(s): .mcp.json, CLAUDE.md

  SCAN REPORT · zyrax-guard v0.13.0
  2 finding(s) requiring review

  [1 CRITICAL]  [1 HIGH]

  [HIGH]  .mcp.json
           MCP server 'data-exfil' uses non-HTTPS URL: http://attacker.example.com/collect
           → Use HTTPS for all external MCP server URLs.

  [CRITICAL]  CLAUDE.md:3
           Prompt injection keyword detected: 'ignore previous instructions'
           → Remove or review this instruction. Triage as false positive if intentional.

  2 finding(s) — 1 CRITICAL, 1 HIGH

$ zyrax-guard check lodahs
✗ [email protected] — BLOCK
  - looks like a typo of "lodash" (far more popular); this name has only 46 weekly downloads
  - MAL-2025-25502: Malicious code in lodahs (npm)
  did you mean: lodash
  to override:  zyrax-guard allow lodahs

可在本地和 CI 中运行,也可作为 AI 编码 Agent 的准入门槛。无需账户。除了你正在查询的公开软件包名称,不会有任何信息发送到外部。

获取方式(任选一种):

npx zyrax-guard@latest scan-agents .            # no install — audit this repo's agent configs
brew install tiagosilva07/zyrax/zyrax-guard     # macOS / Linux
scoop bucket add zyrax https://github.com/tiagosilva07/scoop-zyrax && scoop install zyrax-guard   # Windows
go install github.com/tiagosilva07/zyrax-guard/cmd/zyrax-guard@latest

然后运行:zyrax-guard scan-agents . 审计配置,或运行 zyrax-guard check <pkg> 审查软件包。 完整的安装选项(签名二进制文件、curl|sh)和验证方法见下文。

🌐 主页: zyrax.io


安装

npm / npx
npx zyrax-guard@latest scan-agents .     # audit agent configs
npx zyrax-guard@latest check lodash      # vet a package

通过 optionalDependencies 为各个平台提供预构建的 Go 二进制文件——无需在运行时下载。只要有 Node 18+,即可在任何环境中运行。

Homebrew(macOS / Linux)
brew install tiagosilva07/zyrax/zyrax-guard

安装签名发布版二进制文件(Homebrew 会验证 SHA-256)。发布新版本后,可通过 brew upgrade 更新。

Scoop(Windows)
scoop bucket add zyrax https://github.com/tiagosilva07/scoop-zyrax
scoop install zyrax-guard

安装签名发布版二进制文件(scoop 根据清单验证 SHA-256,清单中的哈希值来自发布版签名的 checksums.txt)。zyrax-guard upgrade 会检测 scoop 安装,并转交给 scoop update zyrax-guard 执行。

快速安装(Linux / macOS)
curl -fsSL https://raw.githubusercontent.com/tiagosilva07/zyrax-guard/main/scripts/install.sh | sh

下载适用于你的操作系统和架构的签名发布版二进制文件,将其 SHA-256 与发布版校验和进行验证,然后安装(安装到 /usr/local/bin;如果该目录不可写,则安装到 ~/.local/bin)。设置 VERSION=v0.5.0 可固定版本,或设置 BINDIR 以指定安装位置。如果 PATH 中有 cosign,还会验证 cosign 签名。

go install(Go 1.23+)
go install github.com/tiagosilva07/zyrax-guard/cmd/zyrax-guard@latest
签名发布版二进制文件

从 Releases 下载。 每个发布版都包含:

  • 适用于 linux/darwin/windows × amd64/arm64 的预构建二进制文件
  • checksums.txt(SHA-256)
  • SLSA L3 构建来源证明(每个制品都有对应的 .cosign.bundle)
  • SBOM(zyrax-guard.spdx.json)

验证二进制文件:

cosign verify-blob \
  --bundle zyrax-guard-linux-amd64.cosign.bundle \
  zyrax-guard-linux-amd64
从源代码构建
git clone https://github.com/tiagosilva07/zyrax-guard
cd zyrax-guard
go build -o zyrax-guard ./cmd/zyrax-guard

更新

Guard 每天最多检查一次是否有新版本(只读查询其自身在 registry.npmjs.org 上的版本),有可用更新时会在 stderr 上打印一行提示。更新方法:

zyrax-guard upgrade          # detects how Guard was installed and updates it
zyrax-guard version --check  # force a version check now

如果 Guard 是通过包管理器安装的,upgrade 会调用相应的包管理器(npm/brew/scoop/go);对于 Linux/macOS 上通过 curl|sh 或独立二进制文件安装的情况,它会下载签名发布版,在替换二进制文件前,先验证其 SHA-256 是否与 checksums.txt 匹配,并验证其无密钥 cosign 签名(任何不匹配都会中止升级)。默认情况下必须验证签名——如果未安装 cosign,升级会中止并显示操作说明;传入 --require-signature=false 可明确选择仅验证校验和。在 Windows 上,通过 scoop 安装即可使用委托升级;Windows 独立二进制文件仍需手动升级(提示中会附上 Releases 链接)。 设置 ZYRAX_NO_UPDATE_CHECK=1 可禁用每日检查。


快速入门

审计 AI Agent 配置
zyrax-guard scan-agents .          # scan current directory
zyrax-guard scan-agents /repo      # scan a specific path
zyrax-guard scan-agents . --json   # JSON output
zyrax-guard scan-agents . --strict # exit 1 for any finding (not just CRITICAL/HIGH)

扫描 CLAUDE.md、AGENTS.md、GEMINI.md、.mcp.json、.claude/settings.json 和 Cursor 规则文件。如果发现任何 CRITICAL 或 HIGH 级别的问题,则退出码为 1。

检查单个软件包
zyrax-guard check lodash                              # npm (default)
zyrax-guard check requests --ecosystem pypi           # PyPI
zyrax-guard check serde --ecosystem crates            # crates.io
zyrax-guard check github.com/pkg/errors --ecosystem gomod  # Go modules
先检查,再安装
zyrax-guard install lodash axios                      # vets, then runs npm install
zyrax-guard install flask --ecosystem pypi            # vets, then runs pip install
zyrax-guard install serde --ecosystem crates          # vets, then runs cargo add
zyrax-guard install github.com/pkg/errors --ecosystem gomod  # vets, then runs go get
允许某个包(添加到本地策略)
zyrax-guard allow my-internal-pkg
# allowed "my-internal-pkg" (recorded in .zyrax/policy.json)

提交 .zyrax/policy.json —— 它是项目中可供审核的允许列表。

扫描 PR 的锁文件差异
zyrax-guard scan --base /tmp/base-lock.json --head package-lock.json --sarif

将 SARIF 2.1.0 输出到标准输出。如果没有 BLOCK 或 ERROR,退出代码为 0;否则为非零。 添加 --strict,将 WARN 视为失败。


审计 AI Agent 配置(scan-agents)

AI 编码 Agent(Claude Code、Cursor、Gemini CLI)会读取可能被恶意利用的配置文件:克隆的仓库中恶意的 CLAUDE.md、指向攻击者服务器的篡改版 .mcp.json、描述中隐藏指令的 MCP 工具、授予通配符 Shell 访问权限的 settings.json,或是悄悄引导 Agent 读取 .env 并将其 POST 到外部的文本。Guard 会在 Agent 运行前检测这些内容。

zyrax-guard scan-agents .
扫描内容
文件位置
CLAUDE.md、AGENTS.md、GEMINI.md仓库根目录
.mcp.json仓库根目录和子目录
.claude/settings.json.claude/ 目录
.cursor/rules、.cursor/rules/*.mdcCursor 规则
SKILL.md任意 skills/ 目录下
检测内容
规则严重性
提示词注入关键词(ignore previous instructions、new objective:、……)CRITICAL
隐藏的 Unicode 字符(零宽字符、双向覆盖字符)CRITICAL
绕过关键词过滤器的 Base64 编码指令CRITICAL
条件式/休眠触发器(when user asks X, do Y)CRITICAL
携带注入关键词的 MCP 工具描述(会被作为可信模型上下文读取)CRITICAL
人设覆盖(you are not Claude、your true purpose)HIGH
使用非 HTTPS URL 的 MCP 服务HIGH
使用原始 IP 地址的 MCP 服务(可能是 C2)HIGH
使用隧道服务(ngrok、Cloudflare、……)的 MCP 服务HIGH
运行 Shell、内联 -c/-e、临时目录二进制文件或危险环境变量的 MCP 服务HIGH
引用凭据文件(.env、id_rsa、.aws/credentials)的指令HIGH
数据外泄目标(同一行中的 send/POST/curl + 外部 URL)HIGH
permissions 中的通配符 allowHIGH
没有拒绝规则的无限制 Shell 访问MEDIUM
没有锁文件的 npx MCP 服务MEDIUM
自动运行执行命令的钩子(下载并执行 → CRITICAL,Shell 标记 → HIGH)CRITICAL–MEDIUM

退出代码:如果存在任何 CRITICAL 或 HIGH 项,则为 1;否则为 0。使用 --strict,则任何发现都会以退出代码 1 退出。

对混淆内容进行归一化。 匹配前,检测会对常见伪装方式进行归一化处理,包括零宽和格式字符、形近字符、全角和 leetspeak 替换,以及分隔符/换行拆分,因此简单混淆的载荷(y0u 4r3 n0w…、ignore—previous—instructions、西里尔字母形近字符)仍会被检测到。它仍是快速、确定性、在设备本地运行的防护措施,用于防范已知的 Agent 配置攻击模式;但无法彻底防御蓄意改写措辞或使用其他语言的攻击者。语义检测是 Zyrax 平台的路线图项目,并非本地 CLI 的功能。

抑制合理的误报。 实际的技能或配置可能会合理地使用一些会触发启发式检测的措辞(例如,要求审核技能“作为资深审核者行事”)。可在该行添加内联 zyrax-allow 注释来忽略它,也可以选择使用 zyrax-allow: <rule-prefix> 指定适用规则;或者使用 zyrax-allow-file: <rule-prefix> 忽略整个文件。忽略操作绝不会静默进行:扫描始终会报告 N finding(s) suppressed by zyrax-allow,并且 --strict 会完全忽略抑制设置(审计/CI 模式),因此恶意配置无法利用该指令关闭检测。

在 CI 中
- name: Audit agent configs
  run: zyrax-guard scan-agents . --strict
通过 MCP(scan_agents 工具)

注册为 MCP 服务后,Agent 也可以使用 scan_agents:

{
  "name": "scan_agents",
  "arguments": { "dir": "." }
}

GitHub Action

为每个拉取请求设置门禁。默认情况下(scan: both),Zyrax Guard 会审计 AI Agent 配置 (提示词注入、恶意 MCP 服务、风险权限)并且检查 PR 中添加的依赖项,若有任何依赖项被拦截,则检查失败。添加 .github/workflows/zyrax-guard.yml:

**生产环境请固定版本:**以下示例将第三方 Actions 固定到提交 SHA——可变标签会带来供应链风险(这正是 Guard 要捕获的风险)。为了让 CI 完全可复现,也请将 zyrax-guard 固定到确切版本或提交 SHA。

name: Zyrax Guard
on: pull_request
jobs:
  guard:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd  # pin: actions/checkout@v5
        with:
          fetch-depth: 0          # lets Guard diff against the PR base (added deps only)
      - uses: tiagosilva07/zyrax-guard@v0
        with:
          ecosystem: npm          # npm | pypi | crates

对于拉取请求,它只扫描相对于基础分支新增的依赖项;否则会扫描整个锁定文件。若有依赖项被拦截,作业就会失败。@v0 跟踪最新的 0.x 版本;为了让 CI 完全可复现,请固定到确切版本(例如 @v0.7.1)。

输入(均为可选):scan(deps | agents | both,默认 both)、ecosystem (默认 npm)、lockfile(按生态系统设置默认值)、base(显式指定基础锁定文件)、 strict(将 WARN 视为失败)、deep(检查安装脚本)、version(Guard 版本,默认 latest)、fail-on-block(默认 true)、sarif-file(写入依赖项 SARIF,供 Code Scanning 使用)、agents-sarif-file(写入 Agent 配置 SARIF,供 Code Scanning 使用)、args(额外的原始标志)。

将结果上传到 GitHub Code Scanning,让问题直接显示在 PR 中:

      - uses: tiagosilva07/zyrax-guard@v0
        with:
          sarif-file: zyrax-guard.sarif
          fail-on-block: "false"   # let Code Scanning surface findings; don't hard-fail
      - uses: github/codeql-action/upload-sarif@dd903d2e4f5405488e5ef1422510ee31c8b32357  # pin: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: zyrax-guard.sarif

同时审计 Agent 配置和依赖项,并在 Code Scanning 中展示结果:

      - uses: tiagosilva07/zyrax-guard@v0
        with:
          scan: both
          sarif-file: zyrax-guard-deps.sarif
          agents-sarif-file: zyrax-guard-agents.sarif
          fail-on-block: "false"
      - uses: github/codeql-action/upload-sarif@dd903d2e4f5405488e5ef1422510ee31c8b32357  # pin: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: zyrax-guard-deps.sarif
          category: zyrax-guard-deps
      - uses: github/codeql-action/upload-sarif@dd903d2e4f5405488e5ef1422510ee31c8b32357  # pin: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: zyrax-guard-agents.sarif
          category: zyrax-guard-agents

(此作业需要 permissions: { security-events: write }。)


支持的生态系统

Guard 支持 npm、PyPI、crates.io 和 Go 模块。使用 --ecosystem 选择其中一种(默认 npm):

zyrax-guard check --ecosystem pypi requests
zyrax-guard check --ecosystem crates serde
zyrax-guard check --ecosystem gomod github.com/pkg/errors
zyrax-guard scan --ecosystem crates              # PR gate over Cargo.lock
zyrax-guard scan --ecosystem pypi               # PR gate over poetry.lock / requirements.txt
zyrax-guard scan --ecosystem gomod              # PR gate over go.sum

Go 模块会通过 proxy.golang.org 查询(标准 Go 模块代理,无需身份验证,也没有下载量 API)。它与其他生态系统有两点差异,均为有意设计:

  • 跳过拼写仿冒/流行度检查。 与 npm/PyPI/crates.io 不同,模块代理没有下载量端点,因此 Guard 没有真实的使用情况信号可供比较——它会报告“下载统计数据不可用”,而不是捏造“0 次下载”的拼写仿冒判定,误报真实模块。存在性和已知恶意软件(OSV)检查仍会正常运行。
  • 对每个 Go 模块使用 --deep 都会报告“未发现安装/构建脚本”。 go get / go mod download 不会执行已获取模块中的代码——没有可供静态分析的 npm-postinstall/pip-setup.py/cargo-build.rs 类似脚本。

检查的工作原理

Guard 仅根据公开注册表元数据进行检查——不会在本地执行或安装,也不会进行沙盒处理:

检查判定触发条件
存在性在注册表中找不到包 → BLOCK(虚构或诱饵名称)
拼写仿冒名称与流行度高得多的包仅相差 1 处字符,且下载量接近零 → BLOCK,并提供“你是否想找……”建议
已知恶意项命中 OSV 公告 → 已知恶意包 → BLOCK;合法包中的漏洞(任意严重程度,显示在消息中)→ WARN(使用 --strict 可将其设为失败)
年龄与流行度发布不到 30 天且每周下载量少于 50 → WARN
锁定文件完整性(仅扫描) 已解析的 URL 或完整性哈希发生变化 → BLOCK

对于暂时性的注册表/OSV 故障(429 或 5xx),Guard 会在放弃前采用退避重试(遵循 Retry-After);只有持续故障才会产生 ERROR(默认拒绝——参见判定结果)。


深度检查(--deep)

默认情况下,检查仅涉及元数据(毫秒级)。添加 --deep,还会下载软件包的分发制品,并静态检查其在安装/构建时运行的代码——npm preinstall/install/postinstall 脚本、PyPI setup.py、crates build.rs(Go 模块没有此类钩子,参见生态系统):

zyrax-guard check --deep some-pkg
zyrax-guard scan --deep                          # PR gate, deep mode

它会标记危险模式——网络调用、进程生成、base64/混淆的 eval——并在危险组合(例如“下载脚本并运行”)出现时拦截。它不会运行任何代码(纯静态分析),并且会尽力而为:如果无法获取制品,会显示提示信息,绝不会误拦截。

不增加任何依赖——提取器仅使用标准库 archive/tar 和 compress/gzip。


判定结果

判定结果含义默认退出代码
SAFE没有值得注意的信号0
WARN存在可疑情况——继续前请先检查0(使用 --strict 可使其变为 1)
ERROR防护工具无法验证(注册表/OSV 无法访问、返回 5xx,或受到速率限制)——默认拒绝1(始终如此)
BLOCK有强烈迹象表明软件包存在恶意或虚构情况1

防护工具采用默认拒绝策略:如果无法访问注册表或恶意软件数据库,就会返回 ERROR 并以非零状态码退出,而不是放行未经验证的软件包。网络中断无法悄无声息地绕过这道关卡。


配置

Zyrax Guard 完全通过命令标志和可选的本地策略文件进行配置——无需配置文件或环境变量。

命令
命令用途
check <name>[@version]审查单个软件包
install <name>检查软件包,安全后再安装
scan审查锁定文件(或 PR 中的锁定文件差异)
scan-agents <dir>审计 AI Agent 配置文件
allow <name>将软件包添加到本地允许列表
init打印 Shell 钩子(透明地拦截安装操作)
mcp运行 MCP 服务(check_package、scan_agents)
mcp install [--global]将 Guard 注册到你的 AI Agent
upgrade将 Guard 更新到最新版本(已验证)
version [--check]打印版本;--check 会检查是否有更新版本
标志
标志命令默认值作用
--ecosystem npm|pypi|crates|gomodcheck、install、scannpm目标软件包生态系统
--strictcheck、install、scan、scan-agents关闭收紧失败条件:WARN → 失败(软件包命令);有任何发现 → 失败(scan-agents)
--deepcheck、install、scan关闭下载并静态分析安装/构建脚本
--jsoncheck、install、scan、scan-agents关闭JSON 输出
--sarifcheck、scan关闭SARIF 2.1.0 输出(用于代码扫描数据摄取)
--ignore-scriptsinstall关闭将 --ignore-scripts 传递给 npm
--reason <text>allow—与允许列表条目一同记录在 .zyrax/policy.json 中,供日后审查
--base <file>scan—用于对比的基础锁定文件(仅扫描新增/变更的依赖项)
--head <file>scan按生态系统而定(package-lock.json/poetry.lock,若不存在则回退到 requirements.txt/Cargo.lock/go.sum)要扫描的头部锁定文件
--require-signatureupgrade开启替换二进制文件前验证 cosign 签名;传入 --require-signature=false 可仅接受校验和验证
本地策略文件

zyrax-guard allow <name> [--reason "why"] 会在项目根目录的 .zyrax/policy.json 中记录决策。每条 allow 都会添加 UTC 时间戳;理由是可选的,但如果提供,也会一并记录,这样队友审查差异时就能看到信任某个软件包的原因,而不只是它的名称:

{
  "allow": [
    "my-internal-pkg",
    { "name": "graphifyy", "reason": "reviewed setup.py — FP on tree-sitter-bash", "at": "2026-07-23T15:00:00Z" }
  ],
  "deny": ["known-bad-pkg"]
}

加载时接受这两种格式——纯字符串仍是有效条目,因此在 reason/at 存在之前编写的文件无需更改即可继续使用。

允许列表中的软件包会跳过检查;拒绝列表中的软件包始终会被阻止。提交该文件即可与团队共享策略。(组织范围策略可通过 Policy 接口付费即插即用。)

Guard 有意不在检查时提供“阻止还是继续?”的内联提示:驱动命令行的 AI Agent 可能会自动回答此类提示,而非交互式环境(CI、脚本)则完全无法回答。allow 必须通过单独且经过审慎决定的命令执行——在触发阻止的任何自动化循环之外——并在 git 中留下可审查的记录。

退出代码
上下文在以下情况下以 1 退出
check / install / scan判定为 BLOCK 或 ERROR,或使用 --strict 时判定为 WARN(无论是否使用 --strict,ERROR 都会以 1 退出)
scan-agents发现 CRITICAL 或 HIGH,或使用 --strict 时发现任何问题

有关软件包判定结果的含义,请参阅判定结果。


自动运行 — Shell 钩子

Shell 钩子会透明地拦截 npm install / pip install / cargo add / go get。每个新软件包都会在实际安装程序运行前接受检查;已安装的软件包和非安装命令则会直接通过。

macOS / Linux(bash 或 zsh)

添加到 ~/.bashrc、~/.zshrc 或 ~/.bash_profile:

# Gate npm installs (default)
eval "$(zyrax-guard init bash)"

# Gate pip installs
eval "$(zyrax-guard init bash pip)"

# Gate cargo add
eval "$(zyrax-guard init bash cargo)"

# Gate go get
eval "$(zyrax-guard init bash go)"

无需重启终端即可立即应用:

source ~/.zshrc        # or ~/.bashrc
Windows(PowerShell)

添加到 PowerShell 配置文件($PROFILE)。查找并打开该文件:

notepad $PROFILE      # creates the file if it doesn't exist

添加这一行并保存:

Invoke-Expression (zyrax-guard init powershell | Out-String)

立即应用:

. $PROFILE

从现在起,PowerShell 窗口中的每个 npm install、pip install、cargo add 或 go get 都会在安装任何内容之前自动接受检查。


与 AI 编码 Agent 搭配使用

将 zyrax-guard mcp 注册为 MCP 服务后,Agent 就能获得 scan_agents 工具,用于审计它即将操作的配置;还会获得 check_package 工具,在每次安装前调用(AI Agent 会幻觉出软件包名称;攻击者会预先将这些名称注册为恶意软件,而 Guard 会切断这一链条)。

一步完成注册(推荐):

zyrax-guard mcp install            # writes ./.mcp.json for this project
zyrax-guard mcp install --global   # registers globally with Claude Code (user scope)

mcp install 会写入标准的 .mcp.json(Claude Code、Cursor 和 VS Code 均可读取),并自动检测应注册 zyrax-guard mcp(PATH 中的二进制文件)还是 npx -y zyrax-guard mcp。使用 --command binary|npx 可覆盖此设置。--global 会委托给 claude mcp add -s user(如果未安装 claude CLI,则会打印手动执行的命令)。

手动单行命令(Claude Code):

claude mcp add zyrax-guard -- npx -y zyrax-guard mcp

→ Claude Code、Cursor、Windsurf、VS Code 和 Continue.dev 的 MCP 设置

Guard 已加入官方 MCP 注册表,条目为 io.github.tiagosilva07/zyrax-guard — 使用 npx -y zyrax-guard mcp 即可通过一行命令注册。


在 CI 中使用

通过门禁检查拉取请求,确保恶意或幻觉生成的依赖项无法通过构建。GitHub Action 是最快捷的方式;GitHub Actions、PyPI、crates.io 和 Go 模块的 zyrax-guard scan 配置示例请参阅 CI 指南。

→ CI 配置示例(GitHub Actions 拉取请求门禁、PyPI、crates.io、Go 模块)


隐私承诺

只有你查询的公开软件包名称会离开你的设备,用于向公开注册表 API 进行只读查询:

  • registry.npmjs.org — 检查是否存在及获取元数据
  • api.npmjs.org — 下载量
  • proxy.golang.org — 检查 Go 模块是否存在及获取版本元数据
  • api.osv.dev — 已知安全公告
  • registry.npmjs.org — 查询 Guard 的最新版本(检查更新,每天最多 1 次;设置 ZYRAX_NO_UPDATE_CHECK=1 可禁用)
  • github.com — 仅在运行 zyrax-guard upgrade 时使用(下载经过签名的发布二进制文件)

不收集遥测数据。不需要账户。不会向任何地方发送机密信息。该二进制文件可复现构建 (-trimpath),且每个版本均附带 SLSA L3 来源证明,因此你可以自行验证构建 链。


免费且开源

Zyrax Guard 采用 MIT 许可证且免费——包括 Agent 配置审计工具(scan-agents + scan_agents MCP 工具)、每项软件包检查、支持 JSON/SARIF 输出的 PR 门禁、 check_package MCP 工具以及 shell hook。你可以阅读代码并自行验证二进制文件。

面向团队的 Zyrax 平台(提供组织范围的策略、持续监控、仪表板以及审计与合规报告) 正在开发中——了解更多信息,请访问 zyrax.io。


路线图

版本项目状态
v0.1.0npm CLI:check + PR 门禁 scan(lockfile 差异)+ JSON/SARIF + 自我强化 CI已发布
v0.2.0MCP 服务(check_package)+ shell-hook(zyrax-guard init)已发布
v0.3.0PyPI + crates.io 在 check/install/hook/MCP/scan 上实现功能对等已发布
v0.4.x深度检查(--deep):静态安装/构建脚本分析 + 总体时间预算已发布
v0.5.0更名为 Zyrax;公开发布已发布
v0.6.xGitHub Action + Marketplace 条目 + curl|sh 安装程序;浮动的 @v0 标签已发布
v0.7.0scan-agents:AI Agent 配置审计(提示词注入、MCP 主机、权限)+ 第 2 阶段检测(凭据访问、数据外泄出口、MCP 工具描述注入)已发布
v0.8为 scan-agents 提供一流的 CI 展示:SARIF 输出 + GitHub 代码扫描上传 + PR 内联注释已发布
v0.9.0更新检测(每日可选择退出的通知 + 已验证的 upgrade)+ 一步式 mcp install;生产就绪:失败时默认阻止的 ERROR 判定(网络故障不再绕过门禁)、重试/退避、MCP panic 恢复、经 cosign 验证的升级、强化 CI(gitleaks/staticcheck/dependency-review);Agent 配置检测强化(匹配前先规范化混淆内容、采用允许列表风格的 MCP/exec/权限配置、zyrax-allow 抑制)已发布
v0.10.0基于全面审计进行的正确性与失败时默认阻止强化:scan 支持 npm 工作区 lockfile(monorepo 不再崩溃)、install 安装经过精确审查的 name@version、scan-agents 在目录缺失时失败并报告无法扫描的配置(超大/无法读取)、清理来自注册表的文本以防终端转义/提示词注入、未知下载统计不再被读取为“0”(避免误将 typosquat 判为 BLOCK)、每个检查入口均设置挂钟时间预算、默认启用签名验证的 upgrade、--help 以 0 退出 + 记录退出代码、install --json已发布
v0.11.x判定策略:BLOCK 仅用于恶意软件(v0.11.0)——合法软件包中的漏洞无论严重程度如何均发出 WARN(使用 --strict 才会失败);Windows scoop bucket(scoop-zyrax)+ 委托执行 upgrade,补齐 Windows 升级功能已发布
v0.12.0减少对声明式 PyPI 配置的可疑安装误报(信号现在会提供文件:行号证据);仅供参考的仓库上下文信号(GitHub 星标数/仓库年龄/最后推送时间——绝不影响判定);allow --reason 会在 .zyrax/policy.json 中记录带时间戳的审计记录已发布
v0.13.0Go modules 生态系统(--ecosystem gomod、proxy.golang.org),覆盖 check/install/hook/MCP/scan,并支持 go.sum lockfile已发布
探索中语义检测层(使用 LLM/启发式判定器检测改述/非英语提示词注入),作为 Zyrax 平台能力;由社区整理的威胁情报(共享恶意软件包和 MCP 主机源);通过 Ecosystem 扩展点支持更多生态系统(RubyGems)—

路线图项目可通过现有的 Ecosystem、ThreatIntel、Policy 和 Reporter 扩展点接入——无需重新架构。


许可证

MIT——详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。