Skip to main content
Glama
instavar

@instavar/mcp-server

by instavar

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
INSTAVAR_API_KEYYesYour API key from https://instavar.com/studio/settings
INSTAVAR_BASE_URLNoOverride the API host (default: https://instavar.com)https://instavar.com

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_capabilitiesA

Call first. Reports free local features and optional account features.

list_templatesA

List public templates, optionally filtered by aspect ratio.

get_templateB

Get one public template contract.

get_video_schemaA

Return the public VideoSpec JSON Schema.

get_exampleA

Return a starter example for one template.

scaffold_video_specA

Return a deterministic VideoSpec skeleton without writing files.

get_render_instructionsC

Return clone, install, validate, preview, and render commands.

diagnose_render_errorB

Classify a local validation or render error.

list_jobsA

List recent video jobs for the current organization (newest first). Start here to discover job IDs; for one job's full detail use get_job_status.

get_job_statusA

Get detailed status for a job: runs, artifacts, verifications, plus the current video and thumbnail URLs. The main polling target after create_video_brief or edit_video_brief; for post-publish engagement numbers use get_job_metrics instead.

get_video_stateA

Get the materialized video state for a job (composition decisions: scenes, duration, aspect ratio, etc.). Use it to inspect what the video contains; for pipeline progress and video URLs use get_job_status.

get_job_metricsA

Get the latest platform engagement metric snapshots for a published job (newest first). Read-only. Only meaningful after publish_job; for render progress use get_job_status.

get_cost_summaryA

Query production infrastructure costs (Lambda, RunPod, R2, WaveSpeed, PoYo), optionally with reconciliation drift. This is spend data, not engagement — for a published job's audience numbers use get_job_metrics.

inspect_workflowA

Inspect the current Studio workflow and its version history for a job.

create_video_briefA

Create a new video job from a structured brief and trigger the render pipeline. Returns the job and run IDs immediately; rendering continues asynchronously (typically a few minutes) — poll get_job_status until draft_ready. Requires a key with write scope. To change an existing job, use edit_video_brief instead of creating a duplicate.

edit_video_briefA

Edit an existing job's brief (only provided fields change). Changing the script, caption, title, lessonTitle, objective, steps, scenes, aspectRatio or voiceId triggers a re-render and returns the new run ID; objective also re-routes the composition. Changing only publishTarget updates the job's target platform without re-rendering. For a brand-new video use create_video_brief.

draft_workflowA

Create a durable Documentary Journey or Transformation Montage workflow version. Inspect first and pass its current version, or 0 only when no workflow exists.

patch_workflowA

Create a new workflow version by recursively merging a patch into the current version.

validate_workflowA

Validate and compile the inspected workflow version without rendering or publishing it.

preview_workflowA

Return the current workflow's compiled UniversalVideo brief for a safe pre-render preview.

compare_workflowsB

Compare two durable workflow versions field by field.

approve_workflowA

Validate and approve the inspected workflow version. This does not approve or publish the video job.

retry_video_qaA

Retry the default QA evaluator against the same current frozen video. Use only when get_job_status recommends retryTarget qa_only, or when QA is missing, unavailable, or parse-degraded. This does not regenerate media and cannot clear publish gates by itself.

audit_video_qaA

Run Qwen3.6-Plus as an advisory second evaluator against the same current frozen video. Use only on an explicit request for another model, second opinion, or evaluator escalation. The result is separate from default QA and has no publish-gate effect.

regenerate_narrationA

Regenerate narration from the unchanged durable brief and then regenerate its dependent video in a paid adaptation run. Use only on an explicit user request or when get_job_status recommends retryTarget tts. This is an audio_and_video cascade, consumes rerender quota, and requires fresh QA.

approve_jobA

Approve a rendered job so it becomes publishable (draft_ready/awaiting_review/needs_changes -> approved) and revoke active review links. Required before publish_job will accept the job.

publish_jobA

Publish an APPROVED job to its connected social destination via the gated publish API. All production gates run (paid plan, ownership, abuse, QA, disclosure, destination, rights, moderation). Requires a key with publish scope; the post goes live on the external platform and cannot be recalled by the API. For YouTube pass youtubePrivacyStatus:'private' for safe runs.

connect_accountA

Start connecting a social account headlessly (no local browser needed). Returns an approve URL + a short confirm code: open the URL in a browser signed in to Instavar, check the code matches THIS terminal, and approve. Then poll connect_account_status with the returned pairingId until it reports 'connected'.

connect_account_statusA

Poll a pending account connection started by connect_account. Returns status 'pending' | 'connected' | 'expired', plus the connected account label once connected.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/instavar/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server