Skip to main content
Glama

Preview your draft

preview_draft
Read-onlyIdempotent

Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). Interactive: show one of your drafts here. Call it whenever the engineer asks to show, see or open the preview, to show it here, or what the draft looks like (for example: "show me the preview", "show it here", "can I see the draft", "open the preview", "what does it look like"). A read: the draft as techfabric.com renders it, with its last checks (each marked as one the engineer may publish past or one that must pass) and whether Publish may run, rendered inline as the draft app where the host shows MCP Apps. In any host its text starts with the preview link: show it to the engineer. Never fetch the preview link yourself or rebuild the page as an artifact or HTML: this is the preview.

Input Schema

NameRequiredDescriptionDefault
idYesThe idea id
editingNoThe draft app only, never an agent: true while the engineer has unsaved edits in its Edit tab (takes or renews the app's edit hold), false when they save, discard or leave it (lets go). It changes no text; with it the answer is the hold, not the preview
instanceNoThe draft app only: its view's own id, with editing
wait_secondsNoWhile the preview builds: how long to wait for it before answering (default 0, most 25)

Output Schema

NameRequiredDescriptionDefault
idYes
whyNoWith editing: why the hold was not taken
heldNoWith editing: whether the app holds the draft for the engineer's edit
kindNo
stateNo
stepsNoWhere the draft is, step by step (the same steps the progress notifications name): done, active (under way now), pending or failed
titleNo
checksNoThe last check run on the draft, each item marked as one the engineer may publish past or one that must pass; null before any
cockpitNoThe writing cockpit: one status, one next step, the to-do cards and any open redline
editingNoWith editing (the draft app's hold): whether an edit is under way
meaningNo
publishNoWhether Publish may run now, and why not
progressNoApproved, merged, deployed (this version's deploy serves it), live_url (where it is or will be live: link it only once deployed), expected_at (when a deploy under way should land) and indexed, once it is on its way
preview_urlNoThe draft's preview (the live page once published): show it to the engineer
preview_sourceNoWhich page the app shows: the published page, the draft's own preview, the live post standing in for a revision's, or none yet
preview_currentNoFalse while a save is still being committed or its preview rebuilt

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / progress / description
      Previous value: -"Approved, merged, deployed, live_url and indexed, once it is on its way"New value: +"Approved, merged, deployed (this version's deploy serves it), live_url (where it is or will be live: link it only once deployed), expected_at (when a deploy under way should land) and indexed, once it is on its way"
  2. Changed2 schema fields changed
    • addedInput schema / properties / wait_seconds
      Added value: +{
      +  "description": "While the preview builds: how long to wait for it before answering (default 0, most 25)",
      +  "maximum": 25,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / steps
      Added value: +{
      +  "description": "Where the draft is, step by step (the same steps the progress notifications name): done, active (under way now), pending or failed",
      +  "items": {
      +    "properties": {
      +      "id": {
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "state": {
      +        "enum": [
      +          "done",
      +          "active",
      +          "pending",
      +          "failed"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "label",
      +      "state"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "properties": {
      +    "checks": {
      +      "description": "The last check run on the draft, each item marked as one the engineer may publish past or one that must pass; null before any",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "cockpit": {
      +      "description": "The writing cockpit: one status, one next step, the to-do cards and any open redline",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "editing": {
      +      "description": "With editing (the draft app's hold): whether an edit is under way",
      +      "type": "boolean"
      +    },
      +    "held": {
      +      "description": "With editing: whether the app holds the draft for the engineer's edit",
      +      "type": "boolean"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "kind": {
      +      "enum": [
      +        "post",
      +        "case-study"
      +      ],
      +      "type": "string"
      +    },
      +    "meaning": {
      +      "type": "string"
      +    },
      +    "preview_current": {
      +      "description": "False while a save is still being committed or its preview rebuilt",
      +      "type": "boolean"
      +    },
      +    "preview_source": {
      +      "description": "Which page the app shows: the published page, the draft's own preview, the live post standing in for a revision's, or none yet",
      +      "enum": [
      +        "published",
      +        "own",
      +        "live",
      +        null
      +      ],
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "preview_url": {
      +      "description": "The draft's preview (the live page once published): show it to the engineer",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "progress": {
      +      "description": "Approved, merged, deployed, live_url and indexed, once it is on its way",
      +      "type": "object"
      +    },
      +    "publish": {
      +      "description": "Whether Publish may run now, and why not",
      +      "type": "object"
      +    },
      +    "state": {
      +      "type": "string"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "why": {
      +      "description": "With editing: why the hold was not taken",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id"
      +  ],
      +  "type": "object"
      +}
  4. Changed2 schema fields changed
    • addedInput schema / properties / editing
      Added value: +{
      +  "description": "The draft app only, never an agent: true while the engineer has unsaved edits in its Edit tab (takes or renews the app's edit hold), false when they save, discard or leave it (lets go). It changes no text; with it the answer is the hold, not the preview",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / instance
      Added value: +{
      +  "description": "The draft app only: its view's own id, with editing",
      +  "type": "string"
      +}
  5. Added

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it names the required auth (Microsoft sign-in, scope blog.write), describes the inline MCP Apps rendering vs. other hosts, says the text begins with the preview link, and notes waiting behavior while the preview builds.

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 auth requirement and the read-only nature before the trigger phrases, and every sentence is functional. The quoted phrase list and the closing 'this is the preview' clause are somewhat repetitive, costing a point.

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?

An output schema exists and annotations declare the safety profile, so the description's job is auth, rendering context, and invocation triggers — all of which are covered. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the property descriptions for id, editing, instance and wait_seconds are already highly detailed. The description adds essentially no parameter-level information beyond a passing 'while the preview builds' hint, so the schema does all the work.

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 and resource ('show one of your drafts') and pins down exactly what comes back: the draft as techfabric.com renders it, with its last checks and whether Publish may run. This distinguishes it cleanly from check_draft, lint_draft, open_editor and publish_draft.

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 a clear trigger list with literal engineer phrases ('show me the preview', 'open the preview', 'what does it look like') plus an explicit exclusion: never fetch the preview link yourself or rebuild the page as an artifact/HTML. It falls short of 5 only because it never names a sibling tool as the alternative for adjacent needs.

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.