{"name":"io.github.sunglasses-dev/sunglasses","slug":"sunglasses-dev-sunglasses","title":"SUNGLASSES","description":"Input firewall for AI agents: scan text and files before an agent reads them. Local, no network.","url":"https://mcp.market/server/sunglasses-dev-sunglasses","rating":null,"grade":"C","score":57,"certified":false,"status":"active","category":"ai","tags":["ai","security"],"presence":{"score":40,"stars":10,"forks":3,"downloads_week":308,"last_push_at":"2026-10-13T23:12:52.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/sunglasses-dev/sunglasses","website":"https://sunglasses.dev","version":"0.6.8","remotes":[],"packages":[{"registryType":"pypi","identifier":"sunglasses","version":"0.6.8","runtimeHint":"python","transport":{"type":"stdio"},"runtimeArguments":[{"description":"run the module","value":"-m","type":"positional"},{"description":"the SUNGLASSES MCP server (tools: scan_text, scan_file, scanner_info)","value":"sunglasses.mcp","type":"positional"}]}],"tools":[],"scan":{"score":57,"grade":"C","scanned_at":"2026-10-13T23:13:56.285Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-13T23:13:56.254Z","components":{"code":{"score":3,"max":25,"notes":["1500 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":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"sunglasses-0.6.8/attack-db/attacks/agent-workflow-security/GLS-AW-048-guardrail-evaluation-fixture-tampering.json: …rge|rewrite|weaken|poison|mutate)\\\\s+(?:eval(?:uation)?|test|guardrail|benchmark|redt…"},{"id":"exec.shell-concat","severity":"high","component":"code","title":"Shell command built from a string (injection risk)","evidence":"sunglasses-0.6.8/attack-db/attacks/command-injection/GLS-CI-004-unquoted-shell-interpolation-injection.json: …\", \"subprocess without shlex\", \"os.system(f\", \"shell=True\", \"subprocess.call…"},{"id":"exec.shell-true","severity":"medium","component":"code","title":"subprocess with shell=True","evidence":"sunglasses-0.6.8/attack-db/attacks/command-injection/GLS-CI-004-unquoted-shell-interpolation-injection.json: …without shlex\", \"os.system(f\", \"shell=True\", \"subprocess.call(f\", \"subproc…"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"sunglasses","version":"0.6.8","found":true,"weeklyDownloads":308,"license":"MIT","dependencyCount":21,"publishedAt":"2026-10-13T15:11:22.480167Z","repositoryUrl":"https://github.com/sunglasses-dev/sunglasses"}],"repo":{"found":true,"owner":"sunglasses-dev","repo":"sunglasses","archived":false,"pushedAt":"2026-10-13T23:12:52Z","stars":10,"forks":3,"openIssues":17,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/272137246?v=4","ownerCreatedAt":"2026-03-30T07:18:36Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/272137246?v=4&s=128","source":"github"},"presence":{"stars":10,"forks":3,"downloadsWeek":308,"license":"MIT","lastPushAt":"2026-10-13T23:12:52.000Z","score":40}}}},"grade_history":[],"reviews":[]}