FFmpeguru
REST spec v1 No account

Connect an MCP client

FFmpeguru speaks Model Context Protocol over Streamable HTTP. Point your client at the endpoint and it will discover a single tool.

https://api.ffmpeguru.com/mcp

In production this becomes your own hostname, for example https://api.example.com/mcp.

The one tool

ffmpeguru_generate(question: string) — returns a runnable ffmpeg command with an explanation of every flag.

That is the entire surface.

Claude Code

Run this in your terminal, not inside a claude session:

claude mcp add ffmpeguru \
  --transport http \
  https://api.ffmpeguru.com/mcp

The name is yours to choose — it is only how Claude labels the server's tools. This registers at local scope, so it applies to the current project only; add --scope user to make it available everywhere. Confirm it registered with:

claude mcp list

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "ffmpeguru": {
      "type": "http",
      "url": "https://api.ffmpeguru.com/mcp"
    }
  }
}

Fully quit and reopen Claude Desktop so it reloads the configuration.

Cursor

Add to .cursor/mcp.json in your project:

{
  "mcpServers": {
    "ffmpeguru": {
      "url": "https://api.ffmpeguru.com/mcp"
    }
  }
}

Any other MCP client

Any client that speaks Streamable HTTP works. The sequence is the standard one:

  1. initialize with your protocol version and client info.
  2. Send notifications/initialized.
  3. Call tools/list, or go straight to tools/call with ffmpeguru_generate.
POST /mcp
Content-Type: application/json
Accept: application/json, text/event-stream

A worked example request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ffmpeguru_generate",
    "arguments": {
      "question": "extract audio as mp3"
    }
  }
}

Clients must accept both application/json and text/event-stream, because the server may answer with either a JSON body or an SSE frame. A client that only accepts JSON cannot read the SSE form.