Skip to main content
Glama

update editorial brief

update_editorial_brief
Idempotent

Operator only. Apply the editor’s explicit reply to a previously read brief. Requires its current revision and a stable unique requestId reused on retries. Select three IDs, choose a lead, change an angle, add a source-backed candidate, or hold/resume BEFORE the build deadline. add_candidate requires pitch with a unique ID, title, dated whyNow, discovery, listeningPayoff, source URLs and named mediaIdeas. It only adds an unverified proposal; use a separate select action for an explicitly requested swap after reading the new revision. Existing research and playback verification still apply. Requires an explicit editor instruction; locked editions cannot be changed. Does not modify saved stories.

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": {
      "date": "<date>",
      "revision": "<revision>",
      "requestId": "<requestId>",
      "change": "<change>"
    },
    "name": "update_editorial_brief"
  }
}

Input Schema

NameRequiredDescriptionDefault
dateYesPacific edition date YYYY-MM-DD. Brief defaults to tomorrow; status defaults to today.
changeYes
revisionYes
requestIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / change / properties / action / enum
      Previous value: -[
      -  "select",
      -  "lead",
      -  "angle",
      -  "hold",
      -  "resume"
      -]New value: +[
      +  "select",
      +  "lead",
      +  "angle",
      +  "add_candidate",
      +  "hold",
      +  "resume"
      +]
    • addedInput schema / properties / change / properties / pitch
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "discovery": {
      +      "maxLength": 900,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "id": {
      +      "maxLength": 100,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "listeningPayoff": {
      +      "maxLength": 900,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "mediaIdeas": {
      +      "items": {
      +        "maxLength": 240,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 8,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "mediaSequence": {
      +      "items": {
      +        "properties": {
      +          "artistOrCreator": {
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "type": "string"
      +          },
      +          "recordings": {
      +            "items": {
      +              "properties": {
      +                "album": {
      +                  "type": "string"
      +                },
      +                "artist": {
      +                  "type": "string"
      +                },
      +                "title": {
      +                  "type": "string"
      +                },
      +                "version": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "title",
      +                "artist"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 4,
      +            "type": "array"
      +          },
      +          "work": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "work",
      +          "artistOrCreator",
      +          "purpose"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 8,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "signalDate": {
      +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +      "type": "string"
      +    },
      +    "sources": {
      +      "items": {
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "maxItems": 6,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "title": {
      +      "maxLength": 160,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "verificationQuestions": {
      +      "items": {
      +        "maxLength": 400,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 4,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "whyNow": {
      +      "maxLength": 700,
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "title",
      +    "whyNow",
      +    "discovery",
      +    "listeningPayoff",
      +    "signalDate",
      +    "sources",
      +    "mediaIdeas"
      +  ],
      +  "type": "object"
      +}
  2. Added

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, it discloses important behavior: revision concurrency requirements, requestId reuse for retries, deadline constraints, locked-edition restrictions, and that add_candidate only adds an unverified proposal. It also clarifies scope by saying existing research and playback verification still apply and saved stories are not modified.

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?

The description is front-loaded with the operator-only scope and core action, and nearly every sentence adds operational detail. It is dense and longer than ideal, but the length is justified by the tool’s complex mutation semantics.

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 nested mutation with no output schema and low schema description coverage, the description covers the key usage, constraints, action types, and pitch requirements. It is not fully exhaustive on nested payload fields or expected response behavior, but it is complete enough to guide correct invocation.

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 only 25% schema description coverage, the description adds substantial meaning for revision, requestId, action values, and the pitch fields required by add_candidate. It still leaves some nested fields (such as signalDate, mediaSequence, verificationQuestions, and note) without semantic explanation, but covers the core parameters well.

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 uses a specific verb and resource: applying an editor’s explicit reply to a previously read brief. It also enumerates the concrete update operations (select IDs, choose lead, change angle, add candidate, hold/resume), which clearly distinguishes this mutation tool from read-only siblings like get_editorial_brief.

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 states clear preconditions: operator-only use, an explicit editor instruction, a current revision, and action before the build deadline. It also says locked editions cannot be changed and that add_candidate is not a swap, but it does not explicitly name sibling tools or a full when-not-to-use-this-tool alternative.

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