mcpField
W
watch-cli

watch-cli

Local
github.com/sonpiazMedia & Design259Updated 6w ago

About watch-cli

watch-cli MCP server wraps the watch-cli tool as an MCP stdio server, giving AI agents frames and transcripts from social videos. It targets any MCP-capable agent runtime, so it needs no per-IDE plugin work. The server calls the watch CLI, which must be installed separately.

Key features

  1. 01Single watch tool that accepts a video URL
  2. 02Returns frames and transcript as v1 JSON
  3. 03Supports YouTube, X, LinkedIn, TikTok and other platforms
  4. 04Maps CLI exit codes to tagged MCP errors

Use cases

  1. 01Having an AI agent build a diagram or code sample from a video
  2. 02Analyzing social video content inside Claude Desktop or Cursor
  3. 03Turning a video into step-by-step notes or a cheat sheet

MCP support

This project is an MCP server that exposes a watch tool to MCP clients. The tool shells out to the watch CLI to process a video URL and returns structured output.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"sonpiaz-watch-cli": {
"command": "npx",
"args": [
"-y",
"@sonpiaz/watch-cli-mcp"
],
"env": {
"KYMA_API_KEY": "<KYMA_API_KEY>",
"GROQ_API_KEY": "<GROQ_API_KEY>",
"WATCH_AUDIO_MODE": "<WATCH_AUDIO_MODE>"
}
}
}
}
Run commandnpx -y @sonpiaz/watch-cli-mcp
Environment variables to set
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.
GROQ_API_KEYSecretGroq API key for direct BYOK transcription (alternative to Kyma). Set this instead of KYMA_API_KEY if you prefer direct provider.
WATCH_AUDIO_MODEBackend routing override. Values: kyma (default), byok (use GROQ_API_KEY), local (whisper.cpp on $PATH, fully offline).

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@sonpiaz/watch-cli-mcp0.3.1

Tools

1

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
urlstringYesA social video URL. Supported platforms: YouTube, X / Twitter, LinkedIn, TikTok, Vimeo, Reddit, Facebook.
framesintegerNoNumber of evenly-spaced frames to extract. Defaults to 8 when omitted. Bound to 64 to keep the response payload small.

Details

From the project README

@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 watch CLI installed and on PATH. 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 exitMCP response
0Tool result with the v1 JSON as content[0].text.
2InternalError, message includes tag=missing-dep:<bin>.
3 download-auth / download-regionInvalidParams, message includes the tag — caller can recover with cookies or a different URL.
3 download-network / download-otherInternalError, 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.
64InvalidParams, message includes tag=usage-error.
1 / otherInternalError, 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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.