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
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.
Install
- Works in
Manual install
brew install vetThe first command from the version 1 README; `npm install -g @safedep/vet` is an alternative.
Access and checks
How we reviewMinimal 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.
Related
MCP serversThe official Socket MCP server scores the security of npm, PyPI, cargo and other dependencies inside an agent chat.
Checks package versions for known vulnerabilities before install across npm, PyPI, Cargo, Go, Maven and more, with MCP and hooks
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
Security scanner for coding agents: checks code, MCP servers, prompts and model-invented packages, and gives an A to F grade.
Security scanner for MCP servers that looks for hardcoded keys, tool poisoning and injection flaws in repository code.
NPMScan plugin and MCP server: checks npm packages for malware and vulnerabilities, including install scripts and provenance
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.