Skip to main content
Glama

SceneWeaver MCP

A local MCP connector that turns an assistant's script into a narrated short video. Plan scenes, inspect a storyboard, choose media, preview a voice, then render to a requested duration. No LLM API key is required: your existing assistant supplies the narration and search terms.

SceneWeaver is an early release. Review the storyboard and asset credits before publishing a video. Visual relevance still benefits from a human's judgment.

Install locally

Requires Python 3.11 or newer and a supported 64-bit platform. Python 3.11 or 3.12 is recommended for the optional voice engine's native dependencies. Installation downloads Python packages; voice models are a separate explicit download.

Download and extract a release bundle from GitHub Releases, then install its wheel in a virtual environment:

The bundle also contains examples/install-windows.cmd and examples/install-posix.sh. Run the matching installer from a terminal to create a local environment and install the voice extra. Then run setup-voice explicitly as shown below. These scripts download packages; they do not download voice models. At the end, they detect supported client configuration folders and offer to connect one client. Press Enter to skip. Plain pip install never edits client settings.

# Windows PowerShell, from the extracted bundle directory
py -3.12 -m venv .venv
.\.venv\Scripts\python -m pip install --upgrade pip
.\.venv\Scripts\python -m pip install "./sceneweaver_mcp-0.1.2-py3-none-any.whl[voice]"
.\.venv\Scripts\sceneweaver-mcp setup-voice
.\.venv\Scripts\sceneweaver-mcp doctor
# macOS / Linux, from the extracted bundle directory
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install './sceneweaver_mcp-0.1.2-py3-none-any.whl[voice]'
.venv/bin/sceneweaver-mcp setup-voice
.venv/bin/sceneweaver-mcp doctor

For a source checkout, replace the wheel path with '.[voice]'. With uv, run uv sync --extra voice, then uv run sceneweaver-mcp setup-voice. The voice extra installs Kokoro ONNX and its speech dependencies; setup-voice downloads approximately 355 MB of integrity-checked model and voice files. It never runs silently when the MCP server starts. Installing the core without [voice] still provides planning and media tools; local narration requires the extra and models.

FFmpeg is supplied through imageio-ffmpeg on supported platforms. Its executable and codec licensing are separate from this project's Apache license. See third-party notices before redistributing an environment.

Related MCP server: postward-creative-mcp

Connect an MCP client

Run sceneweaver-mcp connect for automatic detection and an opt-in setup prompt. It supports Codex shared configuration, Cursor, and Claude Desktop on Windows/macOS. It checks known configuration folders rather than scanning your computer. Choose one client; an existing configuration is backed up before SceneWeaver is added.

For a read-only check, run sceneweaver-mcp clients. To preview a specific change, run sceneweaver-mcp connect --client cursor --dry-run. To explicitly apply it, omit --dry-run. Client IDs are codex, cursor, and claude-desktop.

Restart the selected client and approve SceneWeaver there. Detection does not prove that a client is installed or enabled, and does not bypass its permissions. Only one server may own the default storage at a time; close other clients using it or configure separate SCENEWEAVER_HOME directories. See client setup for supported paths, backups, and manual setup limitations.

Use the absolute executable path from the environment you just installed. The server uses stdio and needs no localhost port. A generic client configuration is in examples/mcp.json; adapt it to your client's schema.

{
  "mcpServers": {
    "sceneweaver": {
      "command": "/absolute/path/to/.venv/bin/sceneweaver-mcp",
      "args": ["serve"]
    }
  }
}

On Windows, use C:\\absolute\\path\\.venv\\Scripts\\sceneweaver-mcp.exe. Run sceneweaver-mcp version to confirm the executable. Set SCENEWEAVER_HOME in the MCP process environment if you want to choose where state, media and results are stored; doctor reports the active location.

The optional launchers are examples/run-windows.cmd and examples/run-posix.sh. If your client needs an interpreter to launch a script, use cmd /d /c on Windows or sh on POSIX, with the absolute script path as arguments. The installed sceneweaver-mcp executable above is the simplest configuration. POSIX launchers can also be run as sh examples/run-posix.sh if executable permission was not preserved by ZIP extraction.

Make a video

Ask your connected assistant:

Make a 15-second video explaining how trees cool cities. Plan three scenes, find relevant footage from the available providers, and show the storyboard. Preview the narrator before rendering. Use quiet background music, concise captions and the selected scenes. Give me the video and its asset credits.

The workflow is: plan scenes → search and select media → review storyboard → preview narration → generate → check progress → retrieve results. You can replace a scene's selection before rendering and cancel an active job. Cached downloads reduce repeat requests, while provider cooldowns avoid repeatedly hitting a limited service. Uploaded/imported media must be yours to use.

The renderer fits measured narration to the requested duration within its allowed speed range; it fails with a useful message when the script needs rewriting rather than forcing an unnatural voice speed. Caption timing uses measured sentence boundaries. Phrase and word highlighting use estimated timing inside those sentences, rather than speech-recognition word alignment.

Branding supports a title, footer, six-digit hex color and an imported logo asset ID.

Tool

Purpose

get_capabilities

Inspect providers, narration and setup status.

search_media, import_media

Discover licensed media or register managed local assets.

create_storyboard, get_storyboard

Save and inspect assistant-written scene text and timing.

select_scene_asset, preview_storyboard

Change a scene's asset and inspect a thumbnail contact sheet.

preview_voice

Hear the selected narrator before a full render.

generate_video

Render the selected storyboard to its requested duration.

get_video_status, get_video_results, cancel_video

Track a job, retrieve outputs or cancel.

create_storyboard accepts scenes containing text, query, an optional asset_id and optional duration_seconds. Set durations for every scene or let the planner allocate them by word count. Set the total duration_seconds (1–120), aspect (9:16, 16:9 or 1:1), voice, music (ambient or none), music_volume (0–0.18), branding and caption_style (sentence, phrase or word). Available Kokoro voices are af_heart, af_bella, am_michael and bf_emma.

To import media, place a file in the managed inbox/ under the storage directory reported by doctor, then call import_media with its filename and rights metadata. Tools cannot import an arbitrary absolute path. Provider searches and downloads require allow_network=true; choose it only with the user's permission.

Voice previews return a WAV path and sceneweaver://voice/{preview_id} resource. Storyboard previews include an inline PNG contact sheet and can also be read from sceneweaver://storyboard/{storyboard_id}/preview. Playback and resource display depend on the connected MCP client's capabilities. Video results include the local MP4 path, its checksum, credits and a quality report.

Providers and integrations

Wikimedia Commons and Openverse provide image discovery; Pexels provides stock video discovery through the optional API-Anything bridge. Individual providers can be unavailable or rate-limited. Media credits travel with the job. A free website does not automatically grant permission for any use of its content.

Kokoro runs locally without an API key after setup. The generated ambient music bed contains no external song recording. Additional local voice service options are documented as research; an API-Anything speech connector is not included in this release.

See integration setup and provider options, privacy and security, and licensing.

Develop and package

python -m pip install -e '.[dev,voice]'
python -m unittest discover -s tests -v
python scripts/package_release.py
python -m pip_audit

The release script builds a wheel, source distribution, downloadable ZIP bundle and SHA-256 checksums in dist/. It packages code and documentation, never local jobs, cached downloads, voice models or credentials. Builds install dependencies from package indexes; the bundle is not an offline all-dependencies installer. CI covers Windows, macOS and Linux; a configured workflow is not a claim that remote CI has already passed for an unpublished commit.

Release verification on Windows: the local test suite passed, an actual stdio MCP job rendered an exact 15-second video with local Kokoro narration, and an actual API-Anything Commons search returned six assets. macOS/Linux checks are configured in CI but have not yet been executed for this release. These checks do not certify all provider availability, narration pronunciations or asset rights.

License

Original code: Apache-2.0, copyright SceneWeaver contributors. External components and downloaded assets keep their own licenses and required attributions. SceneWeaver is not endorsed by its media or voice providers.

Available Tools

12 tools
cancel_videoB
Destructive

Cancel this job and terminate its render process tree.

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds genuinely useful context beyond that — it terminates a process tree, implying in-flight render work is killed rather than just flagged. However, it omits irreversibility, idempotency, and what happens to any partial output or artifacts already produced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence with the effect front-loaded and no filler. It is perhaps too brief for a destructive operation, but nothing in it is wasted or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. Still, for a destructive, non-open-world tool with one undocumented parameter, the description should at least connect job_id to its source and indicate whether cancellation is safe to retry or valid on already-finished jobs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter has 0% schema description coverage, so the description bears the full burden — but it says nothing about job_id. It doesn't indicate whether this is the id returned from generate_video, a storyboard id, or a status-polling key, which is exactly the ambiguity an agent would hit here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Cancel') and a specific resource ('this job'), with an additional concrete effect ('terminate its render process tree'). It is clearly distinguishable from siblings like generate_video or get_video_status, though it doesn't explicitly name the job type (video render job) that ties it to generate_video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use it: nothing says it applies only to queued/running jobs, nothing about checking get_video_status first, and nothing about whether it is intended for stuck or misconfigured renders. The agent must infer the usage context from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_storyboardA

Plan explicit scenes: text, query, optional asset_id and optional duration_seconds.

The assistant writes the scenes; no model API is called. Set every scene duration or let the planner divide the total by word count. Branding supports title, footer, color and a managed logo_asset_id. Shorten text if narration cannot fit naturally; speech is never silently cut.

NameRequiredDescriptionDefault
musicNoambient
voiceNoaf_heart
aspectNo9:16
scenesYes
brandingNo
music_volumeNo
caption_styleNophrase
duration_secondsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and openWorldHint=false, so the mutation profile is known; the description adds real value by stating no model API is invoked (assistant-authored content), how durations are auto-derived from word count, and the safety rule that narration is shortened rather than silently cut. It does not say whether the plan is persisted or returned, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four front-loaded sentences that each contribute something: the scene shape first, then the no-API behavior, then the duration rule, then branding and text-fitting constraints. Dense but without filler; minor compactness loss from splitting the duration and branding rules into separate lines.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, lowering the burden, and the description handles the trickiest part (untyped scene objects and duration derivation). Still, for an 8-parameter creation tool with zero schema descriptions, leaving the audio/visual parameters (voice, aspect, music, caption_style, music_volume) unexplained and omitting any mention of preview/generate sequencing leaves clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% across 8 parameters, so the description must carry the load. It documents the nested scene fields (text, query, asset_id, duration_seconds), branding keys (title, footer, color, logo_asset_id) and the total duration_seconds semantics, which is valuable given the untyped scene items. However, music, voice, aspect, music_volume and caption_style receive no mention at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Plan explicit scenes') and enumerates the scene fields (text, query, asset_id, duration_seconds), so the agent knows this builds a storyboard plan rather than rendering or fetching one. It never names siblings like generate_video or preview_storyboard, so differentiation is only implicit from the word 'plan'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The line 'The assistant writes the scenes; no model API is called' clarifies the mode of operation but not when to choose this over preview_storyboard or generate_video. The duration rule ('Set every scene duration or let the planner divide the total by word count') is a useful usage instruction, but there are no explicit exclusions or sequencing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_videoA

Start an exact-duration render of the selected storyboard; poll get_video_status.

NameRequiredDescriptionDefault
allow_networkNo
storyboard_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and openWorldHint=true; the description adds genuine value by revealing this is an asynchronous job that must be polled rather than a synchronous return. However it says nothing about what allow_network actually permits, whether the render consumes credits/time, or what happens on failure – notable gaps for an open-world mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact clause pair with the action front-loaded and the follow-up step appended; nothing is wasted. It is arguably too terse for a tool with two undocumented parameters, but that is a completeness issue rather than verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the async polling instruction covers the main workflow need. The unexplained allow_network flag and absent preconditions leave real gaps for a job-starting mutation tool with open-world access.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries full burden, yet it only vaguely gestures at storyboard_id via 'the selected storyboard' and never explains allow_network at all – the single most non-obvious parameter given openWorldHint=true. Format and expected value of storyboard_id are also unstated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Start an exact-duration render of the selected storyboard') and explicitly names the sibling to poll (get_video_status), separating it from preview_storyboard, cancel_video and get_video_results in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly implies the call is the kickoff step of an async flow and names the follow-up tool (get_video_status). It does not state prerequisites (e.g., that a storyboard must first be created and its scenes selected) or when to prefer preview_storyboard instead, so no explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_capabilitiesA
Read-only

Report installed voices, provider options, limits and privacy boundaries.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and locality are covered. The mention of 'limits and privacy boundaries' signals that returned content carries constraints and data-handling rules, which is useful extra context, but the description does not say the call is side-effect free, cheap, or cacheable, and the output schema carries the rest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. Every noun in the enumeration maps to a distinct category of returned information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, a read-only annotation, and a full output schema describing the return shape, the description needs only to establish scope, which it does. The one missing piece is sequencing guidance — telling the agent to consult this before invoking voice or provider-dependent tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. Schema coverage is nominal since the arguments object is empty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Report') and enumerates the resource contents: installed voices, provider options, limits, and privacy boundaries. This is clearly distinct from the media/video siblings, none of which describe capability introspection, though the phrasing is a field list rather than a single crisp purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use guidance is given, and no sibling is named. The agent must infer that this is a discovery call to make before choosing voices in preview_voice or options in generate_video — that inference is reasonable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_storyboardC
Read-only

Read a saved plan and its scene-to-media choices.

NameRequiredDescriptionDefault
storyboard_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds only that the returned plan carries scene-to-media assignments, which is mild but real context; nothing about resolution failures or what 'saved' implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. It is short for good and bad reasons — no waste, but also no elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-shape detail is unnecessary, and annotations cover safety. Still missing is any guidance on the id parameter's provenance and how this differs from the preview sibling, leaving the agent with an incomplete decision picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the sole parameter storyboard_id is never mentioned in the description. The name is self-explanatory, but there is no compensation for the missing schema documentation (e.g. that it must reference an existing saved storyboard).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'read' plus 'saved plan and its scene-to-media choices' conveys retrieval of a persisted storyboard, but it never uses the word 'storyboard' and gives no basis for distinguishing it from siblings like preview_storyboard or get_video_results. Purpose is inferable, not precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus preview_storyboard (preview) or search_media (find media). The agent must guess that this is the lookup-by-id path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_video_resultsB
Read-only

Retrieve the MP4, SHA-256, credits, quality report and measured duration.

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint/openWorldHint annotations already establish this as a safe, local read, so the description only needs to add context. It adds the fact that results are packaged artifacts, but says nothing about what happens if the job is incomplete, queued, failed, or nonexistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is efficient, though the space saved is spent on enumerating return fields rather than on the information that is actually missing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so listing MP4/SHA-256/credits/duration is largely redundant, while the real gaps — job lifecycle prerequisites and job_id provenance — go unaddressed. Adequate to invoke, but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single job_id parameter, and the description does not compensate at all — it never mentions job_id, where it comes from, or its expected format. The parameter is therefore undocumented in both schema and prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb ('Retrieve') tied to the video-result resource and enumerates what comes back (MP4, SHA-256, credits, quality report, duration). It is understandable on its own, but it never contrasts itself with the close sibling get_video_status, which an agent could easily confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus get_video_status, nor any precondition such as the job having finished rendering. The agent gets no signal that job_id must refer to a previously submitted generate_video job.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_video_statusD
Read-only

Read progress and a bounded actionable failure message.

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and locality are covered. The only added signal is that failures surface as a "bounded actionable failure message", which is vague - it does not say what a bounded message means, whether it is retryable, or what terminal states exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is terse to the point of being under-specified rather than concise - a fragment with no subject, no verb mapping to the tool, and nothing front-loaded about the resource being queried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-shape details are not required, but for a single-param polling tool the description should still identify the resource, the meaning of job_id, and the polling context. None of that is present, so the definition is not sufficient on its own.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single parameter job_id is completely undocumented in both schema and description. A caller gets no hint that job_id is the identifier returned by generate_video or that it must be a resolved job.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a sentence fragment that never names the resource: "Read progress" of what is left implicit, relying entirely on the tool name. Against siblings like get_video_results and get_storyboard, it gives no basis for telling a status/progress poll apart from a results fetch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus get_video_results, get_storyboard, or cancel_video, and no mention of polling after generate_video. The agent must infer the entire workflow from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_mediaB

Import only a filename staged by the operator in the managed inbox, with rights metadata.

NameRequiredDescriptionDefault
titleYes
creatorNo
filenameYes
license_nameNoUser supplied

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose that this is a mutation (readOnlyHint=false) in a closed-world setting. The description adds the staging precondition and mentions rights metadata, but it does not explain side effects, permissions, or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted wording. The key constraint appears immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter mutation tool with no schema descriptions, the definition is too sparse. It covers the filename precondition and hints at rights metadata, but does not explain required title, creator, or license_name semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It mentions filename and rights metadata, but leaves title, creator, and license_name unclear, including the license default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: importing a media filename from the operator's managed inbox. The description is clear but does not differentiate this tool from siblings such as search_media, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when to use it: only with a filename already staged by the operator in the managed inbox. It does not name alternatives or explicit when-not cases, which keeps it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_storyboardB

Return a contact sheet inline and its scene timeline for semantic review.

NameRequiredDescriptionDefault
allow_networkNo
storyboard_idYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=false and openWorldHint=true, so the description does not need to restate safety. It adds that the result is an inline contact sheet plus scene timeline, but it does not explain side effects, why it is not read-only, or how network access affects behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single front-loaded sentence with no filler; the purpose and return content appear immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should explain the return shape more fully, and with openWorldHint=true plus an allow_network parameter it should clarify network implications. It names the returned artifacts but leaves key invocation-relevant behavior undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it never mentions storyboard_id or allow_network. 'Its scene timeline' only weakly implies a storyboard target, and allow_network is entirely unaddressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Return') and concrete outputs ('contact sheet inline and its scene timeline'), making the preview purpose clear. It is distinguishable from get_storyboard by its semantic-review framing, though it does not explicitly name a sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'For semantic review' implies the usage context, but there is no explicit guidance on when to use this versus get_storyboard, preview_voice, or generate_video, and no when-not conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_voiceB

Create a short local WAV preview before choosing a narrator. No text leaves the computer.

NameRequiredDescriptionDefault
textNoHere is a short sample of this narrator.
speedNo
voiceNoaf_heart

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and openWorldHint=false, and 'Create a ... WAV' is consistent with a write. The 'No text leaves the computer' line usefully reinforces the closed-world/privacy profile, but nothing is said about where the file is written, whether it is overwritten or cleaned up, or cost/latency of synthesis.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler, and the action plus its privacy guarantee are front-loaded. Nothing needs to be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and defaults make the tool callable with no arguments. However, with 0% parameter coverage the agent gets no help on the text/speed/voice inputs or on what to do with the resulting WAV file, leaving a real gap for a synthesis tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for three parameters, and the description never mentions text, speed, or voice. Only the word 'narrator' loosely hints at the voice parameter, and the non-obvious default ('af_heart') and speed units are left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Create a short local WAV preview,' scoped to narrator selection. An agent can tell it produces an audio preview rather than a storyboard preview, but the description never names or contrasts a sibling (e.g. preview_storyboard) explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'before choosing a narrator' gives a timing cue for use, but there is no guidance on prerequisites, when not to use it, or which tool actually performs the narrator selection. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_mediaC

Find licensed candidates; consult source pages and notices before selecting them.

NameRequiredDescriptionDefault
kindNomixed
queryYes
providersNo
allow_networkNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations give openWorldHint=true and readOnlyHint=false, but the description adds little beyond hinting that results carry source pages and license notices. Critically, it never explains that network access is disabled by default (allow_network=false), so an agent cannot predict what happens on a default call. The "find" framing also sits awkwardly against readOnlyHint=false without clarification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with no filler, but this is under-specification rather than concision — it omits nearly everything an agent needs. Length is fine; content density is not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-shape explanation is not required. However, for a 4-parameter, open-world search tool with 0% schema coverage and a default-off network flag, the description leaves the agent unable to construct a correct call or anticipate failure modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across four parameters, and the description compensates for none of them: query semantics, the mixed/image/video kind enum, the providers allowlist, and the allow_network flag are all undocumented. The most consequential parameter, allow_network (default false), is invisible in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Find licensed candidates" gives a verb but the resource is only inferable from the tool name; the description never says it searches images/videos across providers, nor that it returns license-annotated results. It is distinguishable from write-side siblings like import_media or generate_video, but only by implication.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only workflow guidance is "consult source pages and notices before selecting them," which points vaguely at select_scene_asset without naming it. There is no statement of when to use this versus import_media, and no mention that allow_network defaults to false, which materially changes when the tool is usable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_scene_assetA

Replace one scene's media choice without regenerating its script or other choices.

NameRequiredDescriptionDefault
asset_idYes
scene_idYes
storyboard_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context by explaining the non-side-effect behavior of the mutation (not regenerating scripts or other choices), which is a high-value detail beyond what the annotations or schema convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a highly efficient single sentence that packs the action, target, and behavioral constraints into one concise statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For this mutation tool, it is extremely complete. It explicitly addresses the scope of change and lack of downstream cascading effects, which is exactly the context an agent needs to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must carry the semantic weight. It establishes that the inputs relate to 'scene' and 'media choice,' providing necessary conceptual meaning for the required IDs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Replace') and the resource ('scene's media choice'), providing a distinct purpose that differentiates it from sibling tools like search_media or generate_video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a critical constraint for usage: the replacement is performed 'without regenerating its script or other choices.' This clearly defines the boundaries of the tool's functionality.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv0.1.2
    • First observedcancel_video
    • First observedcreate_storyboard
    • First observedgenerate_video
    • First observedget_capabilities
    • First observedget_storyboard
    • First observedget_video_results
    • First observedget_video_status
    • First observedimport_media
    • First observedpreview_storyboard
    • First observedpreview_voice
    • First observedsearch_media
    • First observedselect_scene_asset

TDQS

B3.2/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target clearly distinct actions in the media-to-video pipeline, such as search vs. import and generate vs. status/results/cancel. There is some potential overlap between get_storyboard and preview_storyboard, and between media search/import/select, but the descriptions make the boundaries reasonably clear.

Naming Consistency5/5

All tool names use consistent snake_case with a predictable verb_noun structure. Related lifecycle operations are grouped coherently, such as get_video_status, get_video_results, and cancel_video.

Tool Count5/5

The 12 tools are well-scoped for a storyboard-to-video workflow, covering media sourcing, planning, preview, generation, monitoring, results, cancellation, and capabilities. Each tool appears to earn its place without excessive surface area.

Completeness4/5

The core workflow is covered end to end, including media intake, storyboard creation and preview, asset selection, rendering, status polling, results, and cancellation. Minor gaps exist around editing or deleting storyboards beyond media selection, and there is no listing of prior jobs or imported media.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers