Skip to main content
Glama

Postlyra.app — Telegram posts from AI chats

Update a Postlyra post draft

update_post_draft
Destructive

Use this when updating a legacy draft or binding file slots. Prefer get_post -> update_post(expectedRevision); never bypass revision_conflict. Send full richDocument preserving untouched content; text replaces layout. Bind media.src to file slots. Returns JPEG/public preview; follow display instructions and validation. Image references/files are imported; arbitrary RichDocument media.src may remain external. Never publishes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textNoReplaces the existing layout using the simple text parser. Prefer richDocument to preserve formatting and media.
draftIdYes
channelIdNoOptional owner-bound Postlyra channel id or exact title returned by list_channels.
mediaFile1NoActual attached or generated image file, up to 10 MiB: JPEG, PNG, GIF or WebP. Pass the file through the client upload mechanism; the server receives download_url and file_id. mime_type and file_name may be omitted. In the same richDocument call, use this slot name as media.src for exact placement.
mediaFile2NoActual attached or generated image file, up to 10 MiB: JPEG, PNG, GIF or WebP. Pass the file through the client upload mechanism; the server receives download_url and file_id. mime_type and file_name may be omitted. In the same richDocument call, use this slot name as media.src for exact placement.
mediaFile3NoActual attached or generated image file, up to 10 MiB: JPEG, PNG, GIF or WebP. Pass the file through the client upload mechanism; the server receives download_url and file_id. mime_type and file_name may be omitted. In the same richDocument call, use this slot name as media.src for exact placement.
mediaFile4NoActual attached or generated image file, up to 10 MiB: JPEG, PNG, GIF or WebP. Pass the file through the client upload mechanism; the server receives download_url and file_id. mime_type and file_name may be omitted. In the same richDocument call, use this slot name as media.src for exact placement.
mediaFile5NoActual attached or generated image file, up to 10 MiB: JPEG, PNG, GIF or WebP. Pass the file through the client upload mechanism; the server receives download_url and file_id. mime_type and file_name may be omitted. In the same richDocument call, use this slot name as media.src for exact placement.
mediaFile6NoActual attached or generated image file, up to 10 MiB: JPEG, PNG, GIF or WebP. Pass the file through the client upload mechanism; the server receives download_url and file_id. mime_type and file_name may be omitted. In the same richDocument call, use this slot name as media.src for exact placement.
mediaFilesNoAlternative file array for clients supporting file arrays. Prefer mediaFile1..mediaFile6 otherwise. At most 6 files total across slots and array; use mediaFiles[0] etc. as richDocument src bindings.
referencesNo
templateIdNo
instructionsNoLimited hints only: shorter, title, quote, CTA. For rewriting, restyling or exact placement supply the complete richDocument; this field does not run an AI editor.
richDocumentNoComplete replacement RichDocument: {version:1, blocks:[...]}. Start from preview_post.documentJson and preserve untouched content and stored media URLs. Read get_formatting_capabilities for syntax and file-slot bindings.
appendCallToActionNo
signatureSelectionNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
cardNoInteractive 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.
textNo
titleNo
localeNo
postIdNo
statusNo
displayNo
draftIdYes
messageYes
revisionNo
richHtmlNo
channelIdNo
updatedAtNo
previewUrlYes
screenshotNo
mediaStatusNoPresent only when image inputs were validated and imported into durable storage during this call. It does not describe arbitrary external document media.
documentJsonNo
inlineButtonsNo
screenshotUrlNoJPEG screenshot of the saved Telegram preview; null if rendering is temporarily unavailable.
signatureSnapshotNo
signatureSelectionNo
deliveryDocumentJsonNoComposed publication including the selected auto-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. 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."
  2. 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"
      +}
  3. Changed6 schema fields changed
    • addedInput schema / properties / references / items / properties / mimeType
      Added value: +{
      +  "description": "Optional MIME metadata, for example image/png. Identifies extensionless image URLs; actual downloaded bytes are validated.",
      +  "maxLength": 128,
      +  "type": "string"
      +}
    • changedInput schema / properties / references / items / properties / url / description
      Previous value: -"Source URL or direct image URL to add to the draft when appropriate."New value: +"Source page or direct image URL. Image references are downloaded, validated and durably imported. For extensionless image URLs supply mimeType. Other source-page references remain citations."
    • 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"
      +}
  4. Changed8 schema fields changed
    • addedInput 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 / 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"
      +  ]
      +}
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, non-idempotent and openWorld. The description adds meaningful behavior beyond them: full-replacement semantics ('send full richDocument preserving untouched content; text replaces layout'), that it never publishes, that it returns a JPEG/public preview, and that image references are imported while arbitrary media.src may remain external.

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?

It is front-loaded with the usage guidance and the sentences are compact, but it is dense with jargon ('revision_conflict', 'file slots') and some clauses ('Returns JPEG/public preview; follow display instructions and validation') are telegraphic.

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?

With an output schema present the description need not explain return values, and it still covers the main risks (replacement, import, never publishes). For a 16-parameter mutation tool this is close to complete, though a couple of parameters (channelId, templateId, signatureSelection) are left to the schema.

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?

Schema coverage is 69%, and the description adds real meaning beyond it by explaining the richDocument-vs-text tradeoff ('text replaces layout') and the file-slot binding mechanism ('Bind media.src to file slots'), which links the mediaFile slots to richDocument usage.

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 name and description establish a specific verb+resource (updating a Postlyra post draft), and the opening clause scopes it to 'legacy draft or binding file slots'. It differentiates itself from the sibling update_post by pointing to that tool for the non-legacy path, though the 'legacy' terminology is not fully explained.

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 ('updating a legacy draft or binding file slots') plus a named alternative workflow ('Prefer get_post -> update_post(expectedRevision); never bypass revision_conflict'). This leaves little ambiguity about when to pick this tool versus its sibling.

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.