Skills/PyPI/privacyscrubber-mcp

privacyscrubber-mcp@2.5.0.post1

CAUTION

Publisher claims: "CISO-Approved Zero-Trust PII & Secrets Redaction MCP Server for Cursor, Windsurf, and Claude Desktop" Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry PyPI (MCP server)Publisher moxno · publishing for 40 daysInstalls 674Last detonated 1 h ago

Coverage

Server started and answered tools/list.
Tested
install scripts, with decoy credentials in place · second launch with the clock 45 days ahead · MCP initialize and tools/list · every tool description, for hidden instructions · every file read, file written and host contacted by what ran
Not tested
what the tools do when called with real credentials

Before you give it your token

It will ask for
PRIVACYSCRUBBER_LICENSE_KEYPRIVACYSCRUBBER_MAX_SESSION_TOKENS or --access-token / --auth-token / --client-secretConfiguration, not credentials: CURSOR_WORKSPACE_PATH, DEBUG_PRIVACYSCRUBBER, INIT_CWD, PRIVACYSCRUBBER_COMPACT_RECEIPT, PRIVACYSCRUBBER_KEY, PRIVACYSCRUBBER_TEST_MODE, PRIVACYSCRUBBER_WORKSPACE, PROJECT_ROOT, VSCODE_CWD, WORKSPACE_FOLDER_PATHS
Where it talks to
privacyscrubber.com (its own)Also ztds.ai — 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
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 ztds.ai as well as its own vendor. The guard injects PRIVACYSCRUBBER_LICENSE_KEY, PRIVACYSCRUBBER_MAX_SESSION_TOKENS only into requests to privacyscrubber.com (and its subdomains) and refuses the rest.

$vet-skills run --secrets PRIVACYSCRUBBER_LICENSE_KEY=privacyscrubber.com,PRIVACYSCRUBBER_MAX_SESSION_TOKENS=privacyscrubber.com -- uvx privacyscrubber-mcp

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 (3 scenarios) on 2026-11-15 and scored it 62/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: Prompting user to enter sensitive credentials; Access to sensitive file paths; Access to sensitive file paths. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 28 s · 3 scenarios
t+CategoryObserved action
0.0sprocessinstall script run in the sandbox
0.1sfilesystemwrote ~/.config/Claude/claude_desktop_config.json · ~/.cursor/mcp.json
7.3sprocessdependency install exit 0
27sclaimed23 tools: audit_context, sanitize_text, reveal_text, stream_reveal_text, sanitize_file, audit_directory_for_pii, redact_file, create_default_config, generate_compliance_report, mark_false_positive, check_status, guard_exec, guard_read_file, guard_git_diff, guard_apply_patch, create_agent_rules, guard_unmask_args, guard_session_info, guard_session_reset, guard_rag_chunk, guard_rag_restore, export_audit_log, generate_procurement_memo
27stools2ff830f3a1db8e18
27stools367edeafbb949d6b
27stools6b864c0764ba4684
27stools8ae77567be32b07b
27stoolse9821b73c7fc8a3a
27stools0cd3a51cc53f147a
27stoolsdb8eb7c463dcb94f
27stools536f4d513a211dc1
27stools0855fca52745834a
27stools3e876c7541a1515a
27stools30394183568800cb
27stools99f3fa65b6f646db
27stools40705b3a79a0ed28
27stoolsa8fa3854fc532413
27stools7aeb0e66c09a4c39
27stoolscc950e4003bb72f5
27stoolsec7a022122cab927
27stools5e8639cd4141e9b0
27stoolsf19fa831d8a63d02
27stoolsbac766052f2d7b7d
27stoolsc149240947403635
27stoolsad9eb0b48aa05bec
27stools907a295465475eb9
27sprocessscript backend runs setup only
27sprocesssecond launch, clock +45 days, CI unset
27sfilesystemread ~/.config/Claude/claude_desktop_config.json · ~/.cursor/mcp.json outside project
27sfilesystemwrote ~/.config/Claude/claude_desktop_config.json · ~/.cursor/mcp.json

Static findings

CRITICAL
Prompting user to enter sensitive credentialsindex.js:2845 · Prompting user to enter sensitive credentials — social engineeringcontent: [{ type: "text", text: "Error: Missing required parameter 'token'. Provide the token to mark as false positive (e.g., '[NAME_1]')." }]Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST03
HIGH
Access to sensitive file pathsinstall.js:418 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files'1. Never read `.env`, `*secret*`, `*credentials*`, `*.pem`, `*.key`, or database dumps with native `read_file` / `cat`. Call `guard_read_file` or `sanitize_file`.',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathsmanifest.json:78 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files"description": "Zero-Trust Agentic Guard: Reads a sensitive local file (.env, config, source code) and sanitizes credentials and PII in volatile RAM."Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathsindex.js:1777 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesdescription: "List of file extensions to scan (e.g. ['.env', '.log', '.js']). If empty, scans all text files."Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathspii-masking-run.js:115 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files…de & Cursor v1.7+ if (isHookMode) { const SENSITIVE_FILE_RX = /(?:^|[\\/])(?:\.env(?:\.[a-zA-Z0-9_-]+)?|id_rsa|id_ed25519|id_ecdsa|.*\.pem|.*\.key|.*\.p12|.*\.pfx…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathsindex.js:1930 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesdescription: "The shell command to execute (e.g. 'cat .env', 'git diff', 'docker logs web', 'env')."Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathspii-masking-run.js:117 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files…RX = /(?:^|[;&|]\s*)(?:cat|head|tail|less|more|bat|sed|awk|grep)\s+[^\n|;&]*(?:\.env\b|id_rsa|\.pem\b|\.key\b|credentials\.json|\bsecrets?\.)|(?:^|[;&|]\s*)(?:print…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathsindex.js:1958 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files…c Guard: Preferred over native file read tools. Reads any sensitive local file (.env, config, credentials, source code, database dumps, .docx, .pdf, .xlsx, .eml, .r…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathspii-masking-run.js:106 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesconsole.log(" cat .env | npx ps-guard --profile dev --json");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathsindex.js:1543 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files"1. FILE READS: Before reading .env, configs, logs, database dumps, or documents (DOCX/PDF/XLSX/CSV/JSON), call 'guard_read_file' (or 'sanitize_file') instead of native file read tools.",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathsindex.js:2382 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files…mands: When running commands whose output might contain credentials or PII (cat .env, docker logs, env, git diff, psql), use `guard_exec` to sanitize output in loca…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
npx invocation of non-well-known packageinstall.js:499 · npx invocation of non-well-known package — may execute untrusted code… console.log('\x1b[36m💼 B2B 7-Day Free Trial (TEAMS $99/mo · SDK $299/mo): npx @privacyscrubber/mcp-server trial | https://privacyscrubber.com/pricing/?tier=teams&trial=true&utm_source…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionpii-masking-run.js:95 · File type combined with upload action — agent may exfiltrate local data filesconsole.log(" --diff Sanitize git diff output before committing or sending to AI");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packageinstall.js:327 · npx invocation of non-well-known package — may execute untrusted codenpx @privacyscrubber/mcp-server-install [options]Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actiontest-mcp-deep.js:82 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("--> Sending 'initialize' request...");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
Stripe-like API key pattern detectedtest-mcp-deep.js:967 · Stripe-like API key pattern detected — possible hardcoded or harvested keyif (!text102.includes('[EMAIL_1]') || text102.includes('[email protected]') || text102.includes('sk_live_9876543210abcdef')) {Fix: Never read or enumerate credential locations; accept a documented environment variable instead.
AST03
MEDIUM
MCP server using network transport (SSE/HTTP)install.js:499 · MCP server using network transport (SSE/HTTP) — data sent over network…b[36m💼 B2B 7-Day Free Trial (TEAMS $99/mo · SDK $299/mo): npx @privacyscrubber/mcp-server trial | https://privacyscrubber.com/pricing/?tier=teams&trial=true&utm_source=mcp_install\x1…Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.
AST04
MEDIUM
npx invocation of non-well-known packageindex.js:50 · npx invocation of non-well-known package — may execute untrusted codeconsole.log(' npx @privacyscrubber/mcp-server trial Request 7-day B2B TEAMS/SDK evaluation key');Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionpii-masking-run.js:104 · File type combined with upload action — agent may exfiltrate local data filesconsole.log(" npx ps-guard --wrap -- npx -y @modelcontextprotocol/server-postgres postgresql://localhost/mydb");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packageinstall.js:451 · npx invocation of non-well-known package — may execute untrusted codeconst hookCmd = 'npx -y @privacyscrubber/mcp-server --hook';Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Access to sensitive file pathstest-mcp-deep.js:910 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filestool_input: { file_path: '/workspace/.env.example' }Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathstest-mcp-deep.js:891 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filestool_input: { file_path: '/workspace/.env.production' }Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
File type combined with upload actiontest-mcp-custom-rules.js:92 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("Raw Input: ", text1);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packagepii-masking-run.js:84 · npx invocation of non-well-known package — may execute untrusted codeconsole.log(" npx ps-guard --diff [--staged] [options]");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagepii-masking-run.js:85 · npx invocation of non-well-known package — may execute untrusted codeconsole.log(" npx ps-guard --restore --token-map <file|json> [options]");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
MCP server using network transport (SSE/HTTP)index.js:4845 · MCP server using network transport (SSE/HTTP) — data sent over network…our PRO/TEAMS/SDK license key or start a 7-day B2B trial ('npx @privacyscrubber/mcp-server trial'): https://privacyscrubber.com/pricing?tier=teams&trial=true&profile=${safeProf}&utm_so…Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.
AST04
MEDIUM
File permission modification commandDockerfile:16 · File permission modification command — agent changes file ownership/permissionsRUN chown -R node:node /appFix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
MEDIUM
npx invocation of non-well-known packagesrc/privacyscrubber_mcp/server.py:485 · npx invocation of non-well-known package — may execute untrusted code# 3. Fallback to zero-dependency Python ZTDS engine (strictly air-gapped, no remote npx fetch)Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Access to sensitive file pathstest-mcp-streaming.js:19 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesthis.env = { ...process.env, ...env };Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
File type combined with upload actiontest-mcp-custom-rules.js:60 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("Raw Input: ", text1);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actiontest-mcp-deep.js:91 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("--> Sending 'tools/list' request...");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packagepii-masking-run.js:83 · npx invocation of non-well-known package — may execute untrusted codeconsole.log(" cat <file> | npx ps-guard [options]");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionpii-masking-run.js:92 · File type combined with upload action — agent may exfiltrate local data filesconsole.log(" --json Output structured JSON (scrubbedText, tokenMap, count, telemetry)");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packageindex.js:47 · npx invocation of non-well-known package — may execute untrusted codeconsole.log(' npx @privacyscrubber/mcp-server --wrap <cmd> Transparent ZTDS proxy for any 3rd-party MCP server');Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actiontest-mcp-deep.js:167 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("<-- Revealed Output:", revealedText);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actiontest-mcp.js:114 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("\n[Test 7] Testing generate_procurement_memo output...");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packageinstall.js:326 · npx invocation of non-well-known package — may execute untrusted codenpx @privacyscrubber/mcp-server init [options]Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packageindex.js:46 · npx invocation of non-well-known package — may execute untrusted codeconsole.log(' npx @privacyscrubber/mcp-server Start MCP stdio server');Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Access to sensitive file pathssrc/privacyscrubber_mcp/server.py:145 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files"1. FILE READS: Before reading .env, configs, logs, or sensitive files, call 'sanitize_file' instead of native file read tools.\n"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathstest-mcp-deep.js:895 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesthrow new Error(`pii-masking-run Test 12a (Claude PreToolUse .env) failed. Code=${hookClaudeEnv.code}, Output=${hookClaudeEnv.stdout}`);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathspii-masking-run.js:662 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files… may contain API keys, database connection strings, or customer PII (e.g. \`cat .env\`, \`docker logs\`, \`env\`, \`git diff\`), invoke the \`guard_exec\` tool inst…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Stripe-like API key pattern detectedtest-mcp-deep.js:926 · Stripe-like API key pattern detected — possible hardcoded or harvested key…ntent: [{ type: 'text', text: 'Customer email is [email protected] and API key is sk_live_9876543210abcdef' }] } }) + '\\n');", " } else if (msg.method === 'tools/call' && msg.par…Fix: Never read or enumerate credential locations; accept a documented environment variable instead.
AST03
HIGH
Access to sensitive file pathstest-mcp-deep.js:914 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesthrow new Error(`pii-masking-run Test 12c (Safe .env.example) should be allowed. Code=${hookSafeFile.code}, Output=${hookSafeFile.stdout}`);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
npx invocation of non-well-known packageinstall.js:500 · npx invocation of non-well-known package — may execute untrusted codeconsole.log('\x1b[36m📋 Generate CISO Procurement Memo: npx @privacyscrubber/mcp-server memo\x1b[0m');Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packageskills/privacyscrubber-guard/SKILL.md:17 · npx invocation of non-well-known package — may execute untrusted codeclaude mcp add privacyscrubber -- npx -y @privacyscrubber/mcp-serverFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagepii-masking-run.js:82 · npx invocation of non-well-known package — may execute untrusted codeconsole.log(" npx ps-guard --wrap [options] [--] <mcp-server-cmd> [args...]");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packageindex.js:48 · npx invocation of non-well-known package — may execute untrusted codeconsole.log(' npx @privacyscrubber/mcp-server init Auto-configure Claude, Cursor, Windsurf, Cline');Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actiontest-mcp-custom-rules.js:61 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("Scrubbed: ", output1);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actiontest-mcp-deep.js:121 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("--> Sending 'prompts/list', 'resources/list', and 'resources/templates/list' requests...");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actiontest-mcp-custom-rules.js:93 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("Scrubbed: ", output2);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
Access to sensitive file pathssrc/privacyscrubber_mcp/server.py:29 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesFORBIDDEN_PATH_SEGMENTS = ('/etc/shadow', '/etc/passwd', '/.ssh/', '/.aws/', '/.gnupg/', 'id_rsa', 'id_ed25519')Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
npx invocation of non-well-known packageskills/privacyscrubber-guard/SKILL.md:7 · npx invocation of non-well-known package — may execute untrusted codemcp_server: "npx -y @privacyscrubber/mcp-server"Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packageindex.js:49 · npx invocation of non-well-known package — may execute untrusted codeconsole.log(' npx @privacyscrubber/mcp-server uninstall Remove from IDE configurations');Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actiontest-mcp.js:94 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("\n[Test 6] Testing generate_compliance_report output (JSON & Markdown)...");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actiontest-mcp-deep.js:151 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("<-- Sanitized Output:", sanitizedText);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packagetest-mcp.js:245 · npx invocation of non-well-known package — may execute untrusted code…psellNotice.includes('profile=medical') || !freeIndustry.upsellNotice.includes('npx @privacyscrubber/mcp-server trial')) { console.error("❌ Test 10 failed: truncateIfFree upsellNotice mis…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagepii-masking-run.js:81 · npx invocation of non-well-known package — may execute untrusted codeconsole.log(" npx ps-guard [options] -- <command> [args...]");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actiontest-mcp.js:234 · File type combined with upload action — agent may exfiltrate local data filesconsole.log("\n[Test 10] Testing Free Tier quota limits vs PRO throughput...");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07

Cost to the agent

Instructions loaded
≈418 tok
1 file · 44 in bundle
Tool list per prompt
≈5,905 tok
23 tools · 257 per tool
Handshake
1229 ms
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 247

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 privacyscrubber-mcp@2.5.0.post1 as of 35 min ago. This is the package itself, not its dependencies.

What would make this Verified

18 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Reads credential files≈ +27 on the totalThe sandbox saw reads under ~/.ssh, ~/.aws, ~/.npmrc, ~/.config or similar. Read only files inside the project, and only the ones the task needs. Seen: ~/.config/Claude/claude_desktop_config.json, ~/.config/Claude/claude_desktop_config.json.
  2. Prompting user to enter sensitive credentials≈ +9 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
  3. Unclaimed publisher≈ +8 on the totalClaim moxno: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  4. 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.
  5. 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.
  6. Stripe-like API key pattern detected≈ +4 on the totalNever read or enumerate credential locations; accept a documented environment variable instead.
Publish a new version to PyPI, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim moxnoPropose a patch to the maintainer