{"name":"io.github.Slowper/anylens","slug":"slowper-anylens","title":null,"description":"Turn videos, PDFs, screenshots, and articles into anchored, cached understanding for agents.","url":"https://mcp.market/server/slowper-anylens","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":17,"stars":0,"forks":0,"downloads_week":30,"last_push_at":"2026-08-07T02:48:35.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Slowper/anylens","website":null,"version":"0.5.3","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"anylens","version":"0.5.3","runtimeHint":"npx","transport":{"type":"stdio"},"packageArguments":[{"value":"mcp","type":"positional","valueHint":"mcp"}]}],"tools":[{"name":"analyze","description":"Analyze a URL — video, audio, PDF (incl. scanned/figure-heavy via vision), web article, or image — into a cached Understanding Object. Returns a job id to poll with `status` — or the finished summary instantly when the URL was analyzed before.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ask","description":"Ask one question about an already-analyzed source. Answers come only from the cached analysis, with anchors — and say plainly when the source does not answer the question. No re-analysis, so it is fast and cheap; answers are cached per question.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audio","description":"Narrate a lens render to an mp3 — listen instead of reading or watching. Uses the offline system voice (macOS), and strips timestamps, diagrams, and markdown so the script actually sounds like prose.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clip","description":"Cut the segment of a video/audio source that matches a plain-language query (\"the part where they explain attention\"). Downloads only those seconds, so it is fast even on long sources. Returns the clip file path plus a deep link. Refuses rather than guessing when the source does not contain it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"export","description":"Export a lens render: markdown (Obsidian-ready, with frontmatter), anki (TSV flashcard deck — needs the student lens), json (full contract), or html (self-contained page). Writes the file and returns its path; small files also come back inline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"lens","description":"Render a cached Understanding Object through a lens (see `lenses` for the catalog; \"raw\" returns the object itself, no LLM). Returns { data, markdown } — structured for agents, readable for humans; include_html adds a self-contained explainer page. Optional focusing question. Renders are cached.","write_action":false,"price_micros":0,"input_schema":null},{"name":"lenses","description":"List available lens profiles (name, title, when to use, audience).","write_action":false,"price_micros":0,"input_schema":null},{"name":"status","description":"Poll an analyze job. Long-polls up to wait_seconds; returns the finished summary (with source_id) when done. While running, reports elapsed seconds and the stage history so you can see where the time goes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"style_apply","description":"Apply a saved style to NEW work: pass a brief to get a production plan (beat table, audio direction, shot-level prompts) in that style, or content to have it reshaped. Returns { markdown, data } plus an explicit list of rules it could not follow.","write_action":false,"price_micros":0,"input_schema":null},{"name":"style_extract","description":"Learn a reusable style from one or more already-analysed sources and save it as a named pack. More sources means genre norms rather than one piece's choices. Sources need the production pass (analyze with include_production).","write_action":false,"price_micros":0,"input_schema":null},{"name":"style_list","description":"List saved style packs — reusable craft learned from analysed sources (pacing, structure, motion, audio, typography rules), each rule traced to the sources it came from.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-24T05:04:12.321Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T05:04:12.302Z","components":{"code":{"score":25,"max":25,"notes":["65 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 48 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"anylens","version":"0.5.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-08-07T02:35:39.204Z","weeklyDownloads":30}],"repo":{"found":true,"owner":"Slowper","repo":"anylens","archived":false,"pushedAt":"2026-08-07T02:48:35Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/147919463?v=4","ownerCreatedAt":"2023-10-14T10:59:34Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/147919463?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":30,"license":"MIT","lastPushAt":"2026-08-07T02:48:35.000Z","score":17}}}},"grade_history":[],"reviews":[]}