mcpField
A
anylens

anylens

ローカル
github.com/SlowperAI・エージェント012 週間前に更新

anylens について

anylensは動画、PDF、画像、音声、記事を分析し、対象に応じた視点で出典箇所付きの情報を提示します。メディア内容の検証や実装可能な仕様の抽出を必要とする人やエージェント向けです。

主な機能

  1. 01動画、PDF、画像、音声、記事を分析
  2. 02主張をタイムスタンプやページに紐付け
  3. 03一度の分析を複数の視点で利用
  4. 04受け入れ基準付きの仕様を生成
  5. 05再利用可能な動画スタイルを抽出・適用
  6. 06クリップ、音声、学習資料をエクスポート

活用シーン

  1. 01講演から開発手順や学習ノートを作成
  2. 02出典の時間やページを基に主張を検証
  3. 03参照資料から実装要件を作成
  4. 04動画の映像・音響スタイルを分析・再現

MCP 対応

anylensは標準的なstdio経由のMCPに対応します。ソース分析、視点別の出力、出典箇所付きの質問回答、クリップやファイルの作成、スタイルの抽出・適用をツールとして提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"slowper-anylens": {
"command": "npx",
"args": [
"-y",
"anylens"
]
}
}
}
起動コマンドnpx -y anylens

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmanylens0.5.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

anylens

あらゆるリンクを、あらゆる視点で。 URLを貼り付けるだけで、カンファレンストーク、製品デモ、難解なPDF、記事などを、質問者に合わせた理解しやすい形で受け取れます。すべての主張には、その出典となった正確な秒数やページがリンクされています。

エージェントはテキストを読めます。anylensなら、それ以外のあらゆるものも読めます。そして、その結果を確認することもできます。

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

チャットボットに要約を頼むだけではだめなのでしょうか?

要約は行き止まりです。検証できず、別の切り口で見直すにはもう一度費用がかかり、画面に表示されていた内容も見逃し、エージェントがそれを使って動くこともできません。anylensは、この4つの問題を解決します。

  • 検証可能 — すべての主張にタイムスタンプまたはページ番号が付いています。statedとinferredが曖昧になることはありません。分析できていない箇所は隠さず、明示します。
  • 多くの読み手に、1回の抽出 — 時間のかかる処理は1度だけ実行され、永久にキャッシュされます。2つ目の視点は低コストですぐに得られます。
  • 画面に表示された内容も読み取る — 画面上のコード、スライド、UIの状態、デモも対象です。言葉だけではありません。音声のない10秒間の画面録画からも、完全な分析を生成します。
  • エージェントにも対応 — specレンズを使うと、MCP経由であらゆるソースを、受け入れ基準付きの実装可能な要件に変換できます。
  • 制作方法も把握 — 動画では、制作分析により音楽、サウンドデザイン、ショットのリズム、動き、タイポグラフィを抽出し、自分(または生成ツール)が再現できるレシピにまとめます。コンテンツレンズはエージェントに知識を与え、blueprintレンズはエージェントに制作させます。

レンズ

レンズ対象得られるもの
student視聴せずに学習したい人段階的な解説、概念マップ、フラッシュカード
developer内容をもとに構築したい人画面に表示されたコード、判断事項、実装手順
uiuxデザインを研究したい人画面、フロー、インタラクションパターン
researcher引用可能なメモが必要な人主張と証拠。それぞれに出典を明記
teardown競合分析機能(表示されたものと主張されたもの)、フロー、ポジショニング
specコーディングエージェント要件、受け入れ基準、曖昧な点
blueprint再現したい人音楽、サウンドデザイン、ショットのリズム、動き、タイポグラフィ — 制作レシピとして
design「これと同じ見た目にしたい」人計測済みのカラー・トークン、スペーシングと文字のリズム、コンポーネント — そのまま貼り付けられるCSSとして
ask特定の質問がある人出典付きの回答 — または「ソースに答えはありません」という正直な回答
rawエージェント、デバッグUnderstanding Objectそのもの — LLM不要、費用不要

レンズはsrc/lenses/内の単一のMarkdownファイルです。ファイルを追加するだけでレンズを追加でき、コードは不要です。

レンズ以外にも、anylensは分析済み動画から再利用可能なスタイルを学習できます。ペース、構成、見た目、動き、音を、持ち運び可能なルールとして抽出します。各ルールには、学習元のタイムスタンプが付いています。そのスタイルで新しい制作物を計画できます(MCP経由のstyle_extract / style_apply、またはウェブUIの「Learn this style」)。

クイックスタート

前提条件: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を実行し、Your keysページで貼り付けてください(保存時に検証されます)。または、~/.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のままです。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

初回の分析には数分かかりますが、その後は永久にキャッシュされるため、同じリンクに対するそれ以降のレンズはすぐに返されます。すでに分析済みのコンテンツを別のレンズで分析するには、URLの代わりにsource_idを渡してください。

または、ウェブUIを使います。

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

エージェントから使用する — 任意の 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 } を返します — エージェント向けの型付き JSON、人が読みやすい Markdown、さらに include_html を指定すると完全な HTML ページも返します。ask は再分析せずにキャッシュから回答します。

読み取り対象

動画(YouTube、X、LinkedIn、Vimeo、Twitch、Loom、直接ファイルなど、yt-dlp で取得できるもの)、音声、PDF(スキャンされたものや図表の多いものを含み、ビジョン機能でページごとに読み取ります)、Web 記事、画像。

全機能の一覧:docs/FEATURES.md · 今後の予定:docs/ROADMAP.md · アーキテクチャと不変条件:AI_INDEX.md

コントリビューション

新しいレンズの追加は、最も簡単で価値の高い貢献です。CONTRIBUTING.md をご覧ください。コードベースは意図的に、単一の関心事を扱う小さなファイルで構成されているため、変更が複数の場所に及ぶことはほとんどありません。

MIT ライセンスです。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。