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 分