Observer

Observer

Enables watching videos with an AI coding agent that transcribes, prepares concepts and visuals, and answers questions in context of the video. Provides MCP tools for transcript reading, concept mapping, artifact building, and interactive Q&A synchronized with playback.

Category
访问服务器

README

<h1 align="center">Observer</h1>

<p align="center"> Watch a hard video with a coding agent sitting next to you. </p>

Paste a podcast, a lecture, or a conference talk. Observer transcribes it, serves a page with the player, and hands your CLI agent a set of MCP tools: read the transcript, prepare the concepts, build the charts, then answer the moment you pause. One process serves the page and speaks MCP, so there is nothing to start by hand.

How a session goes

  1. Feed. Paste the URL, in the page or to the agent. Say whether the video carries ads, and whether you want the research pass and the visual toolkit.
  2. Transcript. Captions when the video has them, speech recognition when it does not.
  3. Research (optional). The agent searches the concepts it did not already know, and looks specifically for what moved after the recording date, so a two-year-old talk arrives with its corrections attached.
  4. Toolkit (optional). The agent writes the charts and diagrams for the equations and systems in the talk, compiles them, and fixes them until they render.
  5. Session. You watch. You pause. You ask, by voice or by typing. The answer comes back in text first, spoken if you want it, with a prepared visual behind it when one fits.

The preparation is the point: by the time you press play, the transcript, the definitions, the jargon list, the research and the visuals are already in the agent's context. A doubt at minute 34 gets an answer, not a wait.

What the agent knows when you pause

Your position in the video is the join key. Every pause tells the agent the second you stopped at, the words around it, and which prepared concepts cover that moment. It answers about what was actually being said, not about the video in general.

Install

Needs Node 24.12 or newer. yt-dlp widens which videos have captions, and ffmpeg is needed only for the speech-recognition path.

git clone https://github.com/hec-ovi/observer-skill
cd observer-skill
npm install
node bin/observer.ts doctor

doctor reports what your machine can do and names what to install to widen it.

Point a CLI agent at it:

claude mcp add observer -- node /path/to/observer-skill/bin/observer.ts mcp

Then tell it to study something, or run node bin/observer.ts serve and paste a URL into the page yourself.

Tools

Tool Does
open Take a URL and options, start transcription, open the page
status Phase, progress, counts, whether a page is connected, what is still missing
transcript Read the transcript whole or by time range, paginated
concepts Write the concept list: definitions, equations, systems, jargon
note Pin a research finding to a concept
build Compile a visual, verify it in the real page, return a snapshot to look at
link Bind a visual to a concept and a stretch of video
ready Close preparation, unlock the player
wait Wait for the next pause, question, or setting change
where The same context on demand, for a question typed in the terminal
say Answer, optionally spoken, optionally showing a visual
show / hide Move the stage between video and visual

Phases, error set and the full argument list: docs/ARCHITECTURE.md.

Visuals

A visual is a small ES module that mounts into the stage and gets the current theme. It can use ECharts for interactive and large series, D3 for bespoke geometry and simulations, and KaTeX for equations, all shared through one import map so the tenth chart costs nothing to open.

Before anything reaches your screen it is bundled, linted, and mounted in a hidden sandbox inside the page you already have open, under a content policy derived from that document. The agent sees the real errors and a snapshot of the result, and iterates until it is right. A visual that has not passed cannot be shown.

Voice

Speaking defaults to the browser's own voice, which costs nothing to load. Kyutai Pocket TTS runs entirely in the browser through ONNX Runtime Web for a better one: the settings panel states the one-time download before you agree to it, shows it arriving, and credits Kyutai while it is the chosen voice. Listening is hold to talk. Both sit behind a port with three providers each (browser, local model, OpenAI-compatible endpoint), so moving either to a cloud voice is a setting and not a rewrite.

Design

Layered surfaces, soft corners, one accent on the thing you are meant to press, one title per thing, and nothing on screen that is not carrying signal. Light, dark and system reach the charts too: the theme travels into every visual, so switching restyles them in place without rebuilding. Transitions between the video and a visual are short and respect reduced motion.

Configuration

Environment variables, all with working defaults. node bin/observer.ts --help lists them with the values in force on your machine.

Variable Default What
OBSERVER_PORT 4830 First port to try for the page; a taken one moves up
OBSERVER_HOME $XDG_DATA_HOME/observer Where sessions, transcripts and artifacts live
OBSERVER_TRANSCRIPT auto auto, captions, endpoint-asr, or file
OBSERVER_ASR_URL unset OpenAI-compatible transcription endpoint
YTDLP_BIN yt-dlp The caption fetcher binary, when it is not on PATH
FFMPEG_BIN ffmpeg The audio converter, when it is not on PATH

Repository

Path What
boxes/ One folder per box, each with its CONTRACT.md
boxes/agent-io/prompts/ The prompts the agent works from
skills/observer/ The skill the agent loads
docs/ Index, architecture, decisions, plan
bin/ The CLI: mcp, serve, doctor

Every box is built against its contract alone and tested through its real entry point. node --run test runs all of them; node --run typecheck covers both TypeScript projects.

MIT.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选