Skip to main content
Glama

Preview ideas and post drafts

preview_content_bundle
Read-onlyIdempotent

Validates a complete bundle of new Ideas, post drafts, and supported links without saving the content objects. When a stage override is saved, each generated Idea thesis must exactly match its selected idea_generation output, and each post sharedText and platform variant must exactly match a writing output from the selected stage model. authoringMode=user_provided is valid only for exact text supplied by the user; an approved Google-source turn uses current_turn_model and cannot claim a stage model. Media/source relationships keep their existing checks.

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": {
      "operation": "<operation>"
    },
    "name": "preview_content_bundle"
  }
}

Input Schema

NameRequiredDescriptionDefault
operationYes
authoringModeNostage_model
attachedIdeaIdNo
idempotencyKeyNo

Output Schema

NameRequiredDescriptionDefault
proposalYes
entityReferencesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / operation / properties / posts / items / properties / sourceCaptureIds
      Added value: +{
      +  "items": {
      +    "format": "uuid",
      +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +    "type": "string"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • addedInput schema / properties / operation / properties / posts / items / properties / sourceEvidence
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "chunkId": {
      +        "maxLength": 512,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "sourceAssetId": {
      +        "pattern": "^[a-f0-9]{64}$",
      +        "type": "string"
      +      },
      +      "sourceRevision": {
      +        "maxLength": 1024,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "sourceAssetId",
      +      "sourceRevision",
      +      "chunkId"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 12,
      +  "type": "array"
      +}
    • addedOutput schema / properties / proposal / properties / posts / items / properties / sourceCaptureIds
      Added value: +{
      +  "items": {
      +    "format": "uuid",
      +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +    "type": "string"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • addedOutput schema / properties / proposal / properties / posts / items / properties / sourceEvidence
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "chunkId": {
      +        "maxLength": 512,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "sourceAssetId": {
      +        "pattern": "^[a-f0-9]{64}$",
      +        "type": "string"
      +      },
      +      "sourceRevision": {
      +        "maxLength": 1024,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "sourceAssetId",
      +      "sourceRevision",
      +      "chunkId"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 12,
      +  "type": "array"
      +}
    • addedOutput schema / properties / proposal / properties / posts / items / properties / verifiedSourceCaptureReceipt
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "captureIds": {
      +      "items": {
      +        "format": "uuid",
      +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +        "type": "string"
      +      },
      +      "maxItems": 20,
      +      "type": "array"
      +    },
      +    "postKey": {
      +      "maxLength": 100,
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "postKey",
      +    "captureIds"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: it discloses the cross-field invariants enforced (idea thesis must match the selected idea_generation output, post sharedText and variants must match a writing output from the stage model) and the authoringMode constraints. It does not say what a failed validation returns, but an output schema exists, so that omission is tolerable.

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 purpose is front-loaded in the first sentence and each subsequent sentence carries a distinct rule rather than restating the schema. The prose is dense and domain-jargon-heavy ('stage override', 'idea_generation output'), but no sentence is padding.

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 tool with a very large nested schema, the description covers the hardest part — the cross-object validation invariants that the schema cannot express — and an output schema covers return values. However, it leaves idempotencyKey and attachedIdeaId undefined and gives no hint about how validation failures surface, so an agent can call it but not fully predict its behavior.

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 0%, so the description must carry parameter meaning. It meaningfully explains the 'operation' payload (ideas, posts, supported links, media/source relationships) and the semantics of authoringMode values (user_provided vs current_turn_model, and the implicit stage_model case). It says nothing about attachedIdeaId or idempotencyKey, leaving two of four top-level parameters undocumented anywhere.

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?

The first sentence gives a specific verb and resource: it 'Validates a complete bundle of new Ideas, post drafts, and supported links without saving the content objects.' That distinguishes it from a save/commit tool and implies a dry-run, but it never names a sibling (e.g. preview_content_variant_edit or preview_idea_edit) to explain the scope difference, so the agent must infer the boundary from the name alone.

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?

Usage is only implied: 'without saving the content objects' suggests it is the pre-commit check before a write. There is no explicit statement of when to choose this over the narrower preview_* siblings, nor any prerequisite or sequencing guidance. The conditional rules that are present concern authoringMode validity, not tool selection.

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