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:
initializewith your protocol version and client info.- Send
notifications/initialized. - Call
tools/list, or go straight totools/callwithffmpeguru_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.