vivideo

AI video generation via the Vivideo API: auto or manual mode, avatars, voices, brand kits.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
75%
Qualität der Benennung
98%
Risiko der Vergiftung
80%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin check_configuration

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~1,785Tokens (Tool-Definitionen)
~733 BTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.39% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "vivideo": {
      "command": "npx",
      "args": [
        "@vivideo/mcp"
      ]
    }
  }
}

Ausführbare Pakete

npm@vivideo/mcp1.0.2stdio

Remote-Endpunkte

https://api.vivideo.ai/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (13)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟡check_configuration

Check whether a Vivideo API key is present on this request. Call this FIRST. Returns { configured: boolean }. If false, ask the user to add an Authorization: Bearer vv_live_... header to the MCP server config (a key from https://app.vivideo.ai/account/api-keys). Never asks for or exposes the key.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟢check_account

Get the account plan, premium status, and remaining credit balance. Use this to decide whether the user can generate a video (rendering needs a premium plan and enough credits). Returns plan, premium, credits, free_video_available, and links (upgrade / buy_credits). Cheap and safe to call often.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟡list_models(mode)

List the video models available for MANUAL mode plus the auto-generate pipeline (id "vivideo-auto"). Each model lists its operations, allowed durations, resolutions, aspect ratios, style presets and per-second credit rate — use these to build a valid create request. Filter with `mode` to keep the response small.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "auto",
        "manual"
      ],
      "description": "Only return models for this mode."
    }
  }
}
🟡list_avatars(search, gender, limit)

List available avatars for auto-mode videos (the stock catalogue plus the account's own avatars). Stock avatars are grouped by person, each with a `looks` array — pass a looks[].avatar_id (or an owned avatar's id) as `avatar_id` in create_auto_video. Use `search`/`limit` to keep responses small.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "search": {
      "type": "string",
      "description": "Filter avatars by name."
    },
    "gender": {
      "type": "string",
      "enum": [
        "male",
        "female",
        "unspecified"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Max avatars to return (default 20)."
    }
  }
}
🟡list_voices(language, gender, search, limit)

List available voices for auto-mode videos. Returns voice ids to pass as `voice_id` in create_auto_video. Filter by language/gender/search and cap with `limit`. Voice cloning is not available via the API.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "description": "e.g. \"English\"."
    },
    "gender": {
      "type": "string"
    },
    "search": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Max voices (default 20)."
    }
  }
}
🟡list_brand_kits

List the account's brand kits (logo, colors, fonts, motion style). Returns brand_ref ids to pass as `brand_kit_id` in create_auto_video to produce an on-brand video.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟡estimate_credits(mode, model, duration_seconds, resolution)

Estimate the credits a generation will cost, from the published per-model rates — BEFORE creating it. This is an estimate, not a charge; the exact amount is returned as credits_charged when you create the video. Use it with check_account to confirm the user can afford the request.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "auto",
        "manual"
      ]
    },
    "model": {
      "type": "string",
      "description": "Required for manual mode — a model id from list_models."
    },
    "duration_seconds": {
      "type": "integer",
      "minimum": 1
    },
    "resolution": {
      "type": "string",
      "description": "Manual mode — one of the model's resolutions."
    }
  },
  "required": [
    "mode"
  ]
}
🟡create_auto_video(prompt, duration_seconds, avatar_id, voice_id, brand_kit_id, ...)

Create a video in AUTO mode: Vivideo writes the script and produces a complete AI-avatar video from your prompt. Returns immediately with a video id and status "processing" (paid) or "preview" (free accounts — see the preview field and upgrade link). Then call wait_for_video or get_video. An Idempotency-Key is sent automatically so a retry never creates a duplicate. Rendering requires a premium plan and credits.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5000,
      "description": "What the video should show or say."
    },
    "duration_seconds": {
      "type": "integer",
      "minimum": 5,
      "maximum": 300,
      "description": "5–300, default 30."
    },
    "avatar_id": {
      "type": "string",
      "description": "From list_avatars. Omit for a default presenter."
    },
    "voice_id": {
      "type": "string",
      "description": "From list_voices."
    },
    "brand_kit_id": {
      "type": "string",
      "description": "A brand_ref from list_brand_kits."
    },
    "orientation": {
      "type": "string",
      "enum": [
        "landscape",
        "portrait"
      ]
    },
    "folder_id": {
      "type": "string"
    },
    "name": {
      "type": "string",
      "maxLength": 60
    },
    "idempotency_key": {
      "type": "string",
      "maxLength": 255,
      "description": "Optional. Reuse the same key to make a retry safe."
    }
  },
  "required": [
    "prompt"
  ]
}
🟡create_manual_video(model, prompt, duration_seconds, resolution, aspect_ratio, ...)

Create a video in MANUAL mode: send your prompt straight to a specific model (get ids/options from list_models). The operation is inferred from inputs — add image_url for image-to-video. resolution/duration/aspect_ratio must match the model (an invalid value returns a 400 listing what is allowed). Returns a video id and status; then wait_for_video or get_video. Idempotency handled automatically.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "model": {
      "type": "string",
      "description": "A model id from list_models, e.g. \"veo31_fast\"."
    },
    "prompt": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5000
    },
    "duration_seconds": {
      "type": "integer",
      "minimum": 1,
      "description": "Must be one of the model's durations."
    },
    "resolution": {
      "type": "string"
    },
    "aspect_ratio": {
      "type": "string"
    },
    "image_url": {
      "type": "string",
      "description": "Public https image → image-to-video."
    },
    "negative_prompt": {
      "type": "string"
    },
    "seed": {
      "type": "integer"
    },
    "generate_audio": {
      "type": "boolean"
    },
    "style": {
      "type": "string"
    },
    "folder_id": {
      "type": "string"
    },
    "name": {
      "type": "string",
      "maxLength": 60
    },
    "idempotency_key": {
      "type": "string",
      "maxLength": 255
    }
  },
  "required": [
    "model",
    "prompt"
  ]
}
🟢get_video(id)

Get a video's current status and result. status is one of queued | processing | completed | failed | preview. When completed, video_url is the MP4. When failed, credits are refunded and error explains why. Cheap; prefer wait_for_video for polling instead of calling this in a tight loop.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The video id from a create call."
    }
  },
  "required": [
    "id"
  ]
}
⚪wait_for_video(id, timeout_seconds)

Wait for a video to reach a terminal state (completed / failed / preview), then return it. Polls safely at the API-suggested interval for up to ~20 seconds per call (HTTP requests are time-capped). If it does not finish in time it returns { timed_out: true } with the latest status — simply call it again with the same id to keep waiting. It never blocks indefinitely or over-polls.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 5,
      "maximum": 20,
      "description": "Max wait per call (default 20, cap 20)."
    }
  },
  "required": [
    "id"
  ]
}
🟢list_videos(status, limit)

List the account's videos, newest first. Filter by status and limit the count to keep responses small.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "processing",
        "completed",
        "failed",
        "preview"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Default 20."
    }
  }
}
⚪render_preview(id)

For FREE accounts only: after the user upgrades, render a video that was returned as status "preview". Charges run on the same project (the first video after upgrading is free). If the video is already rendering/complete, returns its current state. If the account is still free, returns an upgrade_required error with an upgrade link.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The preview video id."
    }
  },
  "required": [
    "id"
  ]
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet13 Tools
verifiziertVersion nicht aufgezeichnet13 Tools
verifiziertVersion nicht aufgezeichnet13 Tools