mcpField
A
anylens

anylens

本地服务
github.com/SlowperAI 与智能体012 周前更新

关于 anylens

anylens 分析视频、PDF、图片、音频和文章,再通过面向不同受众的视角呈现带来源定位的结果。它适用于需要核验媒体内容或从中提取可实施规格的 Agent 和用户。

主要功能

  1. 01分析视频、PDF、图片、音频和文章
  2. 02将观点定位到时间戳或页码
  3. 03缓存一次分析以供多种视角使用
  4. 04生成含验收标准的规格
  5. 05提取并应用可复用的视频风格
  6. 06导出片段、音频和学习材料

适用场景

  1. 01将演讲整理为开发步骤或学习笔记
  2. 02依据来源时间点或页码核验观点
  3. 03从参考资料生成实施要求
  4. 04研究或复现视频的视听风格

MCP 相关

anylens 通过标准 MCP over stdio 提供服务。其工具可分析来源、生成不同视角的内容、回答带来源定位的问题、创建片段和导出文件,并提取或应用风格。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"slowper-anylens": {
"command": "npx",
"args": [
"-y",
"anylens"
]
}
}
}
启动命令npx -y anylens

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmanylens0.5.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

anylens

任意链接,任意视角。 粘贴一个 URL——会议演讲、产品演示、内容密集的 PDF、文章——即可获取针对提问者量身打造的理解结果,每条结论都链接到它所依据的确切秒数或页码。

Agent 可以读取文本。anylens 让它们读取其他所有内容——并让你核查它们的工作。

analyze(url)  →  one cached Understanding  →  lens(source, "student")
                                           →  lens(source, "spec")
                                           →  lens(source, "uiux")   …

为什么不直接让聊天机器人总结?

摘要是条死路。你无法验证,也无法在不再次付费的情况下换个角度解读;它看不到屏幕上显示的内容,Agent 也无法据此采取行动。anylens 解决了这四个问题:

  • 可验证——每条结论都带有时间戳或页码。stated 不会和 inferred 混为一谈。缺失的分析会明确指出,而非隐藏起来。
  • 多个读者,共享一次提取——高成本的处理只运行一次,并永久缓存;第二个视角既便宜又即时。
  • 读取实际展示的内容——屏幕上的代码、幻灯片、UI 状态、演示,不只是文字。即使是无声的 10 秒屏幕录制,也能生成完整分析。
  • 也为 Agent 而打造——spec 视角可通过 MCP 将任何来源转化为带验收标准、可供实施的需求。
  • 了解内容的制作方式——对于视频,制作分析环节会捕捉音乐、声音设计、镜头节奏、运动和字体,并将其转化为你(或生成器)可以重现的制作方案。内容视角让 Agent 了解;blueprint 视角让它创作。

视角

视角适用场景提供内容
student无需观看即可学习分层讲解、概念图、抽认卡
developer基于内容进行构建屏幕上展示的代码、决策、实施步骤
uiux设计研究屏幕、流程、交互模式
researcher可引用的笔记结论 + 证据,每条都有依据
teardown竞品分析功能(展示内容与声称内容)、流程、定位
spec编码 Agent需求、验收标准、模糊之处
blueprint重现内容音乐、声音设计、镜头节奏、运动、字体——作为制作方案
design“照着这个样子做”经测量的颜色令牌、间距与字体节奏、组件——可直接粘贴的 CSS
ask一个具体问题有依据的回答——或坦诚说明“来源中没有回答这个问题”
rawAgent、调试理解对象本身——不使用大模型,不产生费用

视角是 src/lenses/ 中的独立 Markdown 文件。添加视角只需添加一个文件——无需编写代码。

除了视角之外:anylens 还可以从已分析的视频中学习可复用的风格——将节奏、结构、外观、运动和声音提炼为可移植的规则,每条规则都附带其学习依据的时间戳——然后按该风格规划新作品(通过 MCP 使用 style_extract / style_apply,或在 Web UI 中点击“学习此风格”)。

快速开始

前置条件:Bun 1.3+、yt-dlp 和 ffmpeg(macOS 上运行 brew install yt-dlp ffmpeg)。

git clone https://github.com/Slowper/anylens && cd anylens
bun install

密钥——运行 bun run web,然后在你的密钥页面粘贴密钥(保存时会验证),或者自行创建 ~/.anylens/env(权限模式为 600):

GOOGLE_API_KEY=...      # required: analysis, structuring, lens rendering
GROQ_API_KEY=...        # optional: Whisper transcripts for sources without captions
ANTHROPIC_API_KEY=...   # optional: run the writing on Claude instead
OPENAI_API_KEY=...      # optional: run the writing on an OpenAI model instead

可从 aistudio.google.com 和 console.groq.com 获取。除了你向这些 API 发出的调用外,没有任何内容会离开你的设备。文本层与提供商无关:设置 ANYLENS_TEXT_MODEL=anthropic(或 groq,或 openai/<model>),即可选择由谁编写视角内容和回答——媒体处理仍由 Gemini 完成,因为它确实最擅长这项工作。

试试看——在终端中运行:

bun bin/anylens.ts "https://www.youtube.com/watch?v=..."              # student explainer
bun bin/anylens.ts ./screenshot.png --lens design --export css        # tokens you can paste
bun bin/anylens.ts ~/Desktop/demo.mov --lens blueprint                # files on your machine work too
bun bin/anylens.ts "<url>" --lens spec                                # any lens
bun bin/anylens.ts "<url>" --ask "does this cover error handling?"    # one anchored answer
bun bin/anylens.ts "<url>" --clip "where they demo the CLI"           # cut that segment to mp4
bun bin/anylens.ts "<url>" --export anki                              # flashcard deck (or markdown/json/html)
bun bin/anylens.ts "<url>" --audio                                    # narrate it to an mp3
bun bin/anylens.ts "<url>" --open                                     # render the page and open it

首次分析需要几分钟,之后会永久缓存,因此同一链接上的后续视角都会即时返回。传入 source_id 而非 URL,即可为已分析的内容生成新视角。

也可以使用 Web UI:

bun run web        # → http://127.0.0.1:4517 — paste a link, pick a lens

在 Agent 中使用 — 任意 MCP 客户端

anylens 通过标准 MCP over stdio 通信,因此 Claude Code、Codex、Cursor、Gemini CLI 以及其他支持 MCP 的工具都可以用同样的方式使用它。

# Claude Code
claude mcp add --scope user anylens -- bun /absolute/path/to/anylens/bin/anylens.ts mcp
# Codex CLI — ~/.codex/config.toml
[mcp_servers.anylens]
command = "bun"
args = ["/absolute/path/to/anylens/bin/anylens.ts", "mcp"]
// Gemini CLI (~/.gemini/settings.json), Cursor (~/.cursor/mcp.json), or any other client
{ "mcpServers": { "anylens": { "command": "bun", "args": ["/absolute/path/to/anylens/bin/anylens.ts", "mcp"] } } }

发布到 npm 后,npx anylens mcp 将在所有地方取代路径形式。

工具:analyze(url) → status(job_id) → lens(source_id, lens) · ask(source_id, question) · clip(source_id, query) · export(source_id, format) · audio(source_id) · style_extract / style_apply / style_list · lenses()。 lens 返回 { data, markdown } — 为 Agent 提供类型化 JSON,为人类提供易读的 markdown;此外,使用 include_html 时还会提供完整的 HTML 页面。ask 基于缓存回答,无需重新分析。

可读取的内容

视频(YouTube、X、LinkedIn、Vimeo、Twitch、Loom、直接文件 — yt-dlp 能够获取的任何内容)、音频、PDF(包括扫描件和大量图表的 PDF,会使用视觉能力逐页读取)、网页文章和图片。

完整清单:docs/FEATURES.md · 未来规划:docs/ROADMAP.md · 架构与不变量:AI_INDEX.md

贡献

新增透镜是最简单且最有价值的贡献方式 — 请参阅 CONTRIBUTING.md。代码库刻意采用小文件设计,每个文件只负责一项工作,因此更改通常只需涉及一个位置。

采用 MIT 许可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。