1. Conduid
  2. Security
  3. safedep/vet
MCP server · Security

safedep/vet

Protect against malicious open source packages 🤖

87Excellent

Scored 6 days ago · breakdown

About safedep/vet

safedep/vet is an MCP server published by safedep in the Security category: protect against malicious open source packages 🤖.

The repository has 1.1K stars and 115 forks, with the last commit 17 hours ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

Claude Code
claude mcp add vet -- npx -y @booyaka/mcp-vet
npx
npx -y @booyaka/mcp-vet

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about safedep/vet

Powered by Claude · Grounded in docs

I know everything about safedep/vet. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 1 hours ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • !No dynamic code executionSource scan found eval or shell execution. Review how tool inputs reach it before granting credentials.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v1.20.0v1.20.0 · 7 Oct 2026Changelog 568cb0e1c90685dd89f07f91c64e97a49228a47f Add discovery for more AI coding agents to vet ai discover (#802) 4d957f9cd6b721d33e984da19d91753b7ac7d56b Merge pull request #794 from safedep/fix/wsl-extension-dirs…
v1.19.1v1.19.1 · 16 Sep 2026Changelog 125dc69218d3a08650d4fdee366f1bab9ffef72e Fix installation command for macOS & Linux 7680557fd09d9a72b48558d17a41bb6a31fb4d49 Merge pull request #774 from safedep/KunalSin9h-patch-2 d477dceda16242d598b3e3e1c5516f9a33796a8b…
v1.19.0v1.19.0 · 27 Aug 2026Changelog a93ca8af07d952df113cd5d2ee2b7a8e6d9e8d99 feat(auth): retry transient failures and time out cloud gRPC calls (#771) 36cde5fae105bb674237855aa230725fd8fe435b feat(inventory): add Neovim plugin scanner (lazy.nvim) (#766)…
v1.18.2v1.18.2 · 13 Aug 2026Changelog 2acac2e1a0bd64ca46e0436bcd4da6f492aa1964 feat: port vet to nx based release automation (#741) 2ae1aafb98075e49f28fb725e2d4584af8ba2763 fix(analyzer): compare hostname when matching npm trusted registry URLs (#760)…
v1.18.1v1.18.1 · 30 Jul 2026Changelog 67abab1b0ec915713edb50e5e5b36687fd4cd86a Merge pull request #758 from safedep/feat/ai-signatures-refresh 009c981cbaa8e5acec17aeb96bccaaf92ceddb2c docs(xbom): update language and AI coverage lists…

README

Release Build OpenSSF Scorecard License Discord

Install • Docs • Commands • Policy • Discord

[!NOTE] This branch is vet v2, in alpha. vet v1 is on main and stays the latest release. The v2.0.0 release notes map each v1 command and flag to v2.

Why vet

Your dependencies, your GitHub Actions workflows and your AI agent configs run code that you did not write. vet finds the risk in them.

  • Malicious packages. vet checks each package against SafeDep Threat Intel. Threat Intel analyzes new package versions when the registries publish them.
  • Known vulnerabilities, with the fixed version to upgrade to.
  • Risky workflows. Dangerous triggers, template injection, exposed secrets and actions with no pinned commit SHA.
  • Lockfile tampering and fresh versions. Entries from an untrusted registry, and versions inside the cooldown window.
  • Policy as code. Rules in CEL decide when a scan fails. You can test a rule on a saved scan.
  • AI and crypto inventory. vet lists the AI libraries and the crypto algorithms that your code calls, and writes a CycloneDX xBOM and CBOM.

vet needs no account and sends no source code.

Quick start

brew install --cask safedep/tap/vet@edge
vet scan
vet scan --fail-on high                         # exit 1 on a high or critical finding
vet scan --base-ref origin/main --fail-on high  # report only what a pull request changes
vet report show --report sarif=vet.sarif        # write SARIF from the saved scan, with no new scan

Install

Channel Command
Homebrew brew install --cask safedep/tap/vet@edge
mise mise use -g 'github:safedep/vet[prerelease=true]@2'
Go go install github.com/safedep/vet/v2/cmd/vet@latest
Container docker run --rm -v "$PWD:/src" -w /src ghcr.io/safedep/vet:v2-latest scan

mise installs a release one day after its publication. install.md has the command for the newest build, the release binaries and the build attestations.

What vet scans

Target Example
A directory (the default) vet scan, vet scan ./service
A git repository vet scan https://github.com/safedep/vet
A container image vet scan oci://alpine:3.20, vet scan image.tar
An SBOM (CycloneDX or SPDX) vet scan sbom.cdx.json
One package vet scan pkg:npm/express@4.19.2
The tools on this machine vet endpoint audit

vet reads the lockfiles and manifests of npm, PyPI, Go, Maven, Gradle, Cargo, RubyGems, NuGet, Packagist, Pub and more. It also reads the GitHub Actions workflows and the AI agent configs of the target. It does not install or run any of them. Controls turn this data into findings. See controls.md.

Policy

A policy decides when a scan fails. Save this file as vet-policy.yml:

version: 2
rules:
  - id: no-malware
    description: A malicious or suspicious package fails the build.
    when: finding.family == "malware"
    action: fail
  - id: no-workflow-injection
    when: finding.control_id in ["dangerous-trigger", "template-injection"]
    action: fail
  - id: no-critical-vulnerability
    when: finding.control_id == "vulnerability" && finding.severity == "critical"
    action: fail
  - id: new-dependency-age
    description: A pull request cannot add a version that is less than 14 days old.
    when: package.change == "ADDED" && has(package.days_since_publish) && package.days_since_publish < 14
    action: fail
suppressions:
  - purl: pkg:npm/lodash@4.17.20
    reason: The upgrade to 4.18.1 is in pull request 42.
    expires: 2026-12-31

Test it on the last scan, with no new scan. Then apply it to a pull request:

vet report show last --policy vet-policy.yml
vet scan --base-ref origin/main --policy vet-policy.yml

After its expiry date, the suppression no longer hides the finding. Read policy.md for the rule fields, more rules and the Agent Skill that writes a policy for you.

Use cases

  • Pull request check. The vet GitHub Action comments on a pull request that adds a package, a workflow or a finding, and fails the check on an attack. vet ci init adds it to a repository.
  • CI gate. Exit codes, SARIF for GitHub code scanning, GitLab and Bitbucket reports. See ci.md.
  • Pull request review. --base-ref reports only the packages and workflows that a change adds.
  • xBOM and CBOM. A CycloneDX 1.7 inventory of the AI libraries and the crypto that your code uses. See inventory.md.
  • AI agents. vet finds Claude Code and other agents, and then writes JSON and never prompts.
  • Endpoint audit. vet endpoint audit lists the AI tools, MCP servers, editor extensions and global npm packages on a developer machine, and checks them for malware.

Documentation

Page Read it for
Install All channels and how to verify a release
Commands Every command, its flags and its exit codes
Controls The controls and their options
Policy Rules, suppressions and the gate
Output Report formats, saved scans and configuration
CI and AI agents GitHub Actions, GitLab, Bitbucket and agent mode
Inventory Code usage, AI and crypto, xBOM and CBOM

Privacy

vet sends the identity of each package (its ecosystem, name and version) to SafeDep to get the data about it. vet sends no source code and no file content.

Community

vet also runs in the cloud. SafeDep Cloud runs vet on your repositories, with no infrastructure to manage.

README fetched from the repository 1 hours ago. The original is authoritative.

Questions

About safedep/vet

How do I install safedep/vet?

Run claude mcp add vet -- npx -y @booyaka/mcp-vet, then add the server to your MCP client's configuration.

Is safedep/vet safe to use with an AI agent?

Its trust score is 87 out of 100 (excellent). It passes 4 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is safedep/vet still maintained?

Yes — the latest release is v1.20.0 (7 Oct 2026), and the last commit was 17 hours ago. The repository has 1.1K stars and 112 open issues.