Vivideo

io.github.egocen-vivideo由 GitHub 帳號 egocen-vivideo 發布v1.0.2更新於 Oct 27, 2026

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

已驗證Streamable HTTP可網頁執行媒體與設計AI 與機器學習

概覽

AI 產生的概覽

Vivideo 讓助理透過 Vivideo API 生成 AI 虛擬人物影片,支援自動與手動模式,並可選用虛擬人物、聲音和品牌套件。

可以做什麼
  • 檢查設定狀態,以及帳戶方案、進階狀態和剩餘點數
  • 列出影片模型及其長度、解析度、畫面比例和每秒點數費率
  • 列出可用於自動模式影片的虛擬人物、聲音和品牌套件
  • 生成前估算點數消耗,再建立自動模式或手動模式影片
  • 查詢、等待和列出影片,並在免費帳戶升級後算繪預覽影片
適用情境
適合讓助理依提示詞草擬並算繪短影片或虛擬人物影片、在生成前確認帳戶點數是否足夠,或不必離開對話就能追蹤既有的影片工作。
執行需求
可使用 api.vivideo.ai 遠端端點並附上 Authorization bearer 標頭,或在本機以 Node 18.17 以上執行 npm 套件 @vivideo/mcp(stdio)。需要 Vivideo API 金鑰(vv_live_...),透過 VIVIDEO_API_KEY 環境變數或 Authorization 標頭提供。算繪需要進階方案和足夠點數。
安裝前請注意
API 金鑰是與帳戶綁定的機密,可用來消耗點數,應保存在伺服器端並能單獨撤銷。建立影片會扣除點數(免費帳戶在升級前只會得到預覽),且沒有取消介面,但失敗的算繪會自動退款。提示詞和圖片連結會傳送到 Vivideo 的 API。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Vivideo,將其新增到工作區。
  2. 連接 Authorization token 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.egocen-vivideo%2Fvivideo/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "vivideo": {
      "type": "http",
      "url": "https://api.vivideo.ai/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

Vivideo Toolchain

The developer + agent integration layer for the Vivideo API — a shared client, an MCP server, a CLI, and Skills. Agents are a primary user, not an afterthought.

Everything sits on top of the public API (the source of truth). No backend business logic is duplicated here — the toolchain only adds client-side ergonomics and guardrails.

vivideo-toolchain/            npm workspaces monorepo (TypeScript)├── packages/core   @vivideo/core   one typed API client + guardrails (shared)├── packages/mcp    @vivideo/mcp    MCP server (stdio) — 13 agent tools├── packages/cli    @vivideo/cli    `vivideo` CLI — humans, scripts, CI, agents├── skills/                          reusable agent Skills (SKILL.md)└── docs/                            installation, configuration, workflows

Architecture

One client, one set of types, derived from packages/core/openapi.yaml. The MCP server and CLI both call @vivideo/core — there is exactly one representation of each request/response, so the tools, CLI, docs and OpenAPI stay consistent.

@vivideo/core adds only client-side concerns, never business logic:

GuardrailWhat it does
Rate limitingToken-bucket cap on request rate (default 8/s) — the client can't become a request flood.
Concurrency capSemaphore limits in-flight requests (default 4).
Bounded retriesRetries only retryable failures, with full-jitter backoff, capped attempts.
Honors Retry-AfterOn 429 it waits the API-specified delay before retrying.
IdempotencyEvery video-create sends an Idempotency-Key; retries reuse it → no duplicate charges.
TimeoutsPer-request AbortController timeout (default 30s).
Safe waitingwaitForVideo polls at the API's suggested interval, with a hard timeout — never a while(true).
Secret redactionAPI keys / signing secrets are stripped from every log, error, and output.

These complement — and never bypass — the API's own auth, rate limits, idempotency, credit checks, premium gates, ownership and error model.

Quick start

bash
# from the repo (until packages are published to npm)npm installnpm run build
# authenticate (stored 0600 in ~/.vivideo/config.json), or use VIVIDEO_API_KEYexport VIVIDEO_API_KEY="vv_live_..."   # from https://app.vivideo.ai/account/api-keys
# CLInode packages/cli/dist/index.js accountnode packages/cli/dist/index.js create auto --prompt "A 20s product teaser" --wait
# MCP server (stdio) — point an MCP client at this commandnode packages/mcp/dist/index.js

Once published: npm i -g @vivideo/cli (gives vivideo), and npx @vivideo/mcp for the server.

Docs

Authentication & security

  • Keys are read from (in order): explicit option → VIVIDEO_API_KEY env → ~/.vivideo/config.json (written owner-only 0600).
  • The key is never printed — all output passes through secret redaction; configure stores it without echoing it.
  • Keys are account-scoped secrets. Keep them server-side; one per integration so a leak is revocable in isolation.

Not included (honest scope)

  • Cancellation — the public API has no cancel endpoint, so no cancel tool/command is offered. Failed/stuck renders are auto-refunded by the API.
  • Agent/chat mode — not exposed by the public API, so not in the toolchain.
  • Nothing here publishes to npm, provisions DNS, or deploys — those are external steps (see the final section of docs/mcp.md).

Development

bash
npm run build       # build all three packages (tsc -b)npm run typecheck   # type-check the whole workspacenpm test            # vitest

Requires Node ≥ 18.17.

來源:README.md,提交 f0b911e

工具

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.

無需輸入參數。

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.

無需輸入參數。

list_models

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.

輸入參數mode

list_avatars

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.

輸入參數limitgendersearch

list_voices

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.

輸入參數limitgendersearchlanguage

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.

無需輸入參數。

estimate_credits

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.

輸入參數mode必填modelresolutionduration_seconds

create_auto_video

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.

輸入參數nameprompt必填voice_idavatar_idfolder_idorientationbrand_kit_ididempotency_keyduration_seconds

create_manual_video

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.

輸入參數nameseedmodel必填styleprompt必填folder_idimage_urlresolutionaspect_ratiogenerate_audioidempotency_keynegative_prompt另有 1 個

get_video

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.

輸入參數id必填

wait_for_video

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.

輸入參數id必填timeout_seconds

list_videos

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

輸入參數limitstatus

render_preview

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.

輸入參數id必填

版本歷史

1
  1. v1.0.2最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分