{"name":"io.github.pzalutski-pixel/netlens","slug":"pzalutski-pixel-netlens","title":"NetLens","description":"Read any web page as clean, ad-stripped Markdown past robots.txt and bot blocks, plus web search.","url":"https://mcp.market/server/pzalutski-pixel-netlens","rating":null,"grade":"D","score":51,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":19,"stars":0,"forks":0,"downloads_week":63,"last_push_at":"2026-07-26T22:23:32.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/pzalutski-pixel/netlens-mcp","website":null,"version":"0.2.3","remotes":[],"packages":[{"registryType":"npm","identifier":"netlens-mcp","version":"0.2.3","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Default search backend: auto, duckduckgo, bing, mojeek, or searxng","format":"string","default":"auto","name":"NETLENS_SEARCH_ENGINE"},{"description":"Base URL of a SearXNG instance to use when engine=searxng (e.g. https://searx.example.org)","format":"string","name":"NETLENS_SEARXNG_URL"}]},{"registryType":"pypi","identifier":"netlens-mcp","version":"0.2.3","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Default search backend: auto, duckduckgo, bing, mojeek, or searxng","format":"string","default":"auto","name":"NETLENS_SEARCH_ENGINE"},{"description":"Base URL of a SearXNG instance to use when engine=searxng (e.g. https://searx.example.org)","format":"string","name":"NETLENS_SEARXNG_URL"}]}],"tools":[],"scan":{"score":51,"grade":"D","scanned_at":"2026-09-24T21:41:12.852Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T21:41:12.867Z","components":{"code":{"score":1,"max":25,"notes":["8 source files scanned","10 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":12,"max":15,"notes":["last push 60 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.shell-concat","severity":"high","component":"code","title":"Shell command built from a string (injection risk)","evidence":"bin/netlens-mcp.js: …hon\"]) { try { const output = execSync(`${cmd} --version`, { encoding: \"ut…"},{"id":"exec.shell-concat","severity":"high","component":"code","title":"Shell command built from a string (injection risk)","evidence":"netlens_mcp-0.2.3/npm/bin/netlens-mcp.js: …hon\"]) { try { const output = execSync(`${cmd} --version`, { encoding: \"ut…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"netlens-mcp","version":"0.2.3","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":0,"publishedAt":"2026-07-26T22:23:59.557Z","repositoryUrl":"git+https://github.com/pzalutski-pixel/netlens-mcp.git","weeklyDownloads":36},{"registryType":"pypi","identifier":"netlens-mcp","version":"0.2.3","found":true,"weeklyDownloads":27,"license":"Apache-2.0","dependencyCount":3,"publishedAt":"2026-07-26T22:24:10.899708Z","repositoryUrl":"https://github.com/pzalutski-pixel/netlens-mcp"}],"repo":{"found":true,"owner":"pzalutski-pixel","repo":"netlens-mcp","archived":false,"pushedAt":"2026-07-26T22:23:32Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/233374271?v=4","ownerCreatedAt":"2025-09-20T01:31:38Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/233374271?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":63,"license":"Apache-2.0","lastPushAt":"2026-07-26T22:23:32.000Z","score":19}}}},"grade_history":[],"reviews":[]}