{"name":"io.github.vmoranv/jshookmcp","slug":"vmoranv-jshookmcp","title":null,"description":"MCP server for JavaScript analysis, security auditing, browser automation and hooks","url":"https://mcp.market/server/vmoranv-jshookmcp","rating":null,"grade":"C","score":69,"certified":false,"status":"active","category":"scraping","tags":["scraping","security"],"presence":{"score":61,"stars":2021,"forks":461,"downloads_week":857,"last_push_at":"2026-09-27T11:23:03.000Z","license":"AGPL-3.0"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/vmoranv/jshookmcp","website":null,"version":"0.3.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@jshookmcp/jshook","version":"0.3.0","transport":{"type":"stdio"}}],"tools":[{"name":"activate_domain","description":"Activate all tools in a domain at once. Domains: …. Use reload_extensions first to include external plugin/workflow domains.","write_action":false,"price_micros":0,"input_schema":null},{"name":"activate_tools","description":"Dynamically register specific tools by name, regardless of current base tier. Use after search_tools to enable exactly the tools you need. In search-tier sessions this is usually enough; you do not need boost_profile just to use a few exact tools. Activated tools appear in the tool list immediately. If tools do not appear after activation, use call_tool to invoke them directly.","write_action":false,"price_micros":0,"input_schema":null},{"name":"call_tool","description":"Execute an already-active tool by name. Use this when activate_tools/activate_domain registered a tool but your client did not refresh its tool list. Does not auto-activate inactive tools.","write_action":true,"price_micros":0,"input_schema":null},{"name":"deactivate_tools","description":"Remove previously activated tools to free context. Only affects tools added via activate_tools, not base profile tools.","write_action":true,"price_micros":0,"input_schema":null},{"name":"describe_tool","description":"Get detailed information about a specific tool, including its input schema. Use this to see the exact parameters a tool expects before calling it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"route_tool","description":"One-stop tool router: accepts a natural language task description, returns recommended tools and next actions. Automatically detects workflow patterns, recommends activation order, and provides example arguments. Use this instead of search_tools when you want guided tool discovery with actionable next steps.","write_action":false,"price_micros":0,"input_schema":null},{"name":"skia_correlate_objects","description":"Correlate requested Skia node identifiers with the extracted scene tree.","write_action":false,"price_micros":0,"input_schema":null},{"name":"skia_detect_renderer","description":"Detect the active Skia renderer backend from the current page context.","write_action":false,"price_micros":0,"input_schema":null},{"name":"skia_extract_scene","description":"Extract a lightweight Skia scene tree from the selected canvas.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":69,"grade":"C","scanned_at":"2026-09-27T21:49:05.103Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T21:49:05.061Z","components":{"code":{"score":10,"max":25,"notes":["159 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 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present"},{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/ConsoleMonitor-DykL3IAw.mjs: … console.log('[ScriptMonitor] eval() called with code:', typeof…"},{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present","evidence":"package.json: …shOnly\": \"corepack pnpm run check\", \"postinstall\": \"node scripts/postinstall.cjs\", \"in…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@jshookmcp/jshook","version":"0.3.0","found":true,"license":"AGPL-3.0-only","hasInstallScripts":true,"dependencyCount":13,"publishedAt":"2026-05-01T15:37:14.405Z","repositoryUrl":"git+https://github.com/vmoranv/jshookmcp.git","weeklyDownloads":857}],"repo":{"found":true,"owner":"vmoranv","repo":"jshookmcp","archived":false,"pushedAt":"2026-09-27T11:23:03Z","stars":2021,"forks":461,"openIssues":10,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/98155299?v=4","ownerCreatedAt":"2022-01-21T09:50:34Z","license":"AGPL-3.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/98155299?v=4&s=128","source":"github"},"presence":{"stars":2021,"forks":461,"downloadsWeek":857,"license":"AGPL-3.0","lastPushAt":"2026-09-27T11:23:03.000Z","score":61}}}},"grade_history":[],"reviews":[]}