# JSON2Video (npm · @json2video/cli)

Video API for automated video production at scale: templates, AI voiceovers, subtitles, AI images

- Trust score: 78/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `mcp.json2video.com`: 39/100, [markdown](https://verifymcp.io/servers/com-json2video-mcp/mcp.md), [page](https://verifymcp.io/servers/com-json2video-mcp/mcp)
- npm · `@json2video/cli`: 78/100 (this document), [markdown](https://verifymcp.io/servers/com-json2video-mcp/json2video-cli.md), [page](https://verifymcp.io/servers/com-json2video-mcp/json2video-cli)

## Channel facts

- Registry: `npm`
- Package: `@json2video/cli`
- Version: `1.1.5`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 30 of 93 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 7 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 85/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1687 tokens (~88/item across 19 items; 17 tools + 2 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 43/100
  - Stability observed for 13 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (12% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### How do I install the JSON2Video MCP server?

JSON2Video runs locally as an npm package, launched with npx -y @json2video/cli. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add com-json2video-mcp -- npx -y @json2video/cli
```

### Cursor

```json
{
  "mcpServers": {
    "com-json2video-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@json2video/cli"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-json2video-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@json2video/cli"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add com-json2video-mcp -- npx -y @json2video/cli
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-json2video-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@json2video/cli"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-json2video-mcp --command npx --arg -y --arg @json2video/cli
```

### Hermes

```yaml
mcp_servers:
  com-json2video-mcp:
    command: "npx"
    args: ["-y", "@json2video/cli"]
```

### Netclaw

```json
{
  "McpServers": {
    "com-json2video-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@json2video/cli"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-json2video-mcp -t stdio -c npx -a -y @json2video/cli
```

### Other

```json
{
  "mcpServers": {
    "com-json2video-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@json2video/cli"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 74, +6)

- [security regression] Tool safety: pass → unverified
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Schema quality: 1151 → 1687
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Stability: unverified → 0.17
- [functional] First check of Tool coverage: 12
- [functional] First check of Capabilities: pass
- [functional] First check of Schema quality: 100
- [functional] First check of Schema quality: unverified
- [functional] Destructive annotations: All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
- [functional] Package version: 1.1.4 → 1.1.5

### 2026-10-24 (score 68, +25)

- [security improvement] Known CVEs: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Dependency health: unverified → 0.85

### 2026-10-23 (score 43)

First indexed and scored.

## MCP tools (17)

### `render_video` (~123 tokens)

Render video

Render a video from a movie JSON definition or a template with variables. Returns the video URL when done. When the status is done, call show_video with the url (and duration) so the user can watch it in the chat.

Input parameters:

- `movie` (string): Complete movie JSON as a string (will be parsed). Include scenes, elements, resolution, etc.
- `template_id` (string): Template ID (alternative to movie)
- `variables` (string): Template variables as JSON string
- `wait` (boolean): Wait for render to complete (default: true)

### `check_status` (~55 tokens)

Check render status

Check the rendering status of a video project. When the status is done, call show_video with the url (and duration) so the user can watch it in the chat.

Input parameters:

- `project` (string, required): Project ID from render_video

### `list_recent_renders` (~82 tokens)

List recent renders

List the most recent video renders of the account (newest first) with project id, status, URL, creation time and duration. Use it to find a project again, for example after a timeout. Only renders of the last 3 months are listed.

Input parameters:

- `limit` (integer): How many renders to return (default 10, max 50)

### `list_templates` (~45 tokens)

List my templates

List the user's own templates. To show them to the user, call show_templates with the templates as returned here (id, name, thumbnail_url, video_url, width, height).

### `list_featured_templates` (~91 tokens)

List featured templates

List featured/published templates from the template library. Each template has id, name, tags, width, height, thumbnail_url and video_url. To show them to the user, call show_templates with the templates you want to present, exactly as returned here (up to 12 at a time): it displays their real thumbnails and playable previews.

Input parameters:

- `tag` (string): Filter featured templates by tag

### `get_template` (~61 tokens)

Get template

Get details of a template including its expected variables (as JSON Schema) or its full movie JSON source code.

Input parameters:

- `code` (boolean): If true, return the full movie JSON source code instead of template info
- `template_id` (string, required): Template ID

### `save_template` (~194 tokens)

Save template

Save a movie JSON as a reusable template in the user's account (create, or update when template_id is given). Put default values in the movie's "variables" object and reference them with {{name}} placeholders. Once saved, render many videos with render_video using template_id + variables. The template also works from n8n, Make, Zapier and the API, and opens in the visual editor (editor_url). Use it for batches: design one video, save it as a template, then render each row of data by passing only variables.

Input parameters:

- `movie` (string, required): Complete movie JSON as a string, with a "variables" block of defaults and {{variable}} placeholders
- `name` (string): Template name (required when creating a new template)
- `tags` (string): Comma-separated tags
- `template_id` (string): Existing template ID to update. Omit to create a new template

### `get_account` (~15 tokens)

Get account

Get account information and remaining quotas

### `validate_movie` (~39 tokens)

Validate movie JSON

Validate a movie JSON without rendering. Checks structure, element types, and required properties.

Input parameters:

- `movie` (string, required): Movie JSON as a string to validate

### `get_example` (~48 tokens)

Get example movie

Get an example movie JSON by ID. Use without arguments to list all available examples.

Input parameters:

- `id` (string): Example ID (e.g. 'hello-world'). Omit to list all examples.

### `get_help` (~355 tokens)

Get movie JSON help

Get help on movie JSON syntax, element types, properties, and transitions. Essential for understanding how to construct movie JSONs.

Input parameters:

- `accent` (string): For ai-voices: filter by accent. For emojis: filter by category
- `age` (string): For ai-voices: filter by age (young, middle_aged, old)
- `component_path` (string): For components topic: component path (e.g. 'basic/050'). Omit to list all components.
- `gender` (string): For ai-voices: filter by gender (male, female)
- `language` (string): For ai-voices: filter by language code (en, es, fr, etc.)
- `limit` (number): For ai-voices, music, or emojis: max items per page (default: 20)
- `page` (number): For ai-voices, music, or emojis: page number (default: 1)
- `provider` (string): For ai-voices topic: voice provider (azure, elevenlabs)
- `style_id` (string): For text-styles topic: style ID (e.g. '002'). Omit to list all styles.
- `topic` (string): Help topic: movie, scene, elements, video, image, text, html, component, template, audio, voice, audiogram, subtitles, transitions, variables, base, visual, audio-props, ai-models, ai-voices, text-st…
- `voice_id` (string): For ai-voices: get specific voice by ID
- `voice_name` (string): For ai-voices: search by voice name

### `media_list` (~98 tokens)

List media files

List files and folders in media storage. Returns file names, sizes, content types, and URLs.

Input parameters:

- `page` (number): Page number, 0-indexed (default: 0)
- `path` (string): Folder path (e.g. 'my_avatars'). Omit for root folder.
- `search` (string): Filter by filename
- `type` (string): Filter by type: image, video, audio, other

### `media_get` (~40 tokens)

Get media file

Get details and download URL of a file in media storage.

Input parameters:

- `path` (string, required): File path (e.g. 'my_avatars/avatar1.jpg')

### `media_upload` (~92 tokens)

Upload media file

Upload a file to media storage from a local file path or a public URL.

Input parameters:

- `file` (string): Local file path to upload (e.g. '/Users/me/photo.jpg')
- `folder` (string): Destination folder (default: root)
- `name` (string): Filename to use in storage (default: derived from file/URL)
- `url` (string): Public URL of the file to upload

### `media_delete` (~37 tokens)

Delete media file

Delete a file from media storage.

Input parameters:

- `path` (string, required): File path to delete (e.g. 'my_avatars/avatar1.jpg')

### `show_templates` (~126 tokens)

Show templates

Show templates to the user as a visual carousel with their real thumbnails and playable previews. First get the data with list_featured_templates (or list_templates), then call this tool with the templates you want to present, copying id, name, thumbnail_url, video_url, width and height exactly as returned (1 to 12 templates). It shows the real thumbnails of JSON2Video templates. The carousel has a "Use this template" button, so you do not need to list the templates again in text.

Input parameters:

- `templates` (array, required): The templates to show (1 to 12)

Output parameters:

- `templates` (array)

### `show_video` (~152 tokens)

Show video

Show a rendered video to the user in an inline player (with duration and a download link). Call it when render_video, check_status or list_recent_renders report a video as done: pass its url and, when known, project and duration. Use it instead of only pasting the link.

Input parameters:

- `duration` (number): Duration in seconds
- `height` (number): Video height in pixels, if known
- `project` (string): Project ID of the render
- `title` (string): Title to show above the player
- `url` (string, required): The video (MP4) URL returned by render_video / check_status
- `width` (number): Video width in pixels, if known

Output parameters:

- `duration` (number)
- `height` (number)
- `project` (string)
- `title` (string)
- `url` (string)
- `width` (number)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-json2video-mcp/json2video-cli#diagnostics

## Score history

- 2026-11-05: 78
- 2026-11-04: 77
- 2026-11-03: 77
- 2026-11-02: 76
- 2026-11-01: 76
- 2026-10-31: 75
- 2026-10-30: 75
- 2026-10-29: 75
- 2026-10-28: 74
- 2026-10-27: 68
- 2026-10-26: 68
- 2026-10-25: 68
- 2026-10-24: 68
- 2026-10-23: 43

## Common questions

### What is the JSON2Video MCP server?

JSON2Video is an MCP server listed in the public MCP registry as com.json2video/mcp. Video API for automated video production at scale: templates, AI voiceovers, subtitles, AI images. This page covers its npm package (@json2video/cli).

### Is the JSON2Video MCP server safe to use?

JSON2Video scores 78 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the JSON2Video MCP server expose?

JSON2Video exposes 17 tools: render_video, check_status, list_recent_renders, list_templates, list_featured_templates, and 12 more. Their descriptions and schemas cost roughly 1,653 tokens of context every time the server is loaded.

### Is the JSON2Video MCP server still maintained?

JSON2Video is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the JSON2Video MCP server under?

JSON2Video declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@json2video/cli
- Socket report: https://socket.dev/npm/package/@json2video/cli
- Repository: https://github.com/JSON2Video/json2video-mcp
- Website: https://json2video.com/docs/v2/help-for-ai-agents/mcp-server?utm_source=mcp-registry&utm_medium=mcp-directory&utm_campaign=mcp-listing
- Changelog RSS feed: https://verifymcp.io/servers/com-json2video-mcp/json2video-cli.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-json2video-mcp/json2video-cli.json
- HTML version of this page: https://verifymcp.io/servers/com-json2video-mcp/json2video-cli
