{"name":"io.github.CloudCorpRecords/hookcheck","slug":"cloudcorprecords-hookcheck","title":null,"description":"Persistence hook auditor: scan repos for auto-exec hooks, flag Shai-Hulud patterns.","url":"https://mcp.market/server/cloudcorprecords-hookcheck","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"security","tags":["security"],"presence":{"score":32,"stars":0,"forks":0,"downloads_week":2896,"last_push_at":"2026-10-23T09:24:50.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/CloudCorpRecords/hookcheck","website":null,"version":"0.1.18","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@reneturcios/hookcheck","version":"0.1.18","runtimeHint":"npx","transport":{"type":"stdio"},"packageArguments":[{"value":"mcp","type":"positional"}]},{"registryType":"oci","identifier":"ghcr.io/cloudcorprecords/hookcheck:0.1.18","runtimeHint":"docker","transport":{"type":"stdio"},"runtimeArguments":[{"type":"named","name":"--rm"},{"type":"named","name":"-i"}],"packageArguments":[{"value":"mcp","type":"positional"}]}],"tools":[{"name":"explain_hook","description":"Explain one hook found by scan_hooks: its command, classification, rules that fired, and what the classification means. Pass the hook id (e.g. package.json:postinstall) or its file path.","write_action":false,"price_micros":0,"input_schema":null},{"name":"scan_hooks","description":"Scan a local repo directory for auto-exec hooks: npm install scripts, Claude Code settings hooks, VS Code folderOpen tasks, husky, lefthook, pre-commit, Cursor and Codex configs, MCP autostart configs, and GitHub workflow run steps. Classifies each hook SAFE, RISKY, or UNKNOWN and returns a CLEAN, REVIEW, or COMPROMISED-PATTERN verdict with evidence per finding. Deterministic, local only, no netwo","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-10-24T16:17:58.382Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-24T16:17:58.380Z","components":{"code":{"score":20,"max":25,"notes":["12 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/core.js: …url); const code = await * res.text(); eval(code)). The REMOTE-EVAL pattern misses t…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@reneturcios/hookcheck","version":"0.1.18","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-10-23T08:58:16.887Z","repositoryUrl":"git+https://github.com/CloudCorpRecords/hookcheck.git","weeklyDownloads":2896}],"repo":{"found":true,"owner":"CloudCorpRecords","repo":"hookcheck","archived":false,"pushedAt":"2026-10-23T09:24:50Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/95189389?v=4","ownerCreatedAt":"2021-11-28T20:36:35Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/95189389?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":2896,"license":"MIT","lastPushAt":"2026-10-23T09:24:50.000Z","score":32}}}},"grade_history":[],"reviews":[]}