Tools reference
The Lirovo MCP server exposes 14 tools, grouped here by what they do: extraction, artifacts, schemas, and jobs and destinations. Every tool is scoped to the tenant resolved at OAuth time. Results are compact JSON, returned in full and never truncated.
Extraction#
Submit a video, poll the job, and cancel it if needed. extract reuses the same admission and queue path as POST /v1/jobs, so a backpressure error like CONCURRENT_JOBS_LIMIT or COST_QUOTA_EXCEEDED surfaces to the agent as a structured tool error.
extract
Submit a video for extraction into structured JSON. Optionally apply a saved schema by id, or pass an inline JSON Schema (the two are mutually exclusive). Returns immediately with a job_id; the job runs asynchronously, so poll it with get_job until the status is succeeded.
source_urirequiredThe video to extract from: an http(s) URL, or an upload:// or s3:// reference.
schema_idA saved schema id (from list_schemas). Mutually exclusive with schema_inline.
schema_inlineAn inline JSON Schema object. Mutually exclusive with schema_id.
destination_idsDestination ids to deliver the result to once the job completes.
webhook_urlA webhook URL to notify when the job reaches a terminal state.
model_stackAdvanced. Override the model stack (X-Lirovo-Model-Stack passthrough).
get_job
Look up an extraction job by id. Returns its status (queued, running, succeeded, failed, or cancelled) and, once succeeded, the full typed extraction result inline. This is the tool to poll after extract.
job_idrequiredThe job id returned by extract.
cancel_job
Cooperatively cancel a queued or running job. It stops the workflow and frees the tenant's concurrency slot. Idempotent on an already-cancelled job; returns JOB_ALREADY_TERMINAL if the job already succeeded or failed.
job_idrequiredThe job id to cancel (from extract or list_jobs).
Artifacts#
Read what a succeeded job left behind, the knowledge graph, the evidence chain, and the raw per-job artifacts, so an agent can answer follow-up questions and cite the source without re-extracting. Every artifact tool takes the same job_id.
get_transcript
Fetch the diarized ASR transcript for a succeeded job: full text, per-segment timing, and speakers. Use it to answer verbatim questions and quote the source. Returned in full (a very long transcript may exceed some clients' tool-result caps).
job_idrequiredThe job id (from extract, get_job, or list_jobs).
get_frames
Fetch the deduped frame inventory Pass A reasoned over. For each frame: the id, the source_ref (a frame#NNNNNN ref matching get_evidence spans), timestamp, cluster, and pHash. Metadata only, no image bytes.
job_idrequiredThe job id.
include_rawAlso include the non-kept (pre-dedup) frames. Default false.
get_vision
Fetch the VLM description of each kept frame (what is on screen), anchored to the frame timestamp. Use it for visual questions such as what text was on a slide at a given moment. An audio-only job returns visual_branch: "absent" with no frames, which is not an error.
job_idrequiredThe job id.
get_graph
Fetch the Pass A knowledge graph for a succeeded job: nodes (entities and timestamped claims drawn from the video) and edges (relations between them). Traverse it in-conversation to answer follow-up questions, no re-extraction needed. Defaults to the compact view; pass view: "canonical" for the full graph.
job_idrequiredThe job id (from extract or get_job).
viewcompact (default, packed) or canonical (full).
get_evidence
Fetch the evidence spans for a succeeded job. For each extracted value: where it came from, the modality (audio, visual, or both), the (t_start, t_end) source moment, the source ref (transcript segment or video frame), and the knowledge-graph node id. Use it to cite or verify where a fact in the result originated.
job_idrequiredThe job id (from extract or get_job).
Schemas#
Discover, inspect, and register reusable extraction schemas. A schema is a JSON Schema describing the typed output you want; apply one by passing its id to extract.
create_schema
Register a reusable extraction schema the workspace can apply to future jobs via extract(schema_id). The JSON Schema is validated at registration time. Returns the new schema_id. For a one-off shape, pass schema_inline to extract directly instead.
namerequiredA human-readable name for the schema.
json_schemarequiredThe JSON Schema object describing the fields to extract.
descriptionOptional description.
get_schema
Fetch one saved schema's full JSON Schema body. (list_schemas only returns id, name, and description.) Use it to inspect the exact fields a schema defines before applying it via extract(schema_id).
schema_idrequiredA schema id (from list_schemas).
list_schemas
Browse the tenant's saved schemas and the shipped template library. Returns the id, name, description, and is_template for each. No input parameters. Pass a returned id to extract to apply it.
Jobs and destinations#
Discover recent jobs and delivery targets, and push a finished result to a webhook destination.
list_jobs
List the most recent extraction jobs for the workspace (newest first, up to 25). Use it to discover job ids to pass to get_job, get_graph, get_evidence, or deliver.
statusOptional status filter.
list_destinations
List the workspace's configured destinations (id, name, type, status). Use it to discover a destination_id to pass to deliver. No input parameters. Secrets and config are never returned.
deliver
Push a succeeded job's extraction result to one of the tenant's webhook destinations. Lirovo signs it (HMAC-SHA256) and retries with backoff. Returns a delivery_id; the delivery runs asynchronously. The job must have succeeded, and destination_id must be an existing webhook destination.
job_idrequiredA succeeded job id (from extract or get_job).
destination_idrequiredThe webhook destination id to deliver to.
Errors#
On failure a tool returns an error result whose payload mirrors the REST error envelope: { error: { code, message } }. The codes are the same stable enum the API uses, so an agent can switch on, for example, JOB_NOT_FOUND, SCHEMA_NOT_FOUND, SOURCE_BLOCKED, or COST_QUOTA_EXCEEDED and back off.