vivideo

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

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
75%
이름 품질
98%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domaincheck_configuration에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,785토큰 (도구 정의)
~733 B일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.39%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

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

실행 가능한 패키지

npm@vivideo/mcp1.0.2stdio

원격 엔드포인트

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

할 수 있는 일

도구 목록

도구 (13)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟡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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

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

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 13개
검증됨버전이 기록되지 않음도구 13개
검증됨버전이 기록되지 않음도구 13개