Skip to main content
Glama
README.md
# Video Watcher MCP Server

MCP server exposing claude-video functionality for claude.ai web UI via HTTP+SSE.

Wraps the [claude-video](https://github.com/bradautomates/claude-video) plugin and serves it over the web so you can watch and analyze videos from claude.ai.

## Deployment to Render (Free Tier)

### Step 1: Create a Render Account

Go to [render.com](https://render.com) and sign up. Free tier is fine.

### Step 2: Create a GitHub Repository

Push this project to a GitHub repo. Render will auto-deploy from GitHub.

```bash
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/YOUR_USERNAME/video-watcher-mcp.git
git branch -M main
git push -u origin main
```

### Step 3: Deploy to Render

1. Go to [dashboard.render.com](https://dashboard.render.com)
2. Click **New +** → **Web Service**
3. Connect your GitHub repo (`video-watcher-mcp`)
4. Set these values:
   - **Name**: `video-watcher-mcp`
   - **Runtime**: Docker
   - **Region**: Choose closest to you
   - **Plan**: Free (it's free, stays cold until you use it)
5. Under **Environment**, add:
   - `GROQ_API_KEY` = your Groq API key (get it at [console.groq.com](https://console.groq.com/keys))
   - `OPENAI_API_KEY` = (optional, fallback)
6. Click **Deploy**

Render will build the Docker image and deploy. Takes ~5 minutes. You'll get a URL like `https://video-watcher-mcp.onrender.com`.

### Step 4: Register with claude.ai

1. Go to [claude.ai](https://claude.ai)
2. Open settings (bottom left)
3. Find **MCP** or **Connected Services**
4. Click **Add MCP**
5. Fill in:
   - **Name**: Video Watcher
   - **Transport**: HTTP
   - **URL**: `https://video-watcher-mcp.onrender.com`
6. Save

### Step 5: Test

In claude.ai, ask:
> Watch https://www.youtube.com/watch?v=... and tell me what happens

Or use the `watch_video` tool directly if exposed in the UI.

## Local Development

```bash
# Install dependencies
pip install -r requirements.txt

# Run server
python server.py
# Starts on http://localhost:8000

# Check health
curl http://localhost:8000/health
```

## Notes

- **Free tier sleeps after 15 min of inactivity.** First request takes 10-15 seconds to wake up. Fine for occasional use (once every few days).
- **No bandwidth limits** on free tier.
- **API keys:** Groq is cheaper/faster. OpenAI is fallback if you have it.
- **Video limits:** See [claude-video docs](https://github.com/bradautomates/claude-video) — recommended under 10 min, hard cap 100 frames.
- **No persistence:** Frames/transcripts live in `/tmp` and are cleaned up after response.

## Troubleshooting

**"Connection refused" after deploy:**
- Free tier may still be spinning up. Wait 30 seconds and retry.
- Check Render dashboard for build logs.

**"No transcript available":**
- Video has no captions AND Groq/OpenAI API key is missing or invalid.
- Add API key to Render environment vars.

**Server crashes:**
- Check Render logs: Dashboard → your service → Logs tab.

## Architecture

```
claude.ai (web UI)
    ↓ HTTPS
MCP Server (running on Render)
    ↓
    Calls scripts/watch.py
    ↓
Returns frames + transcript
```

The server is stateless. Each request downloads, processes, and cleans up independently.

## License

Same as claude-video (MIT).