io.github.egocen-vivideo/vivideo
REMOTE · API.VIVIDEO.AI · 2 COMPONENTS · SCANNED AUG 3
AI video generation via the Vivideo API: auto or manual mode, avatars, voices, brand kits.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 13 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability80
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1458 tokens (~112/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management20
- Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage83
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 50% of tool parameters carry a description.Partial
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · api.vivideo.ai
claude mcp add --transport http egocen-vivideo-vivideo https://api.vivideo.ai/mcp
[mcp_servers.egocen-vivideo-vivideo] url = "https://api.vivideo.ai/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"egocen-vivideo-vivideo": {
"type": "remote",
"url": "https://api.vivideo.ai/mcp",
"enabled": true
}
}
} openclaw mcp add egocen-vivideo-vivideo --url https://api.vivideo.ai/mcp --transport streamable-http
mcp_servers:
egocen-vivideo-vivideo:
url: "https://api.vivideo.ai/mcp" {
"mcpServers": {
"egocen-vivideo-vivideo": {
"type": "http",
"url": "https://api.vivideo.ai/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Jul 26 0
- Stability: unverified → 0.03 ▲ functional
- 28 Jul 26 62
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://api.vivideo.ai/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=api.vivideo.ai | CN=Amazon RSA 2048 M01,O=Amazon,C=US | 23 Nov 2025 | 22 Dec 2026 | RSA 2048 | SHA256-RSA | a4e63d39371963fff058c1511546280 |
| SANs: api.vivideo.ai | ||||||
| CN=Amazon RSA 2048 M01,O=Amazon,C=US (CA) | CN=Amazon Root CA 1,O=Amazon,C=US | 23 Aug 2022 | 23 Aug 2030 | RSA 2048 | SHA256-RSA | 77312380b9d6688a33b1ed9bf9ccda68e0e0f |
| CN=Amazon Root CA 1,O=Amazon,C=US (CA) | CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US | 25 May 2015 | 31 Dec 2037 | RSA 2048 | SHA256-RSA | 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6 |
DNSSEC insecure
Validation of api.vivideo.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| vivideo.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.vivideo.ai/mcp | Verified | 200 | |
| http (plaintext) | http://api.vivideo.ai/mcp | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
check_account ~70
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
check_configuration ~78
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
create_auto_video ~218
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.
| Name | Type | Req | Description |
|---|---|---|---|
| avatar_id | string | — | From list_avatars. Omit for a default presenter. |
| brand_kit_id | string | — | A brand_ref from list_brand_kits. |
| duration_seconds | integer | — | 5–300, default 30. |
| folder_id | string | — | — |
| idempotency_key | string | — | Optional. Reuse the same key to make a retry safe. |
| name | string | — | — |
| orientation | string | — | — |
| prompt | string | yes | What the video should show or say. |
| voice_id | string | — | From list_voices. |
No output schema declared.
No examples provided.
create_manual_video ~222
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.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | string | — | — |
| duration_seconds | integer | — | Must be one of the model's durations. |
| folder_id | string | — | — |
| generate_audio | boolean | — | — |
| idempotency_key | string | — | — |
| image_url | string | — | Public https image → image-to-video. |
| model | string | yes | A model id from list_models, e.g. "veo31_fast". |
| name | string | — | — |
| negative_prompt | string | — | — |
| prompt | string | yes | — |
| resolution | string | — | — |
| seed | integer | — | — |
| style | string | — | — |
No output schema declared.
No examples provided.
estimate_credits ~116
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.
| Name | Type | Req | Description |
|---|---|---|---|
| duration_seconds | integer | — | — |
| mode | string | yes | — |
| model | string | — | Required for manual mode — a model id from list_models. |
| resolution | string | — | Manual mode — one of the model's resolutions. |
No output schema declared.
No examples provided.
get_video ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The video id from a create call. |
No output schema declared.
No examples provided.
list_avatars ~112
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.
| Name | Type | Req | Description |
|---|---|---|---|
| gender | string | — | — |
| limit | integer | — | Max avatars to return (default 20). |
| search | string | — | Filter avatars by name. |
No output schema declared.
No examples provided.
list_brand_kits ~50
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_models ~85
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.
| Name | Type | Req | Description |
|---|---|---|---|
| mode | string | — | Only return models for this mode. |
No output schema declared.
No examples provided.
list_videos ~47
List the account's videos, newest first. Filter by status and limit the count to keep responses small.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Default 20. |
| status | string | — | — |
No output schema declared.
No examples provided.
list_voices ~92
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.
| Name | Type | Req | Description |
|---|---|---|---|
| gender | string | — | — |
| language | string | — | e.g. "English". |
| limit | integer | — | Max voices (default 20). |
| search | string | — | — |
No output schema declared.
No examples provided.
render_preview ~86
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The preview video id. |
No output schema declared.
No examples provided.
wait_for_video ~123
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | — |
| timeout_seconds | integer | — | Max wait per call (default 20, cap 20). |
No output schema declared.
No examples provided.