Skip to main content
Glama

Generate a draft script

generate_script

Draft a script from a plain-language goal. Spends the community's AI credits (every model call, repairs included), and returns blocks WITHOUT creating a project — pass them to create_project (script.blocks, plus scoring_enabled: true when the draft's scoring.enabled) or replace_script. Show the person author_notes before the project opens: it lists what the model was unsure of. Put anything current (dates, line-ups, odds) in facts; the model's knowledge has a cutoff.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
planNo
typeNo
factsNo
intentYes
answersNo
qualityNo
languageNo
session_idNo
admin_languageNo
question_countNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / admin_language
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Admin Language"
      +}
  2. Changed10 schema fields changed
    • addedInput schema / properties / answers
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Answers"
      +}
    • addedInput schema / properties / facts
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Facts"
      +}
    • addedInput schema / properties / language
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Language"
      +}
    • removedInput schema / properties / locale
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Locale"
      -}
    • removedInput schema / properties / max_blocks
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Max Blocks"
      -}
    • addedInput schema / properties / plan
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Plan"
      +}
    • addedInput schema / properties / quality
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "quick",
      +        "deep"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Quality"
      +}
    • addedInput schema / properties / question_count
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Question Count"
      +}
    • addedInput schema / properties / session_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Session Id"
      +}
    • addedInput schema / properties / type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "convo",
      +        "poll"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Type"
      +}
  3. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Goes well past the annotations by disclosing real cost behavior ('spends the community's AI credits, every model call, repairs included'), the non-persistent return contract, the mapping to `scoring_enabled`, and a caveat that model knowledge has a cutoff. The annotations only say it is a non-idempotent, non-destructive write; the description adds the spend, the chaining contract, and the author_notes warning.

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-loaded with the core action, then compact, information-dense clauses about cost, return shape and chaining; nearly every sentence earns its place. It reads slightly cramped, packing four distinct directives into one paragraph without separators, which costs a little scannability.

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?

For a 10-parameter, no-output-schema tool the description covers the workflow essentials (what comes back, where it goes next, the credit cost), but leaves the majority of the input surface undocumented. An agent knows what the tool does and does not do, yet would be guessing on quality, type and question_count.

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% across 10 parameters, and the description only adds meaning for two of them: `intent` (implied by 'plain-language goal') and `facts` ('put anything current... the model's knowledge has a cutoff'). Plan, type, quality, answers, question_count, language, session_id and admin_language — including two enums — are left entirely unexplained anywhere.

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 ('Draft a script from a plain-language goal') and immediately marks the boundary that separates it from create_project/replace_script: it returns blocks without creating a project. An agent can distinguish it from plan_script and validate_script from the description alone.

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?

Explicitly names the downstream tools (create_project, replace_script) and the payload to forward, plus a clear rule to surface author_notes to the person before opening a project. It does not, however, say when to choose generate_script over the sibling plan_script or when a draft should be validated first, so routing among the script tools is only partially resolved.

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.