Skip to main content
Glama

submit_shader

Destructive

Read shader-gen Skill first. Submit a shader generation job to the backend. Returns a jobId immediately; the actual GLSL generation runs server-side. Use the track_progress tool with the returned jobId to wait on or inspect the job.

External MCP spend rule: this tool costs ChatCut credits and starts an async generation job. Only call it when the user's request or confirmation clearly covers this exact generation; do not silently create extra variants, longer durations, higher quality, or additional outputs.

This tool only submits — it does NOT apply the shader to any clip. Applying is a separate edit_item call that the agent does after the user explicitly asks.

See the shader-gen skill (loaded by Skill builtin) for full prompting / type-routing guidance.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "type": "<type>",
      "prompt": "<prompt>"
    },
    "name": "submit_shader"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoAsset name shown in the library. Defaults to a name derived from the prompt.
typeYesWhether the shader is a per-clip effect (color, blur, mask, LUT-style grade, distortion) or a between-clip transition (crossfade, wipe, slide, 3D cube). See the shader-gen skill for the full routing table.
promptYesNatural-language description of the shader. Restate the user's intent in one concrete sentence — e.g. "Chromatic aberration with RGB split", "Cinematic teal-orange color grade", "Smooth crossfade with soft edge".
projectIdNoFull project UUID. Required for external browser work; internal agents may omit. Execution/explicit-timeline calls never change later calls' target.
timelineIdNoFull timeline UUID, not a prefix. Required for browser work, even unplaced assets. Get it from read_project or manage_timelines action="list". Never switches visible timeline.
idempotencyKeyNoStable key for this browser execution. Reuse only with identical scope and parameters after a lost acknowledgement; applies only to this call.
browserProfileIdNoOptional browser profile override. Omit to select automatically; do not ask the user to choose.
referenceAssetIdsNoProject asset ids the generator should learn from. Image asset id → model LOOKS AT it as visual inspiration (e.g. a still to match for a LUT, a screenshot to mimic for a glitch effect). Effect or transition asset id → backend fetches its code and reuses its style. At most one effect/transition reference per submit, and its kind must match `type`. Pass full UUIDs or short id prefixes.
chatcutSpecialEffectUsedNoOptional Web-only media-analysis declarations. Omit for ordinary MG/effect/caption work and preserve existing values on unrelated revisions. Transitions and Desktop do not support these readers. caption_v1 is private to caption-owned code.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Goes well beyond annotations by disclosing credit spend, the async job lifecycle, the returned jobId, and that submission does not apply the shader (a separate edit_item call is needed). It also flags that no extra variants should be silently created. It does not say whether a submitted job can be cancelled or what happens to orphaned submissions, but the annotation already carries the mutation/destructive profile.

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?

Front-loads the prerequisite ('Read shader-gen Skill first') and the core submission semantics before cost and scope caveats. Slightly repetitive in referring to the shader-gen skill twice, but every paragraph carries a distinct constraint.

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?

For a 9-parameter, cost-incurring async submission tool with no output schema, the description covers the lifecycle (submit → jobId → track_progress), the cost gate, and the non-application boundary. The only real gap is which sibling to use for direct code authoring, and it correctly defers deep parameter details to the schema and skill.

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 description coverage is 100%, including detailed text for referenceAssetIds and chatcutSpecialEffectUsed, so the schema does the heavy lifting and the 3 baseline applies. The description adds no parameter-level meaning beyond what the schema already documents.

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 ('Submit a shader generation job to the backend') and clarifies the async split: it returns a jobId while GLSL generation runs server-side. It also distinguishes itself from track_progress (waiting) and edit_item (applying). It does not distinguish itself from the close sibling create_shader_from_code, leaving one notable ambiguity for an agent choosing between them.

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 explicit when-to-use conditions ('only call when the user's request or confirmation clearly covers this exact generation') and when-not ('do not silently create extra variants, longer durations, higher quality'), plus the follow-up path via track_progress. Exclusions are clear, though it never names create_shader_from_code as the alternative for hand-written code.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.