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.
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 Account page 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.