# io.github.svatrous/longtake (npm · longtake-mcp)

Drive Longtake Studio from an agent: AI video takes on your own API key, characters, drafts, costs

- Trust score: 65/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-26

## Components

- npm · `longtake-mcp`: 65/100 (this document), [markdown](https://verifymcp.io/servers/svatrous-longtake/longtake-mcp.md), [page](https://verifymcp.io/servers/svatrous-longtake/longtake-mcp)

## Channel facts

- Registry: `npm`
- Package: `longtake-mcp`
- Version: `1.0.0`
- 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-09-26.

- **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.
  - 31 of 95 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 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2633 tokens (~202/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 83/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 50% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "cancel_take" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 13 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.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the io.github.svatrous/longtake MCP server?

io.github.svatrous/longtake runs locally as an npm package, launched with npx -y longtake-mcp. 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 svatrous-longtake -- npx -y longtake-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "svatrous-longtake": {
      "command": "npx",
      "args": [
        "-y",
        "longtake-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "svatrous-longtake": {
      "command": "npx",
      "args": [
        "-y",
        "longtake-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add svatrous-longtake -- npx -y longtake-mcp
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add svatrous-longtake --command npx --arg -y --arg longtake-mcp
```

### Hermes

```yaml
mcp_servers:
  svatrous-longtake:
    command: "npx"
    args: ["-y", "longtake-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "svatrous-longtake": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "longtake-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add svatrous-longtake -t stdio -c npx -a -y longtake-mcp
```

### Other

```json
{
  "mcpServers": {
    "svatrous-longtake": {
      "command": "npx",
      "args": [
        "-y",
        "longtake-mcp"
      ]
    }
  }
}
```

## 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-09-25 (score 65)

First indexed and scored.

## MCP tools (13)

### `studio_overview` (~41 tokens)

Studio overview: projects with folders and scenes (ids and names), characters, assets, active renders. Call this first — all other tools use ids from here.

### `create_project` (~34 tokens)

Create a project (scaffolded with "Episode 1" and "Scene 1").

Input parameters:

- `name` (string, required)

### `create_folder` (~42 tokens)

Create a folder (episode) in a project — a "Scene 1" appears inside.

Input parameters:

- `name` (string, required)
- `projectId` (string, required)

### `create_scene` (~30 tokens)

Create a scene in a folder.

Input parameters:

- `folderId` (string, required)
- `name` (string, required)

### `upload_asset` (~271 tokens)

Upload a local file (image, audio, or a reference clip) to the project library. Returns the name for @mentions. A library picture referenced as @name reaches the video model exactly as it is — to put a face in front of a video model, make it a character's portrait (create_character): that lays the anti-moderation grain on it. A clip (mp4/mov, 2–30 s, 480p or 720p) mentioned as @name goes to Seedance as a reference video — motion, camera movement, pacing, an effect — and its seconds are billed as input on top of the take; pass durationSec (and width/height) so the studio can check the limits before any money moves.

Input parameters:

- `durationSec` (number): length of an audio or video file in seconds; measured here with ffprobe (video) or from the file (mp3/wav) when omitted
- `filePath` (string, required): absolute path to the file
- `height` (integer): frame height of a clip in px (measured with ffprobe when omitted)
- `name` (string)
- `projectId` (string, required)
- `width` (integer): frame width of a clip in px (measured with ffprobe when omitted)

### `generate_mocap` (~195 tokens)

Generate a character mockup sheet (21:9, 4 panels: full-body front·profile·back·portrait). From a real-person photo (photoPaths) and/or a text description. Engine: Seedream (BytePlus) with a Gemini fallback. The result is saved as an asset in the library. Pass its id to create_character as imageAssetId to cast it — the sheet gets the anti-moderation grain at that moment.

Input parameters:

- `assetName` (string): name for the @mention; without it the sheet is called "mockup" (then mockup-2, …) — this tool has no character name to build one from
- `description` (string): who it is; required when there are no photos; write the style right here
- `photoPaths` (array): paths to photos of the person (up to 14)
- `projectId` (string, required)

### `create_character` (~415 tokens)

Create a character: name (for @mentions) + appearance (a local sheet via imageFilePath, or a library assetId) + voice (audio file or assetId). The voice is locked in — it does not change from scene to scene. A character with a portrait is screen-tested automatically: a 4s clip is rendered to find out whether the reference clears content moderation, and the verdict comes back in `check` ("rejected" = the portrait reads as a real person and every take with it would fail — replace it with a clearly animated one or a verified actor asset://).

Input parameters:

- `arkImageAsset` (string): asset:// of a verified BytePlus actor
- `arkVoiceAsset` (string)
- `grainLevel` (integer): strength of the anti-moderation grain on the portrait, 10–100 (default 60): the percent of black the darkest grain cell may reach. Raise it when Seedance 2.5 refuses a face that 2.0 accepts; the clea…
- `imageAssetId` (string): an existing library asset — it becomes the character's portrait and gets the anti-moderation grain at that moment (the clean file stays for previews; the asset itself stays in the library)
- `imageFilePath` (string): path to a local character sheet — preferred for a photorealistic face: the file is stored as the character's own (not listed in the library) and gets the automatic anti-moderation grain, the way atta…
- `name` (string, required)
- `projectId` (string, required)
- `voiceAssetId` (string)
- `voiceFilePath` (string): path to a 2–15 s voice sample — mp3 or wav only, the video model takes nothing else; all speaking characters in one take share that 15 s window (30 s on Seedance 2.5)

### `generate_video` (~722 tokens)

Generate a take (video) in a scene. In the prompt you can reference characters and assets by @name (see studio_overview) — the studio attaches portraits, voices and references itself. A @clip from the library goes to Seedance as a reference video (say what to take from it: "the camera movement of @clip", "the pacing of @clip"); up to 3 clips per take on the 2.0 family, 10 on 2.5, 30 s of reference video in total, and every second of it is billed on top of the take. Write the prompt in English: Russian is not among the prompt languages of these models, and the studio translates it only if its owner switched translation on. With draft: true it shoots a Seedance 2.5 draft — 480p, billed as an ordinary 480p take — that finish_draft can later render again as the same shot in 1080p; shoot several (variants) and finish the one that works. The task is async: track it via take_status.

Input parameters:

- `cameraPhrases` (array): English camera-movement phrases, e.g. "Slow cinematic dolly in toward the subject."
- `draft` (boolean): Seedance 2.5 only: a 480p draft that finish_draft can render again as the same shot in 1080p within 7 days. Billed as an ordinary 480p take. With draft, model defaults to 2.5 and resolution to 480p
- `duration` (integer): 4–15 sec (Seedance 2.0), 4–30 (2.5), 3–15 (Kling), 4/6/8 (Veo), or -1 = model decides (Seedance only); defaults to 8
- `firstFrameAssetId` (string)
- `generateAudio` (boolean): defaults to true
- `lastFrameAssetId` (string)
- `model` (string): defaults to Seedance 2.0. Seedance: 4–15 s, adaptive ratio, references and voice samples (2.5: up to 30 s, 30 references). Veo: 16:9/9:16, duration 4, 6 or 8 only, no voice, Lite takes no references.…
- `prompt` (string, required)
- `ratio` (string): defaults to adaptive on Seedance and to 16:9 on engines that have no adaptive; 2.5 with a first/last frame accepts adaptive only
- `resolution` (string): defaults to 720p, the one size every engine has (a draft: 480p, the only size drafts are shot in); 360p is Omni only, 480p is Seedance only, 4K is on Seedance 2.0, Veo 3.1/Fast and Kling 3.0
- `sceneId` (string, required)
- `variants` (integer): takes at once, defaults to 1

### `finish_draft` (~276 tokens)

Finish a Seedance 2.5 draft (a take shot with generate_video draft: true) in 1080p. The model renders the SAME shot again at full size: composition, camera path, blocking, timing, faces and sound carry over, fine detail is drawn again — and so are the draft's mistakes. A new 1080p take gives a different video; an upscale works from the draft's pixels alone. Billed as an ordinary 1080p take of the draft's length on 2.5 — about $2.84 per 5 s at 16:9 at list price. Quote it with estimate_cost once the draft has succeeded (its values are the real ones then): model 2.5, resolution 1080p, and duration, ratio and referenceVideoSec from the draft's take_status. The final is a new take in the draft's scene; the draft stays. Possible for 7 days after the draft, on the key it was shot on. A draft has one live final at a time: calling this again returns that final instead of paying twice, while a failed or deleted final can be finished again — and is paid again.

Input parameters:

- `taskId` (string, required): id of the draft take (from generate_video, take_status or scene_takes)

### `take_status` (~104 tokens)

Take status: queued/running/succeeded/failed + video file, last frame, token spend, and what the take was shot as: model, resolution, ratio, duration and referenceVideoSec (seconds of @clips it was billed for). A Seedance 2.5 draft carries draft: true and final — its live 1080p final, or null; a final carries finishOf, the draft it was made from.

Input parameters:

- `taskId` (string, required)

### `scene_takes` (~51 tokens)

Scene takes (brief, newest first). A Seedance 2.5 draft is marked draft: true; a draft's 1080p final carries finishOf.

Input parameters:

- `sceneId` (string, required)

### `cancel_take` (~93 tokens)

Delete a take. A queued BytePlus take is also cancelled at the provider, so its tokens are not burned. Everywhere else this is only a delete: Veo, Omni and Kling accept the render when it is created and have no cancel at all, and a take that is already running cannot be called back on any engine — it is paid for and the file is thrown away.

Input parameters:

- `taskId` (string, required)

### `estimate_cost` (~359 tokens)

Estimate generation cost before running. Seedance is billed in tokens (duration × width × height × 24 / 1024, at a $/M rate that differs per model and resolution); Veo and Kling are billed by the second; Gemini Omni is billed by tokens it decides after the fact, so its figure is a pessimistic guess. A Seedance 2.5 draft (generate_video draft: true) costs exactly a 480p take on 2.5 — price it with that model, not the default; its final (finish_draft) costs a 1080p take on 2.5 of the draft's duration and ratio, plus the draft's referenceVideoSec from take_status.

Input parameters:

- `durationSec` (integer, required)
- `model` (string): defaults to Seedance 2.0. Seedance: 4–15 s, adaptive ratio, references and voice samples (2.5: up to 30 s, 30 references). Veo: 16:9/9:16, duration 4, 6 or 8 only, no voice, Lite takes no references.…
- `ratio` (string)
- `referenceVideoSec` (number): total length of the @clips the prompt will reference — billed as input seconds on the cheaper video-input column (Seedance only)
- `resolution` (string, required)
- `variants` (integer)

## Diagnostics

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

## Score history

- 2026-09-26: 65
- 2026-09-25: 65

## Common questions

### What is the io.github.svatrous/longtake MCP server?

io.github.svatrous/longtake is an MCP server listed in the public MCP registry as io.github.svatrous/longtake. Drive Longtake Studio from an agent: AI video takes on your own API key, characters, drafts, costs. This page covers its npm package (longtake-mcp).

### Is the io.github.svatrous/longtake MCP server safe to use?

io.github.svatrous/longtake scores 65 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 26 September 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 io.github.svatrous/longtake MCP server expose?

io.github.svatrous/longtake exposes 13 tools: studio_overview, create_project, create_folder, create_scene, upload_asset, and 8 more. Their descriptions and schemas cost roughly 2,633 tokens of context every time the server is loaded.

### Is the io.github.svatrous/longtake MCP server still maintained?

io.github.svatrous/longtake is still listed as active in the MCP registry. We last reached this channel on 26 September 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 io.github.svatrous/longtake MCP server under?

io.github.svatrous/longtake 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/longtake-mcp
- Socket report: https://socket.dev/npm/package/longtake-mcp
- Repository: https://github.com/svatrous/longtake-mcp
- Website: https://longtake.studio/mcp
- Changelog RSS feed: https://verifymcp.io/servers/svatrous-longtake/longtake-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/svatrous-longtake/longtake-mcp.json
- HTML version of this page: https://verifymcp.io/servers/svatrous-longtake/longtake-mcp
