MCP Server
EditClips exposes an MCP (Model Context Protocol) server that lets AI agents process video and audio files using natural language. Connect Claude Desktop, Cursor, or any MCP-compatible client to create jobs, check status, and manage your balance — all through tool calls.
Endpoint
POST https://editclips.online/mcp
Uses Streamable HTTP transport (stateless). Authentication is the same Bearer API key used by the REST API (an X-API-Key header also works). Also listed on Smithery and in the official MCP registry as online.editclips/mcp.
Quick setup
Add EditClips to your MCP client config (e.g. Claude Desktop claude_desktop_config.json, Cursor, or .mcp.json):
{
"mcpServers": {
"editclips": {
"type": "http",
"url": "https://editclips.online/mcp",
"headers": {
"Authorization": "Bearer ec_live_YOUR_KEY"
}
}
}
}
Create an API key from your Developer dashboard under API Keys.
Available tools
The MCP server exposes 5 tools:
| Tool | Description |
|---|---|
list_tools | List all 27 video/audio processing tools with their options |
create_job | Create a processing job from URL inputs |
get_job | Check job status and get the download URL when complete |
cancel_job | Cancel a job and refund reserved credits |
get_balance | Check your current credit balance |
create_job parameters
| Parameter | Type | Description |
|---|---|---|
tool | string | Tool slug from list_tools (e.g. "compress-video") |
inputs | string[] | Public URLs to input files |
options | object | Tool-specific options (optional) |
webhook | string | HTTPS URL for completion notification (optional) |
durationMs | number | Input duration in ms, for credit estimation (optional) |
width | number | Input width in px, for credit estimation (optional) |
height | number | Input height in px, for credit estimation (optional) |
Example: manual requests
You can test the MCP endpoint directly with curl. First, initialize:
curl -X POST https://editclips.online/mcp \
-H "Authorization: Bearer ec_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": {"name": "my-app", "version": "1.0.0"}
},
"id": 1
}'
Then discover available processing tools:
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "list_tools",
"arguments": {}
},
"id": 2
}
Create a job:
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "create_job",
"arguments": {
"tool": "compress-video",
"inputs": ["https://example.com/video.mp4"],
"durationMs": 30000,
"width": 1280,
"height": 720
}
},
"id": 3
}
Check job status:
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_job",
"arguments": {
"id": "JOB_ID_FROM_CREATE"
}
},
"id": 4
}
Response format
Responses use Server-Sent Events (SSE) format:
event: message
data: {"result":{"content":[{"type":"text","text":"..."}]},"jsonrpc":"2.0","id":1}
Tool results are returned as JSON text in the content[0].text field. Parse this string to get the structured data.
Error handling
Tool errors return isError: true in the result with a descriptive message:
{"result":{"content":[{"type":"text","text":"Unknown tool 'foo'. Use list_tools to see available tools."}],"isError":true}}
Authentication errors return HTTP 401 before reaching the MCP layer.
Notes
- The server is stateless — each request creates a fresh session. No session management needed.
- The same API key and credit balance are shared between MCP and REST API access.
- Rate limits apply per API key (60 requests/minute), same as the REST API.
- File upload (presigned URLs) is only available via the REST API. MCP supports URL inputs only.