Show HN: Turn narrated screen recordings into data for AI agents (local, MIT) A new open-source MCP server called talkthrough-mcp, released under the MIT license, lets developers turn narrated screen recordings into structured data for AI agents without any cloud dependency. The tool runs locally using ffmpeg, faster-whisper, and RapidOCR, providing timestamped transcripts, speaker labels, keyframes, and OCR text through lazy retrieval tools that prevent context overflow. Its wall-clock timestamp anchoring distinguishes it from existing screen-recorder SaaS and video-analyzer MCPs, enabling agents to directly correlate moments like 'the checkout hung' with server logs. Quickstart quickstart · Tools tools · FAQ faq · Troubleshooting /korovin-aa97/talkthrough-mcp/blob/main/docs/TROUBLESHOOTING.md · Changelog /korovin-aa97/talkthrough-mcp/blob/main/CHANGELOG.md · Contributing /korovin-aa97/talkthrough-mcp/blob/main/CONTRIBUTING.md Feedback ingestion for AI agents. Record your screen and talk; your agent does the rest — files the bugs, writes the spec, builds the backlog. talkthrough-mcp is a local-first MCP server that turns a narrated screen recording or any video/audio file into agent-ready structured data: timestamped transcript segments, optional who-said-what speaker labels, scene-change keyframes, OCR'd on-screen text, and wall-clock anchoring. Everything is served through lazy retrieval tools, so a 30-minute recording never floods the model context — the agent pulls exactly the transcript slice, moment bundle, or frame it needs. There is no LLM inside the server and no cloud anywhere in the path: ffmpeg, faster-whisper, and RapidOCR run on your machine, and the calling agent brings the intelligence. What makes it different from screen-recorder SaaS and video-analyzer MCPs: it works on arbitrary local files, it ships the agent workflows server prompts + example agents , and it anchors every timestamp to wall-clock time — so "the moment I said the checkout hung" maps straight to the right window of your server logs. One command, no system dependencies: ffmpeg falls back to a bundled build, OCR is pip-only, and whisper models download themselves on first use. The only prerequisite is uv https://docs.astral.sh/uv/ brew install uv or curl -LsSf https://astral.sh/uv/install.sh | sh . Two install paths — pick one , not both the plugin already includes the server; installing both would register it twice : Server only — the 7 tools + 5 prompts, and nothing else on your system. Choose this for a minimal setup, or when you manage MCP servers yourself across several clients: claude mcp add -s user talkthrough -- uvx "talkthrough-mcp diarization " Full plugin — the same server, plus native slash commands /talkthrough:triage-recording , … that handle the ceremony for you, a ready-made triage subagent, and an agent skill that teaches Claude the workflow. Choose this for the best out-of-the-box experience: /plugin marketplace add korovin-aa97/talkthrough-mcp /plugin install talkthrough@talkthrough OpenAI Codex CLI ~/.codex/config.toml or project-scoped .codex/config.toml in trusted projects : mcp servers.talkthrough command = "uvx" args = "talkthrough-mcp diarization " More: integrations/codex/ OpenCode opencode.json project or ~/.config/opencode/opencode.json : { "mcp": { "talkthrough": { "type": "local", "command": "uvx", "talkthrough-mcp diarization " , "enabled": true } } } More: integrations/opencode/ Any other MCP stdio client uses the same server command: uvx "talkthrough-mcp diarization " . Per-engine folders with exactly these snippets plus verification steps live in integrations/ /korovin-aa97/talkthrough-mcp/blob/main/integrations ; agents can self-install via . /korovin-aa97/talkthrough-mcp/blob/main/llms-install.md llms-install.md Multi-person recordings meetings, interviews, panels can carry S1 / S2 /… speaker labels. Every install button, snippet, and the plugin above already ship the diarization engine, so asking your agent "who said what" just works — diarization itself still runs only when requested per call process media path=..., diarize=true, num speakers=