Skip to main content
Glama

Edit Board Brief

mcp_edit_brief

Edit the Shoot Board's brief by hand: add, remove or change looks, or run looks through another automation. Saves a new brief linked to the board and returns the board, the brief, its quote and the credit delta; dry_run only quotes.

Input Schema

NameRequiredDescriptionDefault
opsYes
dry_runNoQuote the edit and its credit delta; save nothing.
board_idYesThe open Shoot Board's board_id, from Open Shoot Board or your context.
brief_idYesThe board's brief (board.brief_id).
expected_brief_revisionYesThe board's brief_revision shown with the brief.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / $defs / BriefOutputSet / properties / upscale_factor / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "type": "integer"
      +  },
      +  {
      +    "exclusiveMinimum": 0,
      +    "type": "number"
      +  }
      +]
    • removedInput schema / $defs / BriefOutputSet / properties / upscale_factor / gt
      Removed value: -0
  2. Changed4 schema fields changed
    • changedInput schema / $defs / BriefOutputSet / description
      Previous value: -"Set this brief's output: a field left out is kept, null follows the board's default (the user's\npreferences) again. Every Shoot runs and is priced on it."New value: +"Set this brief's output: a field left out is kept, null follows the board's default (the user's\npreferences) again. Every step it is for (a Shoot, a Video, an Upscale) runs and is priced on it."
    • addedInput schema / $defs / BriefOutputSet / properties / duration
      Added value: +{
      +  "default": null,
      +  "description": "Video steps only: the clip's length in seconds, one of the video model's durations (a longer one costs more).",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / $defs / BriefOutputSet / properties / generate_audio
      Added value: +{
      +  "default": null,
      +  "description": "Video steps only: true for a clip with sound (only a video model that supports audio), false for a silent one.",
      +  "type": "boolean"
      +}
    • addedInput schema / $defs / BriefOutputSet / properties / upscale_factor
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "number"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Upscale steps only: e.g. 2, 4: one of the upscale model's upscale_factors.",
      +  "gt": 0
      +}
  3. Changed3 schema fields changed
    • addedInput schema / $defs / BriefOutputSet
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Set this brief's output: a field left out is kept, null follows the board's default (the user's\npreferences) again. Every Shoot runs and is priced on it.",
      +  "properties": {
      +    "aspect_ratio": {
      +      "default": null,
      +      "description": "e.g. \"3:4\", \"1:1\", \"9:16\": one of the shoot image model's aspect_ratios.",
      +      "pattern": "^\\d{1,2}(\\.\\d{1,2})?:\\d{1,2}(\\.\\d{1,2})?$",
      +      "type": "string"
      +    },
      +    "op": {
      +      "const": "brief.output",
      +      "type": "string"
      +    },
      +    "resolution": {
      +      "default": null,
      +      "description": "e.g. \"1K\", \"2K\", \"4K\": one of the shoot image model's resolutions (a higher one costs more).",
      +      "pattern": "^\\d{1,2}(\\.\\d)?K$",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "op"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / ops / items / discriminator / mapping / brief.output
      Added value: +"#/$defs/BriefOutputSet"
    • changedInput schema / properties / ops / items / oneOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/LookAdd"
      -  },
      -  {
      -    "$ref": "#/$defs/LookRemove"
      -  },
      -  {
      -    "$ref": "#/$defs/LookSet"
      -  },
      -  {
      -    "$ref": "#/$defs/LookAssignRecipe"
      -  },
      -  {
      -    "$ref": "#/$defs/BriefDirectionSet"
      -  },
      -  {
      -    "$ref": "#/$defs/BriefModelsSet"
      -  },
      -  {
      -    "$ref": "#/$defs/BriefRefresh"
      -  },
      -  {
      -    "$ref": "#/$defs/BriefRestore"
      -  },
      -  {
      -    "$ref": "#/$defs/BriefDiscard"
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/$defs/LookAdd"
      +  },
      +  {
      +    "$ref": "#/$defs/LookRemove"
      +  },
      +  {
      +    "$ref": "#/$defs/LookSet"
      +  },
      +  {
      +    "$ref": "#/$defs/LookAssignRecipe"
      +  },
      +  {
      +    "$ref": "#/$defs/BriefDirectionSet"
      +  },
      +  {
      +    "$ref": "#/$defs/BriefModelsSet"
      +  },
      +  {
      +    "$ref": "#/$defs/BriefOutputSet"
      +  },
      +  {
      +    "$ref": "#/$defs/BriefRefresh"
      +  },
      +  {
      +    "$ref": "#/$defs/BriefRestore"
      +  },
      +  {
      +    "$ref": "#/$defs/BriefDiscard"
      +  }
      +]
  4. Changed1 schema field changed
    • changedInput schema / $defs / BriefDirectionSet / description
      Previous value: -"Set the shoot's Direction, the same for every look: the words every shot follows and/or an art\ndirection (the one left out: none; both left out: Uwear's default look). Never changes an\nautomation."New value: +"Set the shoot's Direction, the same for every look: the words every shot follows and/or an art\ndirection (the one left out: none; both left out: nothing directs the shoot and Generate waits for\none, ``slots.UNDIRECTED``). Never changes an automation."
  5. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, non-idempotent, closed-world, so the bar is lower; the description still adds real value by disclosing that the edit is saved as a NEW brief linked to the board (versioning, not in-place mutation) and that the response includes board, brief, quote and credit delta. It does not mention the expected_brief_revision concurrency guard, though the schema does.

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 sentences, no filler: the first names the action and the operation families, the second covers the save semantics, return payload and dry_run. Purpose is front-loaded ahead of behavioral detail.

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 complex multi-op mutation tool with no output schema, the description does state what is returned (board, brief, quote, credit delta) and that a new brief is saved. Remaining gaps are sibling routing guidance and the concurrency/idempotency contract, the latter of which the schema covers via expected_brief_revision.

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 80%, so the schema already documents board_id, brief_id, expected_brief_revision and dry_run. The description's op enumeration ('add, remove or change looks, or run looks through another automation') covers only a subset of the ten available ops (direction, models, output, refresh, restore, discard are unmentioned), so it neither adds nor fully compensates.

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 ('Edit the Shoot Board's brief') and enumerates the main operation families (add/remove/change looks, run looks through an automation). It does not distinguish this from close siblings like update_brief, propose_brief, or confirm_brief, so an agent cannot route purely from the description.

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?

'By hand' signals a manual-edit path and 'run looks through another automation' hints at the recipe workflow, plus 'dry_run only quotes' gives a preview usage pattern. But there is no explicit statement of when to choose this over update_brief or propose_brief, and no prerequisites or exclusions are given.

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.

Resources