API Documentation
Programmatic access to VidForgeX via the MCP (Model Context Protocol) server
Protocol Overview
VidForgeX exposes its capabilities through an MCP server — a JSON-RPC 2.0 HTTP endpoint that AI agents and custom clients can call directly.
Every request is a JSON-RPC 2.0 call. Use tools/list to discover available tools and tools/call to invoke them.
The MCP server also works natively with Claude Desktop, Cursor, and any MCP-compatible AI agent — see for agent connection configs.
Authentication
All requests require a vfx_-prefixed API key in the Authorization header. Generate keys from your .
Authorization: Bearer vfx_your_key_here
Keys use the prefix vfx_ followed by 40 hex characters.
Keys are SHA-256 hashed server-side — if lost, rotate from the dashboard.
Maximum 10 active keys per user.
Request Format
Every call is a JSON-RPC 2.0 object sent in the POST body:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "<tool_name>",
"arguments": { ... }
}
}Response envelope
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [{ "type": "text", "text": "..." }]
}
}Error envelope
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32602,
"message": ""session_id" is required"
}
}Rate Limits
Rate limits are per API key, applied with a sliding window. Elevated limits available on request.
Available Tools
29 tools included with your Professional plan. Configure to get dedicated per-app analysis sections automatically included in every screen recording session.
analyze_sessionSubmit a video for AI analysis (Tracked Apps auto-applied for screen recording profiles)get_session_resultPoll for analysis resultsask_about_sessionAsk a question about a specific videoask_about_personAsk a question about a tracked persontag_person_to_sessionLink a tracking profile to a videocompare_profilesCompare two tracked personsget_person_progressionTrack performance over timefind_person_in_videoLocate a person by reference imageget_team_summaryAggregate team-level metricsget_sop_complianceRetrieve SOP compliance evaluationgenerate_sop_documentGenerate a compliance report documentCode Examples
curl -X POST https://mcp.vidforgex.com/ \
-H "Authorization: Bearer vfx_your_key_here" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://mcp.vidforgex.com/ \
-H "Authorization: Bearer vfx_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_session_result",
"arguments": {
"session_id": "your-video-id"
}
}
}'import requests
MCP_URL = "https://mcp.vidforgex.com/"
HEADERS = {
"Authorization": "Bearer vfx_your_key_here",
"Content-Type": "application/json",
}
def call_tool(name: str, arguments: dict):
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {"name": name, "arguments": arguments},
}
res = requests.post(MCP_URL, headers=HEADERS, json=payload)
res.raise_for_status()
return res.json()
result = call_tool("get_session_result", {"session_id": "your-video-id"})
print(result["result"]["content"][0]["text"])const MCP_URL = "https://mcp.vidforgex.com/";
const HEADERS = {
"Authorization": "Bearer vfx_your_key_here",
"Content-Type": "application/json",
};
async function callTool(name, arguments_) {
const res = await fetch(MCP_URL, {
method: "POST",
headers: HEADERS,
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "tools/call",
params: { name, arguments: arguments_ },
}),
});
const data = await res.json();
return data;
}
const result = await callTool("get_session_result", { session_id: "your-video-id" });
console.log(result.result.content[0].text);Error Codes
-32700Parse error — invalid JSON in request body-32600Invalid request — not a valid JSON-RPC 2.0 object-32601Method not found — unknown method (e.g., not tools/call)-32602Invalid params — missing or invalid tool arguments-32603Internal error — upstream service failure-32001Not found — resource does not exist or access denied-32003Forbidden — API key lacks permission for this resource