SafeDep Vet MCP

SafeDep vet MCP: an agent checks npm and PyPI packages for malware, vulnerabilities and name squatting before install.

  • 1,125 ★ on the repository
  • Last commit
  • Apache-2.0
MCP serverOfficial

Minimal access

Why this level

  • Reads package data from SafeDep and changes nothing; the ecosystem, name and version of a package go to a third party.
All reasons and checks

safedep/vet

Install

Manual install

brew install vet

The first command from the version 1 README; `npm install -g @safedep/vet` is an alternative.

Access and checks

How we review

Minimal accessThe tool runs nothing and makes no network calls.

  • Reads package data from SafeDep and changes nothing; the ecosystem, name and version of a package go to a third party.

This is third-party code. Review the repository files before installing.

What it does

vet is SafeDep's dependency security tool, and in the version 1 branch it runs as an MCP server for Claude Code, Cursor and other clients. The assistant checks an open source package against SafeDep data before installation: it looks for malicious code, critical vulnerabilities and signs of slopsquatting, meaning package names a model invented that an attacker has registered. The npm and PyPI ecosystems are supported. The server starts with `vet server mcp` over stdio or SSE. For stdio the client configuration usually points to the `ghcr.io/safedep/vet` Docker image, and SSE has Host and Origin checks with localhost addresses by default. The agent rule is simple: before installing any suggested package look for its latest version, and if none is found it signals slopsquatting. Besides the local server SafeDep runs a hosted MCP with lower latency and real-time protection.

Who it is for. Developers and teams who write code with agents and do not want a model-invented package name to bring malware into the project.

Good fit when

  • The agent suggests a parsing library and it is checked for malicious code before installation.
  • A Cursor rule requires checking every npm or PyPI package that appears in generated code.
  • You need to know whether a package has a latest version and critical vulnerabilities.
  • A team runs a local SSE server for several editors on one host.

Not a fit when

  • Dependencies are outside npm and PyPI, which are the only ecosystems the MCP server supports.
  • You need lock file scanning in CI, which the `vet scan` command itself does.
  • The MCP server from version 2 is required, but it was removed, and `vet server mcp` exists only in version 1.

Example request

Check the express package and a package with an unfamiliar name on npm before I install them and tell me whether there is malicious code or critical vulnerabilities.

MCP

Transport
stdio, sse
Authentication
not required

Limitations

The MCP server is described in the documentation of the `main` branch (version 1). The repository default branch is now version 2 in alpha, where `vet server mcp` was removed, while the 1.x release stays current. Only npm and PyPI are supported. For checks the package goes to SafeDep: the tool sends the ecosystem, name and version, but no source code. SSE has Host and Origin checks, and on another port the lists are changed with the `--sse-allowed-hosts` and `--sse-allowed-origins` flags. The Docker image needs periodic updates.

How to disable. Remove the vet-mcp entry from the client MCP configuration and the rule in `.cursor/rules/vet-mcp.mdc` or `.github/copilot-instructions.md`. Uninstall the tool the way you installed it (`brew uninstall vet` or `npm uninstall -g @safedep/vet`).

FAQ

How do I connect vet-mcp to Cursor?

Add a `vet-mcp` server to `.cursor/mcp.json` with the command `docker` and the arguments `run --rm -i ghcr.io/safedep/vet:latest -l /tmp/vet-mcp.log server mcp`. Put a rule to check every suggested package in `.cursor/rules/vet-mcp.mdc`.

What is slopsquatting?

An attack in which someone registers a package name that a language model invented. If a package has no latest version, the documentation treats it as a likely sign of slopsquatting.

How do I run the server over SSE?

Run `vet server mcp --server-type sse`. Default addresses are limited to localhost with port 9988, and other hosts and origins are set with the `--sse-allowed-hosts` and `--sse-allowed-origins` flags.

Which ecosystems are supported?

Currently npm and PyPI. For other ecosystems use the regular `vet scan` on lock files.

Where did the MCP server go in version 2?

In the version 2 alpha `vet server mcp` is removed, as the 2.0.0 release notes say. Version 1 lives on the `main` branch and counts as the latest release.

Discussion

No questions or reviews yet.

Official

The official Socket MCP server scores the security of npm, PyPI, cargo and other dependencies inside an agent chat.

MCP serverExtended access141Repository stars

Checks package versions for known vulnerabilities before install across npm, PyPI, Cargo, Go, Maven and more, with MCP and hooks

CLIExtended access62Repository stars

An MCP server that gives the agent vulnerability triage: NVD data, EPSS, the CISA KEV catalog, MITRE ATT&CK mapping and one-call CVE risk scoring

MCP serverExtended access1.8KRepository stars

Security scanner for coding agents: checks code, MCP servers, prompts and model-invented packages, and gives an A to F grade.

MCP serverExtended access123Repository stars

Security scanner for MCP servers that looks for hardcoded keys, tool poisoning and injection flaws in repository code.

CLIMinimal access140Repository stars

NPMScan plugin and MCP server: checks npm packages for malware and vulnerabilities, including install scripts and provenance

MCP serverMinimal access503Repository stars

README in short

The docs/mcp.md document on the `main` branch describes stdio and SSE startup, Host and Origin protection and configurations for Cursor, VS Code and Claude Code. A note recommends SafeDep's own hosted MCP server.

README badge

Report a problem