Skip to main content
Glama

Narracore Screenplay Formatter

Free prompt quality gates

check_video_prompts
Read-onlyIdempotent

FREE deterministic quality gates for video-generation prompts written against a screenplay (no LLM on the server — pattern matching and set comparison only; findings are reported, nothing is blocked). Submit the SAME screenplay plus up to 10 finished prompt texts (≤20k chars each). VIOLATIONS (objective locks): DIALOGUE_DRIFT — a DIALOGUE line attributed to a registered screenplay character whose text is not found verbatim (whitespace/punctuation-insensitive), i.e. rewritten, trimmed or hallucinated dialogue; STRUCTURE_MISSING_CUTOUT / _CUTIN / HANDOFF_MISMATCH — scaffold-format prompts ([SHOT n] markers) must carry CUT-OUT last-frame and CUT-IN first-frame states with the next shot repeating the previous verbatim; STRUCTURE_DUPLICATES_SHARED — a SHARED line restated inside a shot block (shot blocks carry only private fields). ADVISORIES (disable with advisories=false): BARE_EYELINE ("looks at X" with no screen-space direction), LITERARY_RHETORIC (metaphors a renderer cannot draw), EMPTY_NEGATIVE ("no weirdness"-style), CONFLICT_PAIRS (locked vs handheld, single-shot vs hard cuts, on-twos vs smooth), PLACEHOLDER_LEFT, CHAR_LIMIT (yours, or the style preset's recommended one), STYLE_CONSISTENCY (banned vocabulary of your chosen preset, or two medium families mixed). Free-form prompts without [SHOT] markers skip structure gates (reported honestly). Free — no key needed, works without one. 免费确定性质量门:台词逐字锁、结构切点两态锁(violation)+ 视线/修辞/冲突/风格自洽启发(advisory),只报告不拦截。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textNoThe screenplay the prompts were written from (required when input_format="text")
styleNoThe style preset you built with (enables its banned-vocabulary and recommended-limit advisories)
blocksNoTyped blocks (the screenplay the prompts were written from)
promptsYesThe finished prompt(s) (from build_video_prompts scaffolds or free-form)
advisoriesNoRun advisory gates too (default true; false = violations only)
char_limitNoOptional character limit per prompt (advisory; default: the style preset recommendation, or none)
request_idNoEchoed back for tracing (this tool is free — no idempotency semantics needed)
input_formatNotext (default): line-based screenplay text. blocks: typed blocks (e.g. from format_screenplay).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
toolNo
stateNo
styleNo
reasonNo
totalsNo
messageNo
promptsNo
recoveryNo
conflictsNo
advisoriesNo
request_idNo
screenplayNo
diagnosticsNo
gates_versionNo
contract_versionNo
style_template_versionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "advisories": {
      +      "type": "boolean"
      +    },
      +    "conflicts": {},
      +    "contract_version": {
      +      "type": "string"
      +    },
      +    "diagnostics": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "block_id": {
      +            "type": "string"
      +          },
      +          "code": {
      +            "type": "string"
      +          },
      +          "line": {
      +            "type": "number"
      +          },
      +          "message": {
      +            "type": "string"
      +          },
      +          "severity": {
      +            "type": "string"
      +          },
      +          "suggested_action": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "severity",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "gates_version": {
      +      "type": "string"
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "ok": {
      +      "type": "boolean"
      +    },
      +    "prompts": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "recovery": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "action": {
      +          "type": "string"
      +        },
      +        "field_path": {
      +          "type": "string"
      +        },
      +        "keep_request_id": {
      +          "type": "boolean"
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "resets_at_utc": {
      +          "type": "string"
      +        },
      +        "retry_after_ms": {
      +          "type": "number"
      +        },
      +        "retryable": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "action",
      +        "retryable",
      +        "keep_request_id"
      +      ],
      +      "type": "object"
      +    },
      +    "request_id": {
      +      "type": "string"
      +    },
      +    "screenplay": {},
      +    "state": {},
      +    "style": {},
      +    "style_template_version": {
      +      "type": "string"
      +    },
      +    "tool": {
      +      "const": "check_video_prompts",
      +      "type": "string"
      +    },
      +    "totals": {}
      +  },
      +  "required": [
      +    "ok"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / blocks / items / properties / text / maxLength
      Added value: +200000
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds substantial context: no LLM on the server, pattern-matching only, findings reported and nothing blocked, free with no key required. It also enumerates every violation and advisory category with their triggering conditions, which is far beyond annotation coverage.

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 key framing (free, deterministic, report-only) and the gate taxonomy is dense but each item is specific and useful. It is long and the trailing Chinese sentence duplicates the English summary, which is minor waste rather than a structural flaw.

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 an 8-parameter tool with a rich output schema, the description covers the gate semantics, scope limits (up to 10 prompts, ≤20k chars each), advisory opt-out, and free-form vs scaffold behavior. Nothing an agent needs to call it correctly is missing.

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?

Schema description coverage is 100%, so the baseline is 3, but the description adds real meaning: it clarifies that prompts are finished texts of ≤20k chars, that style presets drive banned-vocabulary and recommended-limit advisories, and that char_limit defaults to the preset recommendation. It does not add much on input_format or request_id beyond the schema.

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: deterministic quality gates for video-generation prompts written against a screenplay, and explicitly contrasts with the sibling that builds prompts (build_video_prompts scaffolds). An agent can distinguish this as the check/validate step versus the generate step without opening the schema.

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 invocation context: submit the SAME screenplay plus up to 10 finished prompt texts, advisories can be disabled, and free-form prompts without [SHOT] markers skip structure gates. It does not explicitly name alternatives or when-not-to-use conditions, so it stops short of a 5.

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.