io.github.huseyinstif/klaket-mcp
Let AI agents watch videos: local transcripts, speakers, scenes, chapters and moment search
What can you do with io.github.huseyinstif/klaket-mcp?
- 📝 Transcript — timestamped speech-to-text in ~100 languages (auto-detected) with word-level timestamps; pick the model per job (
"model": "medium") - 🎙️ Podcasts too — pass an audio file/URL (mp3, m4a…) and Klaket skips the visual stages, deriving chapters from speech pauses
- 🗣️ Speaker diarization — who said what (S1/S2/…), local & keyless (sherpa-onnx)
- 💬 Subtitles — ready-to-use
.srt/.vttfiles with speaker labels - 🎞️ Scene detection — content-aware scene boundaries + keyframes per scene
- 🔎 On-screen text (OCR) — reads slides, terminals and captions per scene, local & keyless
- 🧩 One JSON timeline — transcript, scenes, frames and on-screen text aligned on a single timeline
- 🔌 Works offline, no API key required — the core pipeline uses zero LLM calls
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
klaket-mcpclaude mcp add klaket-mcp -e 'KLAKET_API_URL=<KLAKET_API_URL>' -e 'KLAKET_API_KEY=<your klaket_api_key>' -- npx -y klaket-mcp@0.7.1
{
"mcpServers": {
"klaket-mcp": {
"command": "npx",
"args": [
"-y",
"klaket-mcp@0.7.1"
],
"env": {
"KLAKET_API_URL": "<KLAKET_API_URL>",
"KLAKET_API_KEY": "<your klaket_api_key>"
}
}
}
}
Environment variables
KLAKET_API_URLBase URL of your Klaket API (default: http://localhost:8484)KLAKET_API_KEYsecret API key for cloud/authenticated deployments (not needed for local self-hosting)
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
🎬 Klaket
Turn any video into LLM-ready data.
A klaket is a clapperboard — the tool that syncs sound and image on a film set. Klaket syncs video with LLMs.
LLMs read text. The web became readable with scrapers — but video, the largest store of human knowledge, is still locked away. Klaket unlocks it: give it a video URL or file, get back structured, timestamped, LLM-ready data.
pip install klaket
klaket ingest "https://youtube.com/watch?v=..." --wait
{
"transcript": [
{ "start": 14.32, "end": 19.80, "speaker": "S1", "text": "So let's deploy this with docker compose..." }
],
"scenes": [
{ "start": 190.0, "end": 342.5, "keyframes": ["scene_004_01.jpg"] }
],
"chapters": [...],
"summary": "..."
}
Features
- 📝 Transcript — timestamped speech-to-text in ~100 languages (auto-detected) with word-level timestamps; pick the model per job (
"model": "medium") - 🎙️ Podcasts too — pass an audio file/URL (mp3, m4a…) and Klaket skips the visual stages, deriving chapters from speech pauses
- 🗣️ Speaker diarization — who said what (S1/S2/…), local & keyless (sherpa-onnx)
- 💬 Subtitles — ready-to-use
.srt/.vttfiles with speaker labels - 🎞️ Scene detection — content-aware scene boundaries + keyframes per scene
- 🔎 On-screen text (OCR) — reads slides, terminals and captions per scene, local & keyless
- 🧩 One JSON timeline — transcript, scenes, frames and on-screen text aligned on a single timeline
- 🔌 Works offline, no API key required — the core pipeline uses zero LLM calls
- 🧠 Pluggable model layer — optional scene descriptions via local VLMs (Ollama) or any OpenAI-compatible endpoint (
KLAKET_VLM=offby default) - 🤖 MCP server — let coding agents "watch" any video and find moments inside it
- 🔍 In-video search —
GET /v1/jobs/{id}/search?q=…finds the exact moment - ▶️ Playground — the dashboard plays the video with a click-to-seek, live-highlighted transcript
SDKs
# pip install klaket
from klaket import Klaket
result = Klaket().process("https://youtube.com/watch?v=...", num_speakers=2)
// npm i klaket-sdk
import { Klaket } from "klaket-sdk";
const result = await new Klaket().process("https://youtube.com/watch?v=...");
Give your agent eyes
# Claude Code
claude mcp add klaket -- npx klaket-mcp # KLAKET_API_URL defaults to localhost:8484
Then: "Watch https://youtube.com/watch?v=… and summarize the commands the presenter runs."
The agent gets klaket_ingest, klaket_job_status and klaket_get_result tools.
Quick start
git clone https://github.com/huseyinstif/klaket.git && cd klaket
docker compose up --build
# API on :8484, dashboard on :5180
curl -X POST localhost:8484/v1/ingest \
-H "Content-Type: application/json" \
-d '{"url": "https://youtube.com/watch?v=..."}'
That's it — no API keys, no GPUs required. make help lists developer shortcuts (make up, make test, make e2e).
Architecture
client ──► Go API ──► Redis queue ──► Python worker (ffmpeg · faster-whisper · scenedetect)
│ │
dashboard ◄────────────────────┘ /data/jobs/<id>/result.json
apps/api— Go, job orchestrationapps/worker— Python, media pipelineapps/dashboard— React dashboard
Self-host vs Cloud
Klaket is open source (AGPL-3.0) and fully self-hostable. A hosted, pay-per-minute cloud API with managed GPUs is planned — join the waitlist (coming soon).
Status
🚧 v0.7 — pre-1.0, moving fast. Star the repo to follow along.
License
AGPL-3.0. SDKs and clients will be MIT.
Contact
Built by Hüseyin Tıntaş — X (@1337stif) · LinkedIn
Frequently asked questions
What is io.github.huseyinstif/klaket-mcp?
Let AI agents watch videos: local transcripts, speakers, scenes, chapters and moment search
How do I install io.github.huseyinstif/klaket-mcp?
It runs on your machine. In Claude Code: claude mcp add klaket-mcp -e 'KLAKET_API_URL=<KLAKET_API_URL>' -e 'KLAKET_API_KEY=<your klaket_api_key>' -- npx -y klaket-mcp@0.7.1. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.huseyinstif/klaket-mcp need an API key?
Yes. It expects KLAKET_API_KEY, which you set in its configuration.
Is io.github.huseyinstif/klaket-mcp open source?
Yes. Its code is on GitHub under the AGPL-3.0 license.
Who maintains io.github.huseyinstif/klaket-mcp?
It is published by huseyinstif. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.