Skip to main content
Glama

Postlyra.app — Telegram posts from AI chats

Preview a Postlyra post

preview_post
Idempotent

Use this when requesting a saved draft screenshot, public browser preview or validation warnings. Find draftId with search_post_drafts. Returns documentJson/richHtml, JPEG and enables a public preview link. Use show_post_card for an in-chat card. Follow display.instruction; check screenshot.truncated and retry unavailable screenshots without recreating the draft. May fetch external image URLs for screenshot rendering. Never publishes.

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": {
      "draftId": "<draftId>"
    },
    "name": "preview_post"
  }
}

Input Schema

NameRequiredDescriptionDefault
draftIdYesOwner-bound draftId from search_post_drafts/create_post_draft; same as postId.
channelIdNoPreview this owner-bound channel's auto-signature. Without a channel use the account default or post override.

Output Schema

NameRequiredDescriptionDefault
idNo
cardNoCard attachment/fallback. attachedToThisResult supplies the card: do not auto-call show_post_card. Rendering depends on host support.
textNo
titleNo
localeNo
postIdNo
statusNo
displayNo
draftIdYes
messageYes
revisionNo
richHtmlNo
warningsYes
channelIdNo
updatedAtNo
previewUrlNo
screenshotNo
validationYes
mediaStatusNoPresent only for images validated and durably imported in this call; excludes arbitrary external document media.
documentJsonNo
inlineButtonsNo
screenshotUrlNoJPEG screenshot of the saved Telegram preview; null if rendering is temporarily unavailable.
telegramElementsNo
signatureSnapshotNo
signatureSelectionNo
deliveryDocumentJsonNoComposed delivery with signature. Edit documentJson; never copy this composition into the post body.
deliveryInlineButtonsNo
formattingSuggestionsNoOptional formatting ideas. They do not affect validation, publication or user consent. The user's choice always takes priority.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • addedInput schema / properties / draftId / description
      Added value: +"Owner-bound draftId from search_post_drafts/create_post_draft; same as postId."
    • changedOutput schema / properties / card / description
      Previous value: -"Interactive card attachment and fallback instructions. attachedToThisResult means this response already supplies the card; do not automatically call show_post_card again. Host support determines actual rendering."New value: +"Card attachment/fallback. attachedToThisResult supplies the card: do not auto-call show_post_card. Rendering depends on host support."
    • changedOutput schema / properties / deliveryDocumentJson / description
      Previous value: -"Composed publication including the selected auto-signature. Edit documentJson, never copy this composition into the post body."New value: +"Composed delivery with signature. Edit documentJson; never copy this composition into the post body."
    • changedOutput schema / properties / display / properties / imageContentIndex / description
      Previous value: -"Index of the native image in this response's content array; null when unavailable."New value: +"Native image index in response content; null if unavailable."
    • changedOutput schema / properties / display / properties / imageMarkdown / description
      Previous value: -"Ready-to-use inline image Markdown for the final answer where the host permits remote images. Preserve the leading !."New value: +"Final-answer image Markdown where host allows remote images; keep leading !."
    • changedOutput schema / properties / display / properties / instruction / description
      Previous value: -"How to include the screenshot in the final user-facing answer; a tool-only image or ordinary link is insufficient."New value: +"Screenshot display instructions for the final answer; tool-only images/ordinary links are insufficient."
    • changedOutput schema / properties / display / properties / suggestedFileName / description
      Previous value: -"Filename suggestion for a host-supported attachment made from the returned bytes; not an existing local path."New value: +"Suggested attachment name for returned bytes; not an existing path."
    • changedOutput schema / properties / mediaStatus / description
      Previous value: -"Present only when image inputs were validated and imported into durable storage during this call. It does not describe arbitrary external document media."New value: +"Present only for images validated and durably imported in this call; excludes arbitrary external document media."
    • addedOutput schema / properties / signatureSelection / properties / mode / description
      Added value: +"inherit follows defaults (channel/post only); none disables the optional signature; custom requires signatureId."
    • addedOutput schema / properties / signatureSelection / properties / signatureId / description
      Added value: +"Owner-bound signatureId from list_signatures/create_signature."
  2. Changed1 schema field changed
    • changedOutput schema / properties / card / description
      Previous value: -"Interactive card availability and fallback instructions. Host UI support determines whether a card can render; preview links remain available."New value: +"Interactive card attachment and fallback instructions. attachedToThisResult means this response already supplies the card; do not automatically call show_post_card again. Host support determines actual rendering."
  3. Changed1 schema field changed
    • addedOutput schema / properties / formattingSuggestions
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional formatting ideas. They do not affect validation, publication or user consent. The user's choice always takes priority.",
      +  "properties": {
      +    "advisory": {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    "decisionOwner": {
      +      "const": "user",
      +      "type": "string"
      +    },
      +    "instruction": {
      +      "type": "string"
      +    },
      +    "items": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "blockPaths": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "maxItems": 5,
      +            "type": "array"
      +          },
      +          "code": {
      +            "type": "string"
      +          },
      +          "message": {
      +            "type": "string"
      +          },
      +          "recommendation": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message",
      +          "recommendation",
      +          "blockPaths"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 4,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "advisory",
      +    "decisionOwner",
      +    "instruction",
      +    "items"
      +  ],
      +  "type": "object"
      +}
  4. Changed4 schema fields changed
    • addedOutput schema / properties / card
      Added value: +{
      +  "description": "Interactive card availability and fallback instructions. Host UI support determines whether a card can render; preview links remain available.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / mediaStatus
      Added value: +{
      +  "description": "Present only when image inputs were validated and imported into durable storage during this call. It does not describe arbitrary external document media.",
      +  "enum": [
      +    "imported"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / postId
      Added value: +{
      +  "maxLength": 128,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / revision
      Added value: +{
      +  "minimum": 1,
      +  "type": "integer"
      +}
  5. Changed8 schema fields changed
    • addedInput schema / properties / channelId
      Added value: +{
      +  "description": "Preview this owner-bound channel's auto-signature. Without a channel use the account default or post override.",
      +  "maxLength": 128,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / channelId
      Added value: +{
      +  "maxLength": 128,
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / deliveryDocumentJson
      Added value: +{
      +  "description": "Composed publication including the selected auto-signature. Edit documentJson, never copy this composition into the post body.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / deliveryInlineButtons
      Added value: +{
      +  "items": {
      +    "anyOf": [
      +      {
      +        "type": "object"
      +      },
      +      {
      +        "items": {
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    ]
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / inlineButtons / items / anyOf
      Added value: +[
      +  {
      +    "type": "object"
      +  },
      +  {
      +    "items": {
      +      "type": "object"
      +    },
      +    "type": "array"
      +  }
      +]
    • removedOutput schema / properties / inlineButtons / items / type
      Removed value: -"object"
    • addedOutput schema / properties / signatureSelection
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "mode": {
      +      "enum": [
      +        "inherit",
      +        "none",
      +        "custom"
      +      ],
      +      "type": "string"
      +    },
      +    "signatureId": {
      +      "maxLength": 128,
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "mode"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / signatureSnapshot
      Added value: +{
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  6. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare readOnlyHint=false, openWorldHint=true and idempotentHint=true, but not why a preview is not read-only; the description resolves that by disclosing external image fetching for rendering and creation of a public preview link. It also states 'Never publishes', which reassures the agent this mutation-flagged call is non-destructive, plus retry and display.instruction handling.

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?

Front-loaded with the use case, then alternatives, then behavioral caveats, in tight sentences with no filler. The telegraphic fragments ('Follow display.instruction; check screenshot.truncated') are dense but each carries an actionable instruction.

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, yet the description still summarizes the return payload (documentJson/richHtml, JPEG) and how to handle truncated or unavailable screenshots. Combined with the external-fetch warning and the no-publish guarantee, an agent has everything needed to call and interpret it.

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%, so both draftId and channelId are already documented in the schema, including the signature fallback behavior. The description only reinforces draftId's provenance via search_post_drafts and adds nothing about channelId, so baseline 3 applies.

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 concrete outputs: 'saved draft screenshot, public browser preview or validation warnings'. It also names the sibling it is not (show_post_card) and the sibling that supplies its key input (search_post_drafts), so the tool is distinguishable without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use clause, an explicit routing rule to show_post_card for in-chat cards, and a prerequisite ('Find draftId with search_post_drafts'). It even gives recovery guidance ('retry unavailable screenshots without recreating the draft'), leaving little to inference.

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.