Allows AI agents to process social videos by extracting frames and transcripts for automated analysis and documentation.
Also known as sonpiaz/watch-cli, @sonpiaz/watch-cli-mcp
- Stars
- 260
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 0.3.1
- Last commit
- Sep 13, 2026
- License
- MIT
What is watch-cli MCP?
watch-cli allows AI agents to process social videos by extracting frames and transcripts for automated analysis and documentation.
Summary generated from the project's README
About watch-cli MCP server
Extracting visual frames and transcripts from social media videos for automated documentation is what this server enables. Developers using MCP-capable agents like Claude Desktop, Cursor, or Windsurf can provide a video URL to receive structured data for creating architecture diagrams, working components, or step-by-step cheat sheets. It works by wrapping the watch-cli tool, which must be installed on your local system and available in your PATH to function.
The server provides a single watch tool that accepts a video URL from platforms including YouTube, X, TikTok, LinkedIn, Vimeo, Reddit, and Facebook. You can specify the number of evenly-spaced frames to extract, with a limit between 1 and 64 frames. The server communicates via stdio and handles various error states, such as authentication or regional download issues, by passing specific tags back to the client for recovery.
What you can do with it
- 1Generate technical documentation from videosAsk an AI agent to transform a social video into a structured architecture diagram or a runnable notebook.
Written from the project's README. Every use case is checked against a quote from it.
How to install watch-cli MCP
Formats verified 10 Nov 2026Install watch-cli MCP in Claude Code
$ claude mcp add --env GROQ_API_KEY=<YOUR_GROQ_API_KEY> --env KYMA_API_KEY=<YOUR_KYMA_API_KEY> watch-cli -- npx -y @sonpiaz/watch-cli-mcpInstall watch-cli MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"watch-cli": {
"command": "npx",
"args": [
"-y",
"@sonpiaz/watch-cli-mcp"
],
"env": {
"GROQ_API_KEY": "<YOUR_GROQ_API_KEY>",
"KYMA_API_KEY": "<YOUR_KYMA_API_KEY>"
}
}
}
}Install watch-cli MCP in VS Code
.vscode/mcp.json
{
"servers": {
"watch-cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@sonpiaz/watch-cli-mcp"
],
"env": {
"GROQ_API_KEY": "<YOUR_GROQ_API_KEY>",
"KYMA_API_KEY": "<YOUR_KYMA_API_KEY>"
}
}
}
}Install watch-cli MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"watch-cli": {
"command": "npx",
"args": [
"-y",
"@sonpiaz/watch-cli-mcp"
],
"env": {
"GROQ_API_KEY": "<YOUR_GROQ_API_KEY>",
"KYMA_API_KEY": "<YOUR_KYMA_API_KEY>"
}
}
}
}Install watch-cli MCP in Codex
~/.codex/config.toml
[mcp_servers.watch-cli] command = "npx" args = ["-y", "@sonpiaz/watch-cli-mcp"] [mcp_servers.watch-cli.env] GROQ_API_KEY = "<YOUR_GROQ_API_KEY>" KYMA_API_KEY = "<YOUR_KYMA_API_KEY>"
Install watch-cli MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"watch-cli": {
"command": "npx",
"args": [
"-y",
"@sonpiaz/watch-cli-mcp"
],
"env": {
"GROQ_API_KEY": "<YOUR_GROQ_API_KEY>",
"KYMA_API_KEY": "<YOUR_KYMA_API_KEY>"
}
}
}
}Configuration
GROQ_API_KEYSecretGroq API key for direct BYOK transcription (alternative to Kyma). Set this instead of KYMA_API_KEY if you prefer direct provider.
KYMA_API_KEYSecretKyma API key (default backend). Get one at https://kymaapi.com — first $0.50 free, then pay-per-use (~$0.05 per 1-hour video). Optional if WATCH_AUDIO_MODE=local (whisper.cpp) or GROQ_API_KEY is set instead.
WATCH_AUDIO_MODEBackend routing override. Values: kyma (default), byok (use GROQ_API_KEY), local (whisper.cpp on $PATH, fully offline).
| Name | Description | |
|---|---|---|
| GROQ_API_KEY | Groq API key for direct BYOK transcription (alternative to Kyma). Set this instead of KYMA_API_KEY if you prefer direct provider. | Secret |
| KYMA_API_KEY | Kyma API key (default backend). Get one at https://kymaapi.com — first $0.50 free, then pay-per-use (~$0.05 per 1-hour video). Optional if WATCH_AUDIO_MODE=local (whisper.cpp) or GROQ_API_KEY is set instead. | Secret |
| WATCH_AUDIO_MODE | Backend routing override. Values: kyma (default), byok (use GROQ_API_KEY), local (whisper.cpp on $PATH, fully offline). |
Automated checks
Ran Nov 12, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablePass
- Open source license (OSI)Pass
- Commit or release in the last yearPass
- Package name not close to a popular packagePass
- Remote endpoint uses HTTPSNot checked
- Destructive tools are labelledNot checked
- No hidden instructions to the modelPass
- No critical advisory in the package or its dependenciesPass
README
View on GitHub@sonpiaz/watch-cli-mcp
MCP (Model Context Protocol) stdio server that exposes watch-cli as a callable tool.
Watch any social video → get an architecture diagram, working component, runnable notebook, or step-by-step cheat sheet — automatically.
A single MCP server reaches every MCP-capable agent runtime — Claude Desktop, Claude Code, Cursor, OpenClaw, hermes-agent, Cline, Continue.dev, Windsurf, Zed, Codex, Kiro, VS Code Copilot — without per-IDE plugin work. This package wraps watch-cli so any of them can call it through one channel.
Prerequisites
-
Node.js >= 18.
-
The
watchCLI installed and onPATH. Install with:curl -fsSL https://raw.githubusercontent.com/sonpiaz/watch-cli/main/install.sh | bash
The MCP server shells out to watch; it does not bundle the CLI.
Install
npm install -g @sonpiaz/watch-cli-mcp
Or run on demand via npx:
npx -y @sonpiaz/watch-cli-mcp
The binary is watch-cli-mcp. It reads JSON-RPC on stdin, writes JSON-RPC on stdout, and logs to stderr.
Tool
One tool is registered: watch.
Input schema:
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "A social video URL. Supported: YouTube, X / Twitter, LinkedIn, TikTok, Vimeo, Reddit, Facebook."
},
"frames": {
"type": "integer",
"minimum": 1,
"maximum": 64,
"description": "Number of evenly-spaced frames to extract. Default 8."
}
},
"required": ["url"],
"additionalProperties": false
}
Output: the v1 JSON object from docs/output-schema.md, passed through verbatim. Read the schema for the field reference.
Error mapping
| CLI exit | MCP response |
|---|---|
0 |
Tool result with the v1 JSON as content[0].text. |
2 |
InternalError, message includes tag=missing-dep:<bin>. |
3 download-auth / download-region |
InvalidParams, message includes the tag — caller can recover with cookies or a different URL. |
3 download-network / download-other |
InternalError, message includes the tag. |
4 (partial success) |
Tool result with isError: false. Frames populated, transcript null, exit_code: 4 in the JSON payload. Caller branches on obj.exit_code === 4. |
64 |
InvalidParams, message includes tag=usage-error. |
1 / other |
InternalError, message includes the CLI stderr tail (≤ 1 KB). |
Tags always ride in the MCP error message field so callers can grep for the same tag=... token they would see in CLI stderr.
Client configuration
Claude Desktop
Config path:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Merge into the existing mcpServers object:
{
"mcpServers": {
"watch-cli": {
"command": "npx",
"args": ["-y", "@sonpiaz/watch-cli-mcp"]
}
}
}
Restart Claude Desktop after editing.
Cursor
Config path: .cursor/mcp.json (project-scoped) or ~/.cursor/mcp.json (user-global). Same mcpServers object shape as Claude Desktop:
{
"mcpServers": {
"watch-cli": {
"command": "npx",
"args": ["-y", "@sonpiaz/watch-cli-mcp"]
}
}
}
hermes-agent
Config path: optional-skills/mcp.json inside the hermes-agent install, or ~/.hermes-agent/mcp.json user-global. Same mcpServers shape as above.
Other MCP clients
Any MCP-capable agent that accepts an npx command will work with the snippet above. Substitute the client's config path; the command / args pair is portable.
Build from source
git clone https://github.com/sonpiaz/watch-cli
cd watch-cli/mcp-server
npm install
npm run build
node dist/index.js
License
MIT. © 2026 Son Piaz.
watch-cli MCP questions
How do I add watch-cli MCP to Claude Code?
Run claude mcp add --env GROQ_API_KEY=<YOUR_GROQ_API_KEY> --env KYMA_API_KEY=<YOUR_KYMA_API_KEY> watch-cli -- npx -y @sonpiaz/watch-cli-mcp in your terminal. Add --scope user to make it available in every project.
How do I add watch-cli MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What social media platforms are supported?
The tool supports YouTube, X / Twitter, LinkedIn, TikTok, Vimeo, Reddit, and Facebook.
Do I need to install the watch CLI separately?
Yes, the MCP server shells out to the watch CLI and does not bundle it, so you must have it installed on your PATH.