Skip to main content
Glama

Postlyra.app — Telegram posts from AI chats

Turn a draft into an auto-signature

convert_draft_to_signature
Destructive

Use this when managing post auto-signatures. Convert an unpublished inactive draft into a reusable auto-signature, archive the original draft and revoke its preview. Optionally assign the signature as account default or to owner-bound channelIds. 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": "convert_draft_to_signature"
  }
}

Input Schema

NameRequiredDescriptionDefault
titleNoSaved-item title, e.g. Weekly recap.
defaultNoSet true to use the converted signature as the account default.
draftIdYesOwner-bound draftId from search_post_drafts/create_post_draft; same as postId.
channelIdsNoOwner-bound Postlyra channel ids from list_channels to bind to the converted signature.

Output Schema

NameRequiredDescriptionDefault
textNo
titleNo
localeNo
displayNo
messageYes
richHtmlNo
signatureYes
updatedAtNo
previewUrlNo
screenshotNo
signatureIdYes
documentJsonNo
inlineButtonsNo
screenshotUrlNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / properties / channelIds / description
      Added value: +"Owner-bound Postlyra channel ids from list_channels to bind to the converted signature."
    • addedInput schema / properties / default / description
      Added value: +"Set true to use the converted signature as the account default."
    • addedInput schema / properties / draftId / description
      Added value: +"Owner-bound draftId from search_post_drafts/create_post_draft; same as postId."
    • addedInput schema / properties / title / description
      Added value: +"Saved-item title, e.g. Weekly recap."
    • 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."
  2. Changed8 schema fields changed
    • removedOutput schema / properties / channelId
      Removed value: -{
      -  "maxLength": 128,
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / deliveryDocumentJson
      Removed value: -{
      -  "description": "Composed publication including the selected auto-signature. Edit documentJson, never copy this composition into the post body.",
      -  "type": "object"
      -}
    • removedOutput schema / properties / deliveryInlineButtons
      Removed value: -{
      -  "items": {
      -    "anyOf": [
      -      {
      -        "type": "object"
      -      },
      -      {
      -        "items": {
      -          "type": "object"
      -        },
      -        "type": "array"
      -      }
      -    ]
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / draftId
      Removed value: -{
      -  "maxLength": 128,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedOutput schema / properties / id
      Removed value: -{
      -  "maxLength": 128,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedOutput schema / properties / signatureSelection
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "mode": {
      -      "enum": [
      -        "inherit",
      -        "none",
      -        "custom"
      -      ],
      -      "type": "string"
      -    },
      -    "signatureId": {
      -      "maxLength": 128,
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    }
      -  },
      -  "required": [
      -    "mode"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / signatureSnapshot
      Removed value: -{
      -  "type": [
      -    "object",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / status
      Removed value: -{
      -  "maxLength": 64,
      -  "type": "string"
      -}
  3. Added

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, and the description goes further by naming precisely what is destroyed (the original draft is archived, its preview revoked) and what is NOT done ('Never publishes'). That is exactly the extra context the annotations don't convey.

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?

Three short sentences, front-loaded with the operative verb and ending with the safety-relevant 'Never publishes' caveat. The opening 'Use this when managing post auto-signatures' is vague filler that doesn't earn its place.

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?

A destructive, non-idempotent mutation with an output schema — the description covers preconditions, destructive effects, and the publish-exclusion, so an agent has what it needs to call it safely. Minor gap: it never mentions the optional title override or that the conversion is not idempotent, which matters for retries.

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 coverage is 100%, so draftId, default, channelIds and title are already fully documented. The description restates the optional behaviors ('account default', 'owner-bound channelIds') without adding syntax, ownership constraints, or interaction rules beyond the schema — 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 resource — converting an unpublished inactive draft into a reusable auto-signature — plus the two side effects (archiving the original draft, revoking its preview). This clearly separates it from create_signature and assign_signature, which create or bind signatures without consuming a 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?

The precondition 'unpublished inactive draft' tells the agent exactly which drafts qualify, and 'Never publishes' rules out a publishing workflow. However, no sibling alternatives are named (e.g. create_signature for drafts that don't exist yet), so routing is inferred rather than explicit.

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.