mcpvetter@0.1.3
CAUTION· startup onlyPublisher claims: "Audit your MCP servers for poisoned tools and leaked secrets, and check AI-generated code for flaws." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Startup only; authenticated tool behavior not tested.- Tested
- server startup over stdio (initialize sent) · every file read, file written and host contacted by what ran
- Not tested
- the tool list (the server exited before answering) · what the tools do when called with real credentials
What this means for the label: Caution here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
- It will ask for
MCPVETTER_API_KEYConfiguration, not credentials: MCPVETTER_HOME, MCPVETTER_ORIGIN, NAME, SQL_KEYWORD_RE- Where it talks to
- mcpvetter.com (its own)Also fixed.com — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- the tool list (the server exited before answering) · what the tools do when called with real credentials
Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names fixed.com as well as its own vendor. The guard injects MCPVETTER_API_KEY only into requests to mcpvetter.com (and its subdomains) and refuses the rest.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; startup only; authenticated tool behavior not tested) on 2026-11-11 and scored it 58/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; Access to sensitive file paths; Bidirectional text override characters detected. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 30 s · 2 scenariosStatic findings
…on, or redirection, and any argument that pipes a download into an interpreter (curl ... | sh). The plain Windows wrapper `cmd /c npx ...` is not flagged.", lab: "lab-10…Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.* false positives, and false positives are what kill this product.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.// npx / bunx / pnpm dlx / yarn dlxFix: Pin versions and sources; vendor anything fetched at install time.…download into an interpreter (curl ... | sh). The plain Windows wrapper `cmd /c npx ...` is not flagged.", lab: "lab-10-mcp-install", pattern: "mcp-config", …Fix: Pin versions and sources; vendor anything fetched at install time.…ger (process.env.NAME, os.environ[\"NAME\"]) and keep the value in an untracked .env file or your platform's secret store.", method: "Flags string literals that…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.fix: "Pin an exact version you have reviewed (npx -y [email protected], uvx package==1.2.3, image:tag or image@sha256:...), and re-scan after each deliberate upgrade.",Fix: Pin versions and sources; vendor anything fetched at install time.const ENV_REF_FIX = 'Claude Code and Claude Desktop expand "${VAR}" in .mcp.json, Cursor expands "${env:VAR}", and VS Code supports "${input:...}" prompts or an "envFile".';Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.{ re: /(?:~|\$HOME|%USERPROFILE%)?[\\/]\.(?:ssh|aws|gnupg|kube|docker)\b|\bid_(?:rsa|ed25519|ecdsa)\b|\.npmrc\b|\.netrc\b|\bcredentials\.json\b/i, label: "references credential files" },Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…very update.", method: "Parses MCP configuration JSON found in the snippet (mcpServers, servers, mcp.servers) and flags: npx/bunx/uvx/pipx packages without an exact version (including @latest); secret-looking values in env, headers or args…Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.…This remote server cannot read your files: pass the JSON of your MCP config (mcp.json, .mcp.json, claude_desktop_config.json). Secret values are redacted in the output and the config is not stored.", inputSchema: { config: z.st…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why./** Unwrap `cmd /c npx ...` (the standard Windows wrapper) so the real launcher is analysed. */Fix: Pin versions and sources; vendor anything fetched at install time.// `--json out.json` form: treat a following .json positional as the output file.Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why."build": "tsc -p tsconfig.json && chmod +x dist/cli.js",Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.const INVISIBLE = /[\u{E0000}-\u{E007F}----]/u;Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.…desktop_config.json). For a full local scan including live tool inspection run: npx mcpvetter scan --live"); const blocked = await gate(backend, "check_mcp_setup"); …Fix: Pin versions and sources; vendor anything fetched at install time.… someone else's code to run.", fix: "Pin every package to an exact version (npx -y @scope/[email protected], uvx package==1.2.3), reference secrets as ${ENV_VAR} inste…Fix: Pin versions and sources; vendor anything fetched at install time.…etup or a server is safe. Static and local; for tool-description poisoning run `npx mcpvetter scan --live` in a terminal." : "Audit an MCP configuration for leak…Fix: Pin versions and sources; vendor anything fetched at install time.…clude|attach|pass|send|upload)\b[^.]{0,60}\b(?:mcp\.json|claude_desktop_config|\.env\b|\.cursor[\\/]mcp|\.claude\.json)/i, label: "asks the model to read MCP or env…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const INVISIBLE = /[\u{E0000}-\u{E007F}----]/u;Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.const ENV_LOOKUP_RE = /process\.env|os\.environ|getenv|import\.meta\.env|Deno\.env|config\(|secrets\./;Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.fix: "Launch the server binary or package directly with a pinned version (for example npx -y [email protected]) and pass configuration through env, not a shell one-liner.",Fix: Pin versions and sources; vendor anything fetched at install time./** Unwrap `cmd /c npx ...` (the standard Windows wrapper) so the real launcher is analysed. */Fix: Pin versions and sources; vendor anything fetched at install time.…on, or redirection, and any argument that pipes a download into an interpreter (curl ... | sh). The plain Windows wrapper `cmd /c npx ...` is not flagged.", lab: "lab-10…Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.return text(`${head}\nNo findings from static checks.${r.notes.length ? `\n${r.notes.join("\n")}` : ""}\nFor tool-description poisoning and drift checks run: npx mcpvetter scan --live`);Fix: Pin versions and sources; vendor anything fetched at install time.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
No advisories in OSV for mcpvetter@0.1.3 as of 3d ago. This is the package itself, not its dependencies.
What would make this Verified
22 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Pipe-to-shell pattern≈ +9 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- Unclaimed publisher≈ +8 on the totalClaim mcpvetter: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Touches files outside the project≈ +7 on the totalKeep reads and writes inside the working directory, or declare the exact paths in `filesystem:` and explain why in the README.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Bidirectional text override characters detected≈ +4 on the totalReplace encoded or assembled strings with plain literals and remove undeclared network calls.
- Hidden zero-width characters detected≈ +4 on the totalKeep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.