Skip to main content
Glama

create_poster_from_content

Generate a single-page poster from a chosen template and supplied content, replacing sample text, removing unused elements, and optionally adding it as a page to a document.

Instructions

按内容生成一张海报(单页模板:小红书封面、菜单、价目表、证书、九宫格、课程表、各种海报、请柬、贺卡、封面、宣传单、数据盘点、对比表、成长记录等),尺寸跟模板走。模板里的示例文字全部换成内容,没给的连同它的底板、按钮一起删掉。不同模板吃不同的字段(菜单的 details、课程表的 table、数据盘点的 chart、证书的 recipient),content 每个字段的写法和放不下时怎么排见 get_guide("poster-content");summary.moved / unplaced / shrunk 说明文字放到了哪里、缩了多少。给 documentId 时海报加成那份文档的一页。

Input Schema

NameRequiredDescriptionDefault
contentYes
documentNo完整的 v44(或 v1–43 旧版)文档 JSON,可替代 documentId
documentIdNo给了就把海报加成这份文档的一页(就地更新,海报保留自己的尺寸);documentId、document、documentPath 都不给就新建一份文档
templateIdYeslist_templates 里 kind 为 poster 的模板 id,如 "talk-poster-freeform"
afterSlideIdNo加进已有文档时放在这一页后面;不给就加在最后
documentPathNo文档 JSON 文件的路径,可替代 documentId
includeDocumentNo同时返回完整文档 JSON(默认只返回 documentId 和 version)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

No annotations exist, yet the description carries the full behavioral load: template placeholder text is replaced, unfilled fields are removed along with their backing plate/button, the poster keeps its own size when inserted into a document, and the summary.moved/unplaced/shrunk fields report where text landed and how much it shrank. That is unusually rich disclosure of mutation and layout-fitting behavior.

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-loaded with the core action and scoping rule, and every sentence conveys something actionable. The long parenthetical template enumeration and stacked clauses (deletion rule, field mapping, summary fields, documentId) make it dense and slightly run-on.

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?

For a tool with a nested 9-field content object, no output schema, and no annotations, the description covers placement, deletion of unfilled slots, per-template field needs, and return summary semantics. It leaves open what happens on template/field mismatch or invalid templateId, a minor gap.

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 description coverage is already 86%, and the description adds meaning beyond it by mapping template families to the fields they consume (菜单→details, 课程表→table, 数据盘点→chart, 证书→recipient) and by explaining the precedence among documentId, document, and documentPath. It defers per-field syntax to get_guide, which is acceptable but slightly indirect.

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 artifact (generate a poster from content) plus a concrete constraint: it is a single-page template render where size follows the template, with the template categories enumerated (小红书封面, 菜单, 价目表, 证书, 课程表...). This clearly separates it from create_document_from_template and create_document_from_html.

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 real routing: templateId must come from list_templates with kind=poster, content field syntax is documented in get_guide("poster-content"), and documentId/document/documentPath/neither each select a different target document. It does not explicitly say when to prefer a sibling tool such as create_document_from_template instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.