Padlet
Server Details
Read, search, create and edit Padlet boards: posts, sections, comments, settings and sharing.
- Status
- Healthy
- Uptime
- 30.5% over 57 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- padlet/padlet-mcp
- GitHub Stars
- 0
TDQS
Scored across 50 tools
Most tools target clearly distinct resources and actions (posts, comments, sections, access settings, collaborators, automations, uploads, exports). There is some potential confusion among the many `update_padlet_*` tools and between `update_padlet_settings` and more specific setting tools, but the descriptions draw reasonable boundaries.
The set overwhelmingly follows a snake_case verb_noun convention (create_posts, delete_comment, get_padlet_content, update_section). Minor deviations like `search_walls` using 'walls' instead of 'padlets', generic `get_time`, and the awkward `update_delete_padlet_collaborator_user` keep it from perfect consistency.
At 50 tools, the surface is heavy and requires significant tool-selection overhead, even for a broad platform like Padlet. Many narrowly scoped update/settings tools could arguably be consolidated, making the set feel over-fragmented.
Coverage is broad: padlet creation/remake/transfer, posts, comments, sections, access, collaborators, grading, LMS sync, exports, automations, uploads, and appearance/settings are all represented. Some lifecycle gaps remain (e.g. no direct delete/archive padlet tool, no explicit list_libraries), but core workflows are well supported.
Available Tools
50 toolsadd_comment_to_postAdd Comment to PostAInspect
Add a comment to a post given the post id.
Purpose: Add a comment to a post given the post id.
What this tool returns: { success: true, comment_id: "123" } on successful comment addition; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
When the result also has
awaiting_approval: true, the comment waits for the padlet's approval or content check, so tell the user others cannot see it yet.
Guidance for use:
post_id should be a string that represents an integer ID, i.e. only contain digits. If you don't know the integer ID, try getting the padlet's content first.
When the result has expected: true, the comment can't be added as things stand (for example, comments are turned off). Tell the user the message instead of retrying.
Pass
attachmentwhen the user wants a file or link on the comment. A comment may carry text, an attachment, or both.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | The id of the post to add a comment to. Must be a string that represents an integer ID, i.e. only contain digits. If you don't know the integer ID, try getting the padlet's content first. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| attachment | No | A file or link to attach: the url an upload tool returned, or any public https address. | |
| comment_body | No | The text body of the comment to add. Use only plain text, no markdown or HTML. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the coarse profile (mutation, non-idempotent, open-world), and the description adds real behavioral context beyond them: the exact success payload shape, the failure hash shape, the `awaiting_approval` moderation state where others cannot yet see the comment, and the `expected: true` non-retryable condition. That is exactly the extra context a caller needs for a write with a moderation queue.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then returns, then guidance — a scannable structure. It loses a point for redundancy: the opening sentence is repeated verbatim as the "Purpose:" bullet, and the post_id digit rule appears twice more.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on return-value disclosure itself and does so fully: success shape, failure shape, approval-pending state, and the hard-stop `expected` case. Combined with 100%-covered params, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes slightly beyond the schema by stating the cross-parameter relationship — a comment may carry text, an attachment, or both — which the per-field schema descriptions do not express. The post_id digits rule is restated from the schema and earns no additional credit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Add a comment to a post") plus the key input (post id), so the action is unambiguous. It never names the sibling it is distinct from (delete_comment, get_padlet_content), so a reader must infer the boundary rather than being told.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The Guidance section gives actionable routing: if the integer ID is unknown, get the padlet's content first; if the result has expected:true (e.g. comments disabled), report the message instead of retrying; pass `attachment` when the user wants a file or link. There is no explicit "do not use this when…" exclusion, but the alternative tool and its triggering condition are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_post_attachmentsAnalyze Post AttachmentsARead-onlyInspect
Analyzes the content of attachments (images, videos, audio, PDFs, documents) from posts on the padlet.
Purpose: Retrieve and analyze post attachment content so you can describe, summarize, or answer questions about what's in the attachments.
What this tool returns: { success: true, analysis: { posts: [{ post_id, attachments: [{ description }] }] } } with a structured analysis grouped by post_id; { success: true, message: "No valid attachments to analyze" } when none of the posts has an attachment it can read; otherwise { success: false, message: "..." }.
Guidance for use:
Use this tool when the user asks about the content of images, videos, audio, documents, or other attachments in posts.
Identify which posts have attachments before calling. If an EXPLICIT list of post_ids to analyze has been provided to you in the conversation, use those directly. Otherwise, call
get_padlet_contentfirst to discover them.A post has an attachment if its "attachment" field contains a URL (not empty, not "poll"). Check BOTH the "attachment" field and "attachment_props" — some posts have a URL in "attachment" but empty "attachment_props".
Pass the post_ids of posts whose attachments you want to analyze. The tool will retrieve the attachment URLs automatically.
Pass at most 50 post IDs per call. If there are more, prioritize the most relevant posts.
Only analyzes attachments the current user has permission to view.
Do not use this tool if the user is not asking about attachment content.
Results are cached: previously analyzed attachments return cached descriptions without re-analyzing.
IMPORTANT: Only pass the
queryparameter when the user has a specific, targeted question about the attachment content (e.g. "What formula is on slide 3?", "What color is the logo?"). For general requests like "describe the attachments", "what's in the images", or "summarize the content", do NOT pass aquery— omit it entirely so the tool returns a comprehensive generic description.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional. A specific question about the attachments. Only provide this for targeted questions (e.g. 'What formula is on slide 3?'). Do NOT provide for general descriptions. | |
| post_ids | Yes | IDs of posts whose attachments to analyze. Get these from get_padlet_content. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnly/openWorld/idempotent=false/destructive=false) by disclosing the three distinct response shapes including the 'No valid attachments to analyze' empty case, permission scoping ('Only analyzes attachments the current user has permission to view'), and caching behavior that changes repeat-call latency and cost. These are exactly the behavioral traits annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and return shapes, then well-segmented bullets that each carry operational information. It is long, and the `query` guidance appears both in the return-shape section and in the closing IMPORTANT line, plus the schema repeats it — a small amount of redundancy, but nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analysis tool with no output schema, the description supplies the response structure verbatim, the empty and error cases, permission boundaries, batching limit, caching, and prerequisites. An agent has everything needed to invoke this correctly on the first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline would be 3, but the description adds real meaning: it explains the retrieval path for post_ids, the 50-item cap and prioritization strategy, and the non-obvious conditional rule for `query` (omit entirely for general descriptions, supply only for targeted questions) with contrasted examples. That is semantics the schema alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (analyzes) and resource (attachment content from posts), enumerates the attachment types covered (images, videos, audio, PDFs, documents), and names the sibling it depends on (get_padlet_content) for discovery. An agent can distinguish this from get_padlet_content or export_padlet without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it (user asks about attachment content), when not to ('Do not use this tool if the user is not asking about attachment content'), and what to do instead when post IDs are unknown (call get_padlet_content first). Adds hard operational limits (max 50 post IDs per call, prioritize if more) and a precise rule for identifying which posts qualify via the attachment/attachment_props fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_attachment_uploadComplete Attachment UploadADestructiveIdempotentInspect
Finish an upload started by start_attachment_upload. Call this once per local file, after
the PUT to upload_url has succeeded. A chat-dropped file is downloaded by
start_attachment_upload when you pass its file object, so do not call this tool for it.
This is what checks the file: its real size against the padlet's per-file limit, and its actual bytes against the content type declared at the start. A file that fails either check is deleted and cannot be attached.
Pass the same wall_url you passed to start_attachment_upload — the per-file limit belongs to
the padlet, so completing against a different one can reject a file that was fine.
On success, pass the returned url to a post's attachment in create_posts or update_posts,
the attachment of add_comment_to_post, or image_url of update_padlet_wallpaper or
update_padlet_icon. One attachment per post or comment; call this once per file and use each
URL once.
Returns { success: true, url: "...", file_name: "...", content_type: "...", size_bytes: 123 }, or { success: false, error_code: "...", message: "..." }.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| uploaded_url | Yes | The `uploaded_url` start_attachment_upload returned. Not the upload_url you PUT the bytes to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and idempotentHint=true, but the description adds the concrete consequence: size and content-type are verified, and a failing file is deleted and cannot be attached. It also warns that completing against a different wall_url can reject a valid file, which is behavior no annotation expresses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and the call-ordering rule, and the failure semantics follow. It is on the long side for two parameters, with some downstream-integration detail that could be trimmed, but nothing is genuinely wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description spells out both success and error return shapes, the validation performed, and the downstream consumers of the URL. An agent has everything needed to call it and use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes further by explaining why the same wall_url must be reused (the per-file limit belongs to the padlet) and that uploaded_url comes from start_attachment_upload, not the upload_url you PUT to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Finish an upload started by start_attachment_upload'), and explicitly excludes the sibling-driven case where start_attachment_upload already downloaded a chat-dropped file. An agent can place this tool in the two-step upload flow without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Very explicit: call once per local file, only after the PUT to upload_url succeeded, never for chat-dropped files. It also says exactly where the returned url goes (create_posts/update_posts attachment, add_comment_to_post, update_padlet_wallpaper/update_padlet_icon) and that each URL is single-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_automationCreate AutomationAInspect
Purpose: Create automations on a padlet.
What this tool returns: { success: true, automation_id: "123" } on successful automation creation; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Automations are scheduled actions to be executed in the future. They must not be scheduled to execute on a past date.
The automation instructions should be calculated based on the user's timezone and current time. However, the scheduled_at timestamp must be converted to UTC.
Do not inform the user about timezone handling. You must use a human-friendly format when displaying dates.
After calling this tool, you MUST include the automations widget in your response using this exact format:
Example response: "I've created a freeze automation scheduled for tomorrow at 9AM. "
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The action to schedule. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| scheduled_at | Yes | The time at which the automation is going to be executed, in UTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=false, idempotentHint=false), it discloses the return shape for both success and failure, a validation constraint (no past dates), timezone handling rules, and a mandatory post-call widget that must appear in the response. That is substantial behavior an agent could not infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and return format are front-loaded, and the guidance bullets each carry actionable content. It is slightly long with the example response and multiple formatting directives, but none are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation with no output schema, the description covers return values, temporal validation, timezone semantics, and required follow-up UI — an agent has everything needed to call it correctly and respond properly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description earns an upgrade: it explains that scheduled_at is computed in the user's timezone but transmitted as UTC, and that the human-facing display should be friendly and not mention timezone mechanics. That adds operational meaning beyond the schema's terse 'in UTC'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Create automations on a padlet' — with the enum-visible action set (freeze/unfreeze) implied. It is clearly distinguishable from sibling tools like freeze_padlet (immediate action) and get_padlet_automations (read).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides strong conditions: automations are future-scheduled actions, must not be scheduled in the past, and scheduled_at must be computed from the user's timezone then converted to UTC. It does not, however, name an alternative for immediate freezes (e.g. freeze_padlet), so the when-not-alternatives dimension is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_padletCreate PadletAInspect
Create a new blank padlet that can then be populated using other tools.
Purpose: Create a new empty padlet from scratch.
What this tool returns: { success: true, padlet: { title, description, format, url }, workspace } with the new padlet's details. workspace is { name, library_url } for a library or { personal: true }; tell the user where the padlet went.
Guidance for use:
Creates a blank padlet with default settings (private, no posts).
Pass the returned url as
wall_urlto update_padlet_settings and the other tools that take a padlet.Optional parameters: title (uses smart default based on format if not provided), description, format (grid, stream, timeline_v2, matrix, shelf, table, free, map, timeline, whiteboard, columns).
After creation, use other tools to configure settings, add posts, sections, etc.
If format is not specified, defaults to "grid".
Where the new padlet goes:
Ask the user which workspace to use unless they already named one. Pass the library's library_url, or personal: true for their personal space, never both. list_libraries, when you have it as a tool or through run_padlet_read_action, gives each library's link.
With neither, the tool creates only when exactly one workspace can take the new padlet, and the result says which. Otherwise nothing is created, and available_workspaces lists the choices to ask about.
If the workspace cannot take a padlet, nothing is created and the result gives reason, message and available_workspaces. Tell the user why, ask which workspace to use, and call again with one entry's library_url or personal. Never pick one for the user.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Title of the padlet (optional, will use smart default based on format if not provided) | |
| format | No | Format of the padlet (default: grid) | grid |
| personal | No | Optional. true when the user chose their personal space. Never pass it with library_url. | |
| description | No | Description/subtitle of the padlet (optional) | |
| library_url | No | Optional. The padlet.com link of the library the user chose, as list_libraries or an earlier refusal gives it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only tell the agent this is a non-read-only, non-destructive, non-idempotent write. The description adds real substance: defaults are private with no posts, the exact return envelope including the workspace shape, and the two distinct failure modes (ambiguous workspace, workspace cannot accept a padlet) with what each result contains. Missing is any mention of permissions/quota errors, which keeps it off a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well structured with labeled sections and the core action front-loaded. The 'Where the new padlet goes' bullets restate each other somewhat (the third bullet re-explains the refusal case already implied by the second), costing a little density, but every section is scannable and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by spelling out the return object including the nested workspace variants. Combined with the default-state disclosure, the follow-up tool chain, and both failure paths, an agent has everything needed to call this correctly and to report the outcome to the user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond it: the mutual exclusivity of library_url and personal is framed as a rule with a consequence, the 'neither provided' case is explained as conditional creation with an available_workspaces fallback, and it directs where library_url comes from. The format enum and title smart-default are restated from the schema, which is redundant but not harmful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Create a new blank padlet') and immediately scopes it against siblings: this makes an empty padlet, whereas create_padlet_arcade_activity and remake_padlet are different operations and update_padlet_settings configures an existing one. An agent can distinguish it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the post-creation workflow ('Pass the returned url as `wall_url` to update_padlet_settings'), enumerates optional params, and gives a full decision procedure for the workspace ambiguity case including the instruction to ask the user rather than choose. Names the alternative path (list_libraries / run_padlet_read_action) for resolving library links.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_padlet_arcade_activityCreate Padlet Arcade ActivityAInspect
Creates one Padlet Arcade activity of the chosen activity_type, generated from the grade, topic and details.
Purpose: creates a Padlet Arcade activity for the user. This is the tool's only operation; it does not call any other tool.
What this tool returns: { success: true, activity_name: ..., activity_url: ... } on success; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
A request identical to one made in the last few minutes returns that activity again with reused: true. Tell the user it is the same activity; to make a different one, change the topic or details.
Guidance for use:
Use this tool if the user specifically requests it, or if the request is generic but the user may benefit from one of these activities.
Use mainly in educational environments.
After calling this tool, you MUST include the Padlet Arcade activity widget in your response using this exact format, replacing ID and URL with the actual values:
Example response: "I have generated a multiple choice activity for you! "
Keep your message concise (1-2 sentences) and always include the widget.
Supported activity types:
multiple-choice-quiz: a multiple choice quiz where students select the correct answer from several options.
memory-tiles: a memory matching game where students flip tiles to find matching pairs of related concepts.
flashcards: a set of flashcards for studying and memorization with terms on one side and definitions on the other.
matching: a matching activity where students connect related items from two columns.
fill-in-the-blank: a fill-in-the-blank activity where students complete sentences or passages with missing words.
sorting: a sorting activity where students categorize items into different groups or categories.
sequencing: a sequencing activity where students arrange items in the correct order (chronological, procedural, etc.).
word-search: a word search puzzle where students find hidden words related to a topic.
crossword: a crossword puzzle where students fill in words from clues related to a topic.
short-answer: a short-answer activity where students write brief responses to prompts.
| Name | Required | Description | Default |
|---|---|---|---|
| grade | Yes | The grade level which the interactive activity is directed to. | |
| topic | Yes | The topic the activity is about. | |
| details | Yes | Additional instructions for the activity generation, like categories to use or number of items. | |
| activity_type | Yes | The kind of activity to create. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: documents the exact return shape ({ success, activity_name, activity_url }) and failure shape, and discloses deduplication behavior (an identical recent request returns reused: true with the same activity) plus the mandatory widget embedding format. The dedupe note adds nuance beyond idempotentHint=false without contradicting it, since later distinct calls still create new activities.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and return value, then structured bullets for guidance, widget format, and activity types. The activity-type list and widget template are load-bearing, but several sections (example response, 'this is the tool's only operation') could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully carries the burden by specifying return and error payloads, dedupe semantics, and the required post-call widget markup. All four required parameters are addressed, leaving no gap an agent would hit when invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already covers 100% of parameters, the description adds genuine meaning by defining each of the 10 activity_type enum values with a one-line behavioral description, which the schema's bare enum does not provide. It also clarifies that 'details' carries item counts and categories.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates one Padlet Arcade activity') plus the three inputs that determine the output, and explicitly scopes it as a single-operation tool that calls no other tool. An agent can distinguish it from sibling creators like create_padlet or create_posts 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear contexts for use ('if the user specifically requests it, or if the request is generic but the user may benefit') and restricts scope to educational environments. It offers no explicit when-not or named alternative sibling, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_post_connectionCreate Post ConnectionAInspect
Create a connection (arrow/line) between two posts on a Freeform padlet.
Purpose: Draw a directional connection from one post to another.
What this tool returns: { success: true, connection_id: "123" } on success; otherwise { success: false, message: "..." }.
Only works on Freeform format padlets.
Use get_padlet_content to get post IDs before calling this tool.
labelis optional (max 50 characters). Omit it if no label is needed.You cannot connect a post to itself.
Duplicate connections (same from_post_id and to_post_id) are not allowed.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label for the connection (max 50 characters). | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| to_post_id | Yes | The id of the destination post. | |
| from_post_id | Yes | The id of the source post. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say this is a non-read-only, non-destructive, non-idempotent write. The description adds the concrete failure modes (duplicate connections, self-connection) that explain the non-idempotent hint, plus the exact return shape { success, connection_id } — value the annotations do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a one-line purpose, then scannable bullets carrying distinct constraints. Slight redundancy where the '- Purpose:' bullet restates the opening sentence, but no other waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description supplies the return values, the format precondition, ID-sourcing step, and error cases. An agent has everything needed to call this correctly on the first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the wall_url/from_post_id/to_post_id parameters are fully documented in the schema. The description only restates the label's 50-character limit and its optionality, adding little beyond schema text, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a connection (arrow/line) between two posts') plus the directional/format scope ('Freeform padlet'). It is clearly distinguishable from delete_post_connection and create_posts without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit prerequisites and constraints: only works on Freeform padlets, use get_padlet_content first to obtain post IDs, no self-connections, duplicates rejected, label optional. This is close to a full when/when-not specification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_postsCreate PostsAInspect
Create new posts on a padlet.
Purpose: Add new posts to a padlet.
What this tool returns: { success: true, created_post_ids: { "new_1": "123", "new_2": "456" } } on successful creation, mapping temporary "new_" ids to real post ids; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
When some posts or fields could not be applied, the result also has
not_applied, a list of { post_id, reason }. Tell the user which posts or fields did not change and why, using the reason, and never say a listed change was made.When the result has
awaiting_approval_post_ids, those posts wait for the padlet's approval or content check, so tell the user others cannot see them yet.
Guidance for use:
post_id is optional. It is the key of the post in created_post_ids and must start with "new_" (e.g. "new_1", "new_abc"). A post sent without one is keyed by its position, "new_1" for the first. Never use integer ids for new items.
Requires write permission on the padlet.
If setting an attachment, you must either:
include both
attachment_typeANDattachment_searchinclude
attachmentas a valid URL. Pass a chat-dropped file asfileto start_attachment_upload. Use start_attachment_upload plus complete_attachment_upload for a local file when the client can issue an HTTP PUT. An ordinary public web link may be passed directly asattachment.
Poll and other attachments using
attachmentandattachment_searchfields are mutually exclusive. Do not include both in the same post.If the padlet's settings use the "map" format, you MUST include location_data with latitude, longitude, and location_name.
Create posts under a section:
Create the section first using the update_section tool, or make sure the section already exists.
The update_section tool returns
created_section_idsmapping temporary "new_" ids to real section ids (e.g. { "new_1": "123" }). Use these real ids as section_id when creating posts.If you don't have the real section id, use the get_padlet_content tool to look it up.
NEVER use "new_" prefixed ids as section_id — they will be rejected.
Post color:
Only the following colors are allowed: red, orange, green, blue, purple. There are a few exceptions:
If 'yellow' is provided, use 'orange' instead.
"white" and "black" values are only allowed if and only if the padlet color scheme is "light" and "dark" respectively. The counterpart color should not be allowed and be rejected instead. Use the padlet_settings -> color_scheme field to get the padlet color scheme with the get_padlet_content tool.
| Name | Required | Description | Default |
|---|---|---|---|
| posts | Yes | Array of posts to create. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-read-only, non-idempotent, open-world write, but say nothing about outcomes. The description supplies the success payload shape (created_post_ids mapping 'new_' keys), the failure shape, the not_applied list with per-post reasons and an instruction never to claim an unapplied change succeeded, and awaiting_approval_post_ids invisibility. That is materially new behavioral information rather than a restatement of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and organized into scannable labeled bullets (return values, guidance, sections, color), so structure is strong. It is somewhat long and a few passages, particularly the post_id 'new_' rule and the location_data requirement, largely repeat what the schema descriptions already say.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with a deeply nested 12-field post object and no output schema, the description covers return values, partial-failure semantics, approval states, permission prerequisites, and cross-tool dependencies (start_attachment_upload, complete_attachment_upload, get_padlet_content, update_section). Nothing an agent needs before calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds semantics the schema does not encode: post_id must start with 'new_' and never be an integer, 'new_' ids are never valid as section_id, attachment vs attachment_search exclusivity, and the yellow->orange and white/black color substitutions tied to the padlet color_scheme. These are non-obvious constraints an agent would otherwise violate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create new posts on a padlet') and the implication of 'new' separates it from the update_posts sibling. It never names update_posts explicitly as the alternative for modifying existing posts, so the sibling routing is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Goes well past implied usage: it states the write-permission prerequisite, the exact either/or rules for attachments, the mutual exclusivity of attachment and attachment_search, the required section-creation ordering (create_section -> update_section -> real id -> posts), the mandatory location_data for map-format padlets, and the color allow-list with exceptions. An agent has concrete conditions for every branch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_automationsDelete AutomationsADestructiveInspect
Purpose: Delete multiple automations on a padlet.
What this tool returns: { success: true } on successful automation deletions; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Do not inform the user about timezone handling. You must use a human-friendly format when displaying dates.
After calling this tool, you MUST include the automations widget in your response using this exact format:
Example response: "I've deleted the freeze automation scheduled for tomorrow at 9AM. "
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| automation_ids | Yes | The ids of the automations to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the description's added value is the return shape: { success: true } or { success: false, message: "..." }, which matters because there is no output schema. It also mandates a UI widget after the call, a genuinely non-obvious behavioral requirement. It does not spell out irreversibility or partial-failure semantics when only some ids are invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Bulleted and front-loaded with purpose and return value before the usage rules, which is the right order. The "do not inform the user about timezone handling" line is somewhat boilerplate for a delete operation, but it ties loosely to the date-bearing example response.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully covers return values, and the widget directive covers the caller's post-call obligation. The main gap is operational context for a destructive batch call: required permissions and behavior when some automation ids fail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and wall_url's schema text is unusually thorough (explicitly excludes breakout/submission links and padlet ids). The description adds nothing parameter-specific beyond implying a padlet target, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: "Delete multiple automations on a padlet." The batch/plural framing separates it from create_automation and get_padlet_automations, though neither sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The "Guidance for use" section is entirely about response formatting (widget embedding, date display), not about when to choose this tool versus alternatives. There is no mention of needing automation ids from get_padlet_automations first, no permission prerequisites, and no when-not-to-use conditions for a destructive batch operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_commentDelete CommentADestructiveInspect
Delete a comment from a post given the comment id.
Purpose: Delete a comment from a post given the comment id.
What this tool returns: { success: true } on successful comment deletion; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
comment_id should be a string that represents an integer ID, i.e. only contain digits. If you don't know the integer ID, try getting the padlet's content first.
This action is irreversible. Always inform the user that deletion is permanent and confirm before proceeding.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| comment_id | Yes | The id of the comment to delete. Must be a string that represents an integer ID, i.e. only contain digits. If you don't know the integer ID, try getting the padlet's content first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, but the description adds the human-facing obligation (confirm with the user, deletion is permanent) and the return contract ({ success: true } or { success: false, message }). It does not cover permission/auth requirements or partial-failure modes, but it meaningfully extends the annotation-only view.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, but there is waste: the opening sentence is immediately repeated verbatim under 'Purpose:', and the comment_id guidance duplicates the schema description word for word. The return-value and confirmation guidance do earn their place; the duplication does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly supplies the return shape, and it covers the destructive-action safeguard and the id-resolution fallback. For a two-parameter mutation this is close to complete; only permissions/error-variant behavior is unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description's comment_id guidance ('string of digits only, fetch content if unknown') is largely a verbatim restatement of the schema field. It neither adds format or edge-case detail beyond the schema nor explains how wall_url relates to comment_id scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: delete a comment from a post, identified by comment id. It is unambiguous but does no sibling differentiation — it never contrasts itself with add_comment_to_post or update_posts, leaving the agent to infer that this is the only comment-removal path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real operational context: confirm with the user before deleting, warn that it is permanent, and if the integer id is unknown, fetch the padlet content first (pointing at a sibling capability). It lacks an explicit 'when not to use this' or an alternative for editing rather than removing a comment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_custom_fieldsDelete Custom FieldsADestructiveInspect
Delete custom fields from a padlet.
Purpose: Permanently delete one or more custom fields by their field_id.
What this tool returns: { success: true } on successful deletion; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Get field IDs from the padlet's current settings via the get_padlet_content tool.
This action is irreversible. Always inform the user that deletion is permanent and confirm before proceeding.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| field_ids | Yes | The field_id values of the custom fields to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false; the description goes further by stating the action is irreversible, requiring user confirmation, and documenting the exact return shape including the failure case. This is precisely the extra behavioral context the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then purpose, return values, and guidance in short labeled bullets — easy to scan and no filler. The labeled bullet scaffolding ('Purpose:', 'What this tool returns:') is slightly heavier than needed for a two-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by specifying the success and failure response shapes. Combined with the ID-sourcing prerequisite and irreversibility warning, nothing an agent needs to call this destructive tool safely is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the wall_url description already explains accepted link forms and rejects wall_id/breakout links. The description adds only the implicit notion of batching ('one or more custom fields'), which the schema's array type already implies, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete custom fields from a padlet') and the identifying handle ('by their field_id'), which cleanly separates it from siblings like delete_automations, delete_comment, or update_padlet_content_settings. An agent can tell exactly what it removes and where.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the prerequisite source of IDs ('get field IDs ... via the get_padlet_content tool') and mandates user confirmation before proceeding. It gives clear positive guidance and a critical precondition, but offers no explicit 'when not to use' or routing to an alternative for modifying fields rather than deleting them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_post_connectionDelete Post ConnectionADestructiveInspect
Delete a connection between two posts on a Freeform padlet.
Purpose: Remove an existing directional connection (arrow/line) between two posts.
What this tool returns: { success: true } on success; otherwise { success: false, message: "..." }.
Only works on Freeform format padlets.
Use get_padlet_content to get connection IDs before calling this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| connection_id | Yes | The id of the connection to delete. Must be a string representing an integer ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false; the description reinforces the directional-connection semantics and adds the Freeform-only constraint, which annotations do not convey. It does not describe behavior when the connection_id is invalid or already gone, so it is good but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then clean bullets for purpose, return value, constraints, and prerequisite. Every bullet carries information, though the return-value bullet partly duplicates the obvious shape of a delete response.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully discloses the return contract ({ success, message }). Combined with the Freeform restriction and ID-sourcing hint, an agent has enough to call it correctly; only error-path behavior is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are well documented in the schema, so the schema carries the load. The description adds only the provenance of connection_id (from get_padlet_content) and does not clarify wall_url format beyond what the schema already says — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Delete") and resource ("a connection between two posts") plus scope (Freeform padlets only). It distinguishes cleanly from create_post_connection, delete_comment, and the other delete_* siblings without the agent needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the prerequisite path ("Use get_padlet_content to get connection IDs before calling this tool") and a hard precondition ("Only works on Freeform format padlets"). It stops short of naming create_post_connection as the inverse or stating when-not to use it, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_padletExport PadletARead-onlyIdempotentInspect
Export a padlet to PDF, an image, a spreadsheet (XLSX), CSV, Markdown, printable HTML, or a ZIP of its attachments.
Purpose: Prepare a plain download or status link for a padlet.
What this tool returns: { success: true, export_url: "...", format: "..." } when a link is ready; otherwise { success: false, message: "..." }.
The link carries no access token. Opening it may show a status page that starts the export, and may require a signed-in Padlet browser session.
Calling this tool prepares the link. It does not start the export.
For PDF, page_size may be a4 or letter and orientation may be portrait or landscape.
spreadsheet is the Excel XLSX export.
zip_attachments is refused when the padlet has no downloadable attachments.
Sandbox export is not supported.
Pass wall_url, the padlet link. There is no id lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | The export format: 'pdf' for PDF document, 'image' for PNG screenshot, 'spreadsheet' for Excel XLSX, 'csv' for CSV file, 'markdown' for Markdown text, 'print' for printable HTML, 'zip_attachments' for downloading all files as a ZIP | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| page_size | No | Page size for PDF export (only for pdf format). Defaults to a4. | |
| orientation | No | Page orientation for PDF export (only for pdf format). Defaults to portrait. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the exact return shape, explains that the returned link carries no access token, warns that opening it may show a status page and require a signed-in Padlet browser session, and clarifies that the tool prepares the link rather than starting the export. These are important behavioral details an agent could not infer from the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with purpose and supported formats, then uses bullets for caveats and parameter notes. It is somewhat long and repeats a few details already in the schema, such as the spreadsheet/XLSX mapping and PDF page options, but the structure keeps the key information scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description supplies the return contract as success with export_url and format or failure with message. Combined with annotations and a fully described input schema, it gives the agent enough information to invoke the tool correctly and understand the main limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is already 100%, so the schema carries the core parameter documentation. The description still adds useful semantics, especially format-specific constraints like page_size and orientation applying only to PDF, spreadsheet meaning XLSX, zip_attachments refusal conditions, and the absence of id lookup for wall_url.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Export a padlet' and immediately enumerates the supported output formats. No sibling tool performs exports, so the action is clearly distinguishable from list/get/update tools even without naming one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use the tool: to prepare a plain download or status link, and explicitly notes that it does not start the export. It also provides important constraints such as sandbox export being unsupported and zip_attachments being refused when there are no downloadable attachments. It does not explicitly name an alternative tool, but none of the siblings is an export equivalent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freeze_padletFreeze PadletAInspect
Purpose: Freeze or unfreeze a padlet.
What this tool returns: { success: true } on successful freeze/unfreeze; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
When a padlet is frozen:
New posts cannot be added.
Existing posts cannot be edited or deleted.
Comments and reactions will be disabled.
Settings cannot be modified.
Guidance for use:
Use only if the user has requested to freeze now. For scheduled freezes, use the "create_automation" tool.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| operation_type | Yes | The operation to perform. Either to freeze or unfreeze the padlet. Possible values are: freeze, unfreeze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it enumerates the concrete consequences of freezing: no new posts, no edits or deletes on existing posts, comments and reactions disabled, settings locked. It also documents the return shape ({success: true} vs. {success: false, message}), which matters since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose followed by return value, effects, and usage guidance in scannable bullets; every section carries information. The '- Purpose:'/'Guidance for use:' scaffolding is slightly templated but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the return contract; with high schema coverage, it correctly refrains from re-documenting parameters and instead spends its space on effects and routing. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so wall_url's format guidance and the freeze/unfreeze enum are already fully documented in the schema. The description only restates the binary operation and adds nothing about the parameters beyond what structured data provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Freeze or unfreeze a padlet') and immediately distinguishes the operation pair via the enum-driven 'operation_type'. An agent can separate it from the many update_* siblings at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use rule ('Use only if the user has requested to freeze now') and names the alternative for the other case ('For scheduled freezes, use the "create_automation" tool'). This is exactly the routing guidance a sibling-heavy tool set needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_user_infoGet Current User InfoARead-onlyInspect
Retrieves information about the currently authenticated user. Use this tool to get details about who is making the request. Returns user profile information including name, email, username, avatar, bio, role, and language preference.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds value by enumerating the returned profile fields (name, email, username, avatar, bio, role, language preference), which no output schema provides, though it says nothing about behavior when unauthenticated or missing fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and scoped before the return details. Sentence two slightly restates sentence one ('who is making the request'), a minor redundancy but not harmful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, read-only tool with no output schema, the description covers purpose, usage trigger, and the shape of the result, which is all an agent needs to invoke it correctly. Only edge-case behavior (unauthenticated state, partial fields) is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document; baseline 4 applies. The description correctly implies no input is needed by framing it around 'the currently authenticated user'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Retrieves') and a precisely scoped resource ('information about the currently authenticated user'). None of the sibling tools (all Padlet content/settings operations) overlap, so an agent can tell instantly this is the identity tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this tool to get details about who is making the request', giving a clear positive trigger. It stops short of stating when-not-to-use or naming alternatives, but no sibling competes for this purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_padlet_access_settingsGet Padlet Access SettingsARead-onlyInspect
Purpose: Get the access settings for a padlet like student role, teacher role, visitor role, isListed (whether the padlet is shown on the dashboard), isPublished (whether the padlet is shown on user profile and web), if the padlet requires visitor to be a logged in user, the padlet's access password. Also return collaborators information.
What this tool returns: { success: true, access_settings: {...} } with complete access settings including collaborators and visitor role.
Guidance for use:
ALWAYS use this tool to get the access settings and collaborators information of a padlet before making changes.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/destructive/closed-world, so the description only needs to add what they don't. It does so usefully, disclosing the exact return envelope and that sensitive data (access password, collaborator list) is included – information an agent should know before echoing results. No permission/auth requirements are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Bulleted and front-loaded: purpose first, return shape second, usage guidance third. The field enumeration is long but each item is a real return field, so it earns most of its length; minor redundancy between the 'Purpose' list and the 'What this tool returns' line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one well-documented parameter and no output schema, the description supplies the missing return contract (success flag plus access_settings with collaborators). An agent has enough to call it and interpret the result; only auth/permission prerequisites are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the wall_url description already covers format, provenance, and exclusions (no breakout/submission link, no wall_id). The description adds no parameter-level meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource and enumerates the exact fields returned (student/teacher/visitor roles, isListed, isPublished, login requirement, access password, collaborators), which effectively separates it from the content/whiteboard settings siblings. It never explicitly contrasts itself with get_padlet_content_settings or update_padlet_access_settings, so differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit directive: 'ALWAYS use this tool ... before making changes', which clearly positions it as the read step preceding an access-settings update. It does not state when to skip it or what to use for other setting categories, leaving a small gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_padlet_automationsGet Padlet AutomationsARead-onlyInspect
Purpose: get information about the automations on a padlet.
What this tool returns: { success: true, automations: [...] } on successful automation settings retrieval; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
The scheduled_at timestamp is in UTC. You must convert them to the user's timezone when displaying them.
Do not inform the user about timezone handling. You must use a human-friendly format when displaying dates.
After calling this tool, you MUST include the automations widget in your response using this exact format:
Example response: "You have a freeze automation scheduled for tomorrow at 9AM. "
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint=false, so safety is covered; the description adds genuinely non-derived behavior: the exact success/failure envelope, that scheduled_at is UTC, and a mandatory widget element in the reply. It does not discuss pagination or empty-automation cases, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and return shape are front-loaded in a scannable tag-plus-bullets structure, with no filler. The embedded example response is long but earns its place because the widget markup must be reproduced exactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by spelling out the return envelope, and the mandatory widget requirement is an operational constraint an agent could not infer. Only minor gaps (behavior when a padlet has zero automations, error cases beyond the generic envelope) remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the wall_url description is unusually rich (link formats, explicitly not a breakout/submission link, explicitly not a wall id). The tool description itself adds nothing about the parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "get information about the automations on a padlet." That distinguishes it from the mutation siblings create_automation and delete_automations without needing to name them. It stops short of an explicit sibling callout, so it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The "Guidance for use" list is entirely about how to format and present the result (UTC conversion, widget embedding, example response) rather than about when to call this tool versus alternatives. Usage is implied by the read-only nature and the sibling set, but no exclusion or prerequisite is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_padlet_contentGet Padlet ContentARead-onlyInspect
Get detailed content of a specific padlet including all posts, comments, sections, and settings.
Purpose: Retrieve the current state of a padlet before making updates, or fetch a padlet the user has pasted a URL for.
What this tool returns: { success: true, wall_url: "...", wall_public_key: "...", padlet: {...} } with complete padlet data including title, description, format, sections, and all posts with their content.
Guidance for use:
Use this tool after list_padlets to understand the current content before making changes.
The returned post_id and section_id values can be used in create_posts, update_posts, and update_section tools.
Posts are returned in the order they appear on the padlet.
Each post includes an
editablefield indicating whether the current user can edit that post.Only returns the content if the current user has read access to the padlet.
When the padlet exists but cannot be read, the result includes reason: trashed, archived, password, or private. The message says whether the current user can restore or unarchive it, or whether its owner would need to. A missing padlet or a missing user gets message: "Unauthorized" with no reason.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description layers on substantial context beyond them: access-control behavior, the specific failure reasons (trashed, archived, password, private), the 'Unauthorized' case for missing padlet/user, post ordering, and the per-post `editable` flag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action and the return shape, then uses bullets for guidance. Slightly verbose with a redundant 'Purpose' bullet echoing the first sentence, but nearly every line carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description sketches the response envelope and failure modes, and it explains access preconditions. An agent has everything needed to call this and interpret both success and denial results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the wall_url description is already very rich (explicitly excludes breakout/submission links and ids). The description still adds the provenance hint that the URL may come from a previous call or a pasted link, which helps the agent source the value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get detailed content of a specific padlet') and enumerates scope: posts, comments, sections, settings. Clearly distinguishable from list_padlets and the many update_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it: after list_padlets, before making changes, or for a pasted URL. It also names which downstream tools consume the returned post_id/section_id, routing the agent to correct follow-ups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_padlet_content_settingsGet Padlet Content SettingsARead-onlyInspect
Purpose: Get the content settings of a padlet like content moderation mode and content (copy) protection setting.
What this tool returns: { success: true, content_settings: {...} } with complete content settings data including content moderation mode and content protection setting.
Guidance for use:
Content moderation mode is to decide which posts and comments require approval. The "all" value may also be referred to as "manual" by users because it means all posts and comments require manual approval.
Content protection (also known as copy protection - use this term when talking to users) setting is to decide if the padlet's content can be remade, downloaded, and exported.
is_remakeable is to decide if the padlet's content can be remade.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/non-destructive, so the description's added value is in disclosing the return envelope ({ success, content_settings }) and the meaning of each setting — notably that "all" is what users call "manual" and that copy protection is the user-facing term. That is genuine context beyond the structured fields, though it omits error behavior for invalid or inaccessible padlets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose and return shape are good, but the closing line about is_remakeable restates the content-protection point already made and adds little, and the content-protection concept is explained in two separate bullets. Mild redundancy dilutes otherwise clean bullets.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, describing the return envelope is necessary and done well, and the setting semantics are explained. A reader still lacks detail on what each setting's possible values are beyond the single "all"/"manual" case, but the definition is sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single wall_url parameter is thoroughly documented in the schema, including what it is not. The description adds no parameter-level detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource (get the content settings of a padlet) and names the fields involved, making it immediately distinguishable from the sibling update_padlet_content_settings. It stops short of explicitly naming that sibling, but the read-vs-write split is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers valuable interpretive guidance (moderation mode values, copy protection terminology) but says nothing about when to call this tool versus alternatives such as get_padlet_settings-style siblings or update_padlet_content_settings. Usage is implied from the name rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_padlet_post_propertiesGet Padlet Post PropertiesARead-onlyInspect
Purpose: Get the padlet (also known as wall)'s post properties: placeholders, enabled and required fields, and which attachment types are enabled when create/update a post.
What this tool returns: { success: true, post_properties: {...}, library_forbidden_attachment_types: [...] }; otherwise { success: false, message: "..." }.
Guidance for use:
post_properties.attachment_settings is true when every attachment type is enabled, false when attachments are disabled, or an object of attachment type => enabled. A type missing from the object is disabled.
library_forbidden_attachment_types lists the attachment types the padlet's library does not allow; they cannot be enabled.
Change these settings with update_padlet_post_properties.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral detail by specifying the success and failure response shapes and explaining how attachment_settings and library_forbidden_attachment_types behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and return shape, then provides focused guidance. The structured bullets and short sentences make it easy to scan, with no irrelevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description supplies the return shape and key semantics for interpreting attachment settings. Combined with annotations and the fully described input parameter, it gives an agent everything needed to call and understand this read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single wall_url parameter is fully documented in the schema with examples and exclusions. The description does not add parameter syntax or format details beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get the padlet's post properties, including placeholders, enabled and required fields, and attachment types. It also distinguishes the read operation from the sibling update_padlet_post_properties tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly directs the agent to use update_padlet_post_properties to change these settings, and explains how to interpret the returned attachment settings. It does not explicitly list when not to use this tool or prerequisites, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timeGet Current TimeARead-onlyInspect
Returns the current time (or an offset from it) in both ISO 8601 format and unix epoch seconds.
Purpose: Get the current real time in UTC, optionally offset by a number of seconds, for any time-based calculations.
What this tool returns: { success: true, iso8601: "...", timestamp: ... } with the time in ISO 8601 format and as a unix epoch integer.
Use offset_seconds to get a future or past time relative to now (e.g. 7200 for 2 hours from now, -3600 for 1 hour ago).
Use timezone to get the ISO 8601 time in a specific timezone.
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | No | Timezone name to use for the time calculation. Use IANA timezone names (e.g. 'Asia/Singapore'). If not provided, UTC will be used. | |
| offset_seconds | No | Number of seconds to offset from current time. Positive for future, negative for past. Defaults to 0, the current time. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered; the description adds the return payload shape and the default-to-UTC behavior when timezone is omitted. It does not note that repeated calls return different values (consistent with idempotentHint=false), which would have been useful for caching decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is front-loaded and the bullets are scannable and each carries distinct information. The 'What this tool returns' bullet mildly duplicates the opening sentence's format claim, costing a bit of tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the return shape ({ success, iso8601, timestamp }) itself, plus defaults for both optional parameters. For a zero-required-parameter utility tool, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3, but the description goes beyond the schema by giving worked examples (7200 = 2 hours ahead, -3600 = 1 hour ago) and by tying timezone to the ISO 8601 output specifically. This is additive meaning, not repetition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ('Returns the current time ... in ISO 8601 and unix epoch seconds') with scope (optionally offset). No sibling tool in the list deals with time, so the utility role is unambiguous and an agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete usage context ('for any time-based calculations') and explains both knobs: offset_seconds for future/past times and timezone for localized ISO output. No alternatives or exclusions are named, but none of the siblings overlap, so the routing gap is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_whiteboard_tool_settingsGet Whiteboard Tool SettingsARead-onlyInspect
Purpose: Get all whiteboard/sandbox tool settings including which toolbar tools are enabled/disabled, AR lenses, and video/screen recording length limit.
What this tool returns: { success: true, whiteboard_tool_settings: {...}, ar_lenses_enabled: true/false, video_length_limit: }
Guidance for use:
whiteboard_tool_settings shows which toolbar tools are enabled or disabled. It is a hash of tool_id => boolean (true = enabled, false = disabled)
ar_lenses_enabled indicates whether augmented reality filters are available in the video recorder.
video_length_limit is the maximum recording length in seconds for video and screen recorder (nil means using the default/max limit).
Use update_whiteboard_tool_settings to change any of these settings.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful return semantics, including the whiteboard_tool_settings hash format, ar_lenses_enabled meaning, and nil video_length_limit default, though it does not discuss permissions or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose and return shape in structured bullets, then gives usage guidance with no fluff. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description explicitly describes the return shape and field meanings. With the single fully documented input parameter and read-only annotations, the definition is complete enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the wall_url parameter is thoroughly documented in the schema. The description adds no parameter meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get all whiteboard/sandbox tool settings, including toolbar tools, AR lenses, and recording length. It also names update_whiteboard_tool_settings as the mutation counterpart, making the read-only purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly directs the agent to use update_whiteboard_tool_settings to change any of these settings. For a read-only getter, this gives clear when-to-use and the relevant alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grade_postsGrade PostsADestructiveInspect
Grade posts on a padlet by saving a numeric score per post, and optionally an overall written comment per student.
Purpose: Create or update Score grades for one or more posts. Optionally save one written feedback comment per student.
What this tool returns: { success: true, graded_count: N } on success; { success: false, message: "..." } on failure.
You must call get_padlet_content first to read the posts before grading.
Only wall builders and admins can grade posts.
Scores must be integers between 0 and the wall's max_score. Read max_score from padlet_settings -> grading_settings -> max_score in the get_padlet_content result.
For student_comments: a student may have multiple posts — provide ONE comment per student using any one of their post_ids to identify them.
| Name | Required | Description | Default |
|---|---|---|---|
| grades | Yes | Array of grades to save, one entry per post. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| student_comments | No | Optional. One overall written feedback comment per student. A student may have multiple posts — provide exactly one entry per student using any one of their post_ids to identify them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and idempotentHint=false, and the description adds real context beyond them: the create-or-update nature of grading, the permission gate, the score bounds check, and the exact success/failure response shape despite no output schema. The one gap is that it never states that an existing score is overwritten and that the prior value is not recoverable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded lead sentence followed by scannable bullets, each carrying a distinct operational fact. The 'Purpose:' bullet largely restates the lead sentence and the student_comments bullet overlaps the schema text, so it is slightly longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description supplies everything an agent needs: the mandatory read-first step, actor permissions, value-range source, comment-to-student mapping, and both success and failure response shapes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description earns above that by explaining where max_score comes from (padlet_settings -> grading_settings -> max_score) and by clarifying that one comment entry per student may reference any of that student's post_ids. Some of the student_comments guidance duplicates the nested schema description, limiting it to a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (grade posts by saving numeric scores), plus the optional secondary effect (one overall written comment per student). It is clearly distinguishable from add_comment_to_post and sync_grades_to_lms by the 'numeric score per post' framing and the return shape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit prerequisites ('must call get_padlet_content first'), permission requirements ('only wall builders and admins'), and validation bounds ('integers between 0 and the wall's max_score', with the location of max_score spelled out). It also routes the comment-per-student case with a concrete rule rather than leaving it to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite_email_as_padlet_collaboratorInvite Email as Padlet CollaboratorCInspect
Invite an email as a padlet collaborator.
Purpose: Invite an email as a padlet collaborator.
What this tool returns: { success: true } on successful invitation; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | The role to grant to the collaborator. Values are: reader, commenter, writer, moderator, admin. Do not specify this if you cannot determine the role. A default role will be assigned. | |
| Yes | The email of the collaborator to invite | ||
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation and safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false). The description adds genuine value by disclosing the return shape ({ success: true } or { success: false, message }, which matters since there is no output schema), but says nothing about permission requirements, whether an invitation email is actually sent, or what happens on re-inviting the same address despite the non-idempotent hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The return-value note is well-formed and front-loaded, but the leading sentence is repeated three times across name, first line, and the 'Purpose' bullet, so a third of the text is pure duplication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity 3-parameter mutation with full schema coverage, the definition is close to sufficient, and the return-shape note compensates for the missing output schema. What remains unaddressed is whether the invitee is notified, what authorization the caller needs, and how the default role is chosen when omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already carries strong semantics: the role enum with a caution to omit it when undetermined, and a detailed wall_url explanation ruling out breakout links and padlet ids. The description adds nothing beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title/description do state a concrete verb+resource (invite an email as a collaborator on a padlet), so the purpose is inferable. However, the '- Purpose:' bullet is a verbatim restatement of the tool name, adding zero information, and the definition never distinguishes itself from the sibling update_delete_padlet_collaborator_user, which plausibly covers the same collaborator domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance anywhere in the description. An agent gets no signal on how this differs from update_delete_padlet_collaborator_user, or what to do if the person is already a collaborator. Only the schema's role field offers any implicit usage hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_padletsList PadletsARead-onlyInspect
List padlets owned by the current user, ordered by most recently updated.
Purpose: Discover what padlets the user owns.
What this tool returns: { success: true, padlets: [...] } with an array of padlet objects containing title, description, format, url, and timestamps.
Guidance for use:
Use this tool to find which padlets the user owns before performing operations.
Pass the returned url as
wall_urlto get_padlet_content and to every other tool that takes a padlet.Results are ordered by most recently updated (updated_at descending).
Only returns active padlets (excludes hidden, archived, suspended, or deleted padlets).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of padlets to return (default: 20, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, yet the description still adds genuine context: ordering by updated_at descending, exclusion of hidden/archived/suspended/deleted padlets, and the response envelope shape. It does not mention pagination behavior or whether limit truncation is silent, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb+scope sentence, then organized into purpose, return, and guidance sections that are each scannable. Minor redundancy between the opening sentence and the 'Purpose:' bullet, which restates the same idea.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, non-destructive read with no output schema, the description supplies the return shape, ordering, filtering semantics, and the workflow handoff. An agent has everything needed to call it and use the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single `limit` parameter already documents default (20) and max (100). The description adds nothing about `limit`, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource (list padlets) plus a scope qualifier (owned by the current user) and a sort order. This clearly separates it from get_padlet_content and search_walls, which the agent can distinguish 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use it to discover owned padlets before performing operations, and prescribes the downstream handoff ('pass the returned url as wall_url to get_padlet_content'). It does not state when to prefer search_walls instead, so the alternative-selection guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pin_postPin PostAInspect
Pin/unpin a post to the top of the padlet/section it belongs to.
Purpose: Pin/unpin a post to the top of the padlet/section it belongs to.
What this tool returns: { success: true } on successful pin/unpin; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
post_id should be an integer ID. It should be available through get_padlet_content tool. Things like new_1, new_abc are not valid post ids.
If a post was newly created using ID starting with "new_", the number part of that ID is NOT the correct post id. ALWAYS use get_padlet_content tool to get the correct post id.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | The integer id of the post to pin/unpin. It should be available through get_padlet_content tool. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| should_pin | Yes | Whether to pin the post |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (not read-only, not destructive, not idempotent). The description adds return-value behavior, including the failure shape, and warns about invalid post IDs, which goes beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical ID guidance is front-loaded, but the opening sentence is duplicated verbatim by the 'Purpose' bullet, creating clear waste. The return-value details are useful because no output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description appropriately explains the success/failure return shape. The ID-acquisition pitfall is well covered, and the schema fully documents wall_url. Minor gap: no use-case routing against sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds useful post_id validation context beyond the schema, explicitly warning that new_* IDs are invalid and must be resolved through get_padlet_content.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (pin/unpin) and resource (a post) plus where it is moved (top of the padlet/section). It does not explicitly distinguish itself from siblings, but the action is unique enough that confusion is unlikely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear prerequisite guidance: obtain the integer post_id via get_padlet_content, and do not use temporary new_* IDs. It does not explain when to pin/unpin versus other post-management siblings such as update_posts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remake_padletRemake PadletAInspect
Remake (clone) a padlet to create a copy with configurable options.
Purpose: Create a copy of an existing padlet with optional content copying.
What this tool returns: On success, returns { success: true, wall_url: "...", workspace } with the URL of the newly created padlet. workspace is { name, library_url } for a library or { personal: true }; tell the user where the copy went. On failure, returns { success: false, message: "..." }.
Guidance for use:
Use this tool when the user wants to create a copy, clone, duplicate, or remake of their padlet.
The user must have permission to remake the padlet (they must be able to view it and the padlet must allow remaking).
By default, posts/objects and wallpaper are copied. Comments and reactions are not copied by default.
IMPORTANT: Only call this tool ONCE per user request. Even if the user asks to remake multiple times, only remake once. Inform them that you can only remake one padlet at a time.
The remake is performed synchronously. It may take a moment for large padlets.
Communication: The user cannot see tool call results directly. After calling this function, you MUST include the wall_url in your response using markdown link format: Click here to view your remade padlet.
Admin-only options:
with_original_authors and with_same_privacy are admin-only options that require the user to be an admin of the padlet.
If a non-admin user tries to use these options, the tool will return an error.
Where the copy goes:
Ask the user which workspace to use unless they already named one. Pass the library's library_url, or personal: true for their personal space, never both. list_libraries, when you have it as a tool or through run_padlet_read_action, gives each library's link.
With neither, the tool creates only when exactly one workspace can take the new padlet, and the result says which. Otherwise nothing is created, and available_workspaces lists the choices to ask about.
If the workspace cannot take a padlet, nothing is created and the result gives reason, message and available_workspaces. Tell the user why, ask which workspace to use, and call again with one entry's library_url or personal. Never pick one for the user.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Title for the new padlet. Defaults to 'Remake of {original_title}' if not provided. | |
| personal | No | Optional. true when the user chose their personal space. Never pass it with library_url. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| folder_id | No | Optional bookmark folder id to add the remade padlet to. The folder must be owned by the user. If not provided, the remade padlet is not added to any folder. | |
| with_posts | No | Whether to copy posts/objects to the new padlet. Defaults to true. | |
| library_url | No | Optional. The padlet.com link of the library the user chose, as list_libraries or an earlier refusal gives it. | |
| with_comments | No | Whether to copy comments on posts. Defaults to false. | |
| copy_wallpaper | No | Whether to copy the wallpaper. If false, a random wallpaper is assigned. Defaults to true. | |
| with_reactions | No | Whether to copy reactions (likes, votes, etc.) on posts. Defaults to false. | |
| with_same_privacy | No | Admin only. Whether to copy privacy settings and collaborators. Defaults to false. | |
| with_original_authors | No | Admin only. Whether to retain original post/comment authors. Defaults to false. | |
| translate_wall_content_to | No | ISO 639-1 language code to translate the remade wall content to. | |
| with_posts_only_made_by_admins | No | Only copy posts made by admins. Defaults to false. | |
| with_objects_only_made_by_admins | No | Only copy whiteboard objects made by admins. Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations (which only say it is a non-read-only, non-destructive, non-idempotent write), disclosing default copy semantics (posts/wallpaper yes, comments/reactions no), synchronous execution, admin-only error paths, and the full success/failure return shapes including available_workspaces on refusal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and return shape, then cleanly sectioned bullets for guidance, admin options, and destination resolution. It is long, and a few lines (e.g. the admin-only bullet restating the schema descriptions) are mildly redundant, but for a 14-parameter tool the length is largely earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return contract itself — success with wall_url and workspace, failure with message and available_workspaces — and it also instructs the agent to surface the link to the user in markdown, which is the one thing an agent would otherwise omit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description still adds real value by clarifying the mutual exclusion of library_url and personal ('never both'), the admin-only status of with_original_authors and with_same_privacy, and how library links are obtained via list_libraries or run_padlet_read_action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Remake (clone) a padlet to create a copy with configurable options' — and the guidance section enumerates the user intents it serves (copy, clone, duplicate, remake), which separates it from create_padlet or export_padlet without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit about when to use, the prerequisite (user must be able to view it and the padlet must allow remaking), the admin gating for two options, and the 'only call once per user request' constraint. The workspace-resolution rules spell out when nothing is created and what to ask the user instead of guessing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_posts_and_sectionsRestore Posts and SectionsAInspect
Restore soft-deleted posts and/or sections on a padlet.
Purpose: Restore posts or sections that were previously deleted (e.g. by the user or by a prior tool call). Deletions are soft-deleted, so they can be restored.
What this tool returns: { success: true } on successful restore; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Restoring sections requires admin permission on the padlet. Restoring posts requires edit permission on each post.
Provide post_ids to restore specific posts, section_ids to restore specific sections, or both. At least one non-empty list is required.
When restoring a section AND its posts, provide BOTH the section_ids AND the post_ids. Posts are NOT automatically restored when a section is restored. Use the deleted_post_ids returned by the update_section or update_posts tool to know which post_ids to include.
When restoring only posts (not a section), provide post_ids.
Only soft-deleted items can be restored. If an id is not found or was not soft-deleted, it is skipped; others are still restored.
Deleted posts and sections are permanently removed after 24 hours; restore must be requested within that window.
Always use the exact deleted_post_ids and deleted_section_ids returned by update_section or update_posts tool call. Never guess or fabricate IDs.
Use get_padlet_content to see current state; soft-deleted items are not returned there. The user may ask to "undo" a deletion or "restore" something they or the assistant just deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| post_ids | No | Ids of soft-deleted posts to restore. Omit or leave empty to restore no posts. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| section_ids | No | Ids of soft-deleted sections to restore. Omit or leave empty to restore no sections. Posts in those sections are NOT restored automatically; you must also pass their post_ids. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only supply a generic non-read-only, non-destructive, non-idempotent profile; the description adds genuinely behavioral facts: 24-hour permanent-deletion window, skip-on-missing/not-soft-deleted semantics with partial success, permission requirements per resource, and the exact return shape including the failure hash with optional message.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose and return contract, then clearly bulletted guidance, so it scans well despite its length. It is mildly repetitive: the 'posts are NOT automatically restored with a section' rule appears twice, and the standalone 'when restoring only posts, provide post_ids' bullet restates the schema's own default.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and no rich annotations, the description covers permissions, id sourcing, partial-failure behavior, time-to-live, return shape, and verification via get_padlet_content. An agent has everything needed to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes further by stating the interaction rule between post_ids and section_ids (posts are not implicitly restored with a section) and by warning never to fabricate ids but to reuse deleted_post_ids/deleted_section_ids. It adds little about wall_url formatting, which the schema already covers in detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (restore) and resource (soft-deleted posts and/or sections) scoped to a padlet, and explicitly frames the operation as the inverse of deletion. That is enough for an agent to distinguish it from update_posts, update_section, and delete-oriented siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use triggers (user asks to 'undo' or 'restore' something just deleted), required permissions per item type, the at-least-one-list rule, and the crucial sequencing rule that a section restore does not restore its posts so both id lists must be supplied. It also routes the agent to update_section/update_posts for the source of the ids and to get_padlet_content for current state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_wallsSearch PadletsARead-onlyInspect
Search for padlets in the user's account using semantic search.
Purpose: Find relevant padlets based on a search query. This allows discovering padlets by their content, not just by browsing recent padlets.
What this tool returns: { success: true, results: [...] } with an array of matching padlets containing title, description, url, and other relevant information.
Guidance for use:
Use this tool to find specific padlets when the user mentions content or topics (e.g., "my project padlet", "padlet about climate change").
The search uses semantic/vector search, so it understands meaning, not just exact keyword matches.
Results are ranked by relevance to the search query.
Only returns padlets the current user has access to (owned by them or shared with them).
Pass a result's url as
wall_urlto get_padlet_content and to every other tool that takes a padlet.If no results are found, consider using list_padlets to browse recent padlets instead.
Results are nearest matches, not exact ones:
This tool always returns the closest padlets it can find. It does NOT return an empty list just because the padlet the user asked for does not exist, so a non-empty response is not evidence that the padlet was found.
Before using a result, check that its title and description actually match what the user asked for. If none of them do, tell the user you could not find that padlet — never silently substitute the nearest result.
Never write to, share, invite anyone to, grade, freeze, or delete anything on a result whose title does not clearly match the user's request. Confirm which padlet they meant first.
A padlet created moments ago may not be indexed yet. When the user refers to a padlet from earlier in this conversation, reuse its url directly instead of searching for it, and use list_padlets for recently created or updated padlets.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default: 15, max: 50) | |
| query | Yes | The search query to find relevant padlets (e.g., 'project planning', 'math homework', 'team meeting notes') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), but the description adds behavior the annotations cannot express: semantic/vector ranking, access scoping, nearest-match behavior that never returns an empty list, and indexing lag for newly created padlets. These are genuine decision-relevant traits beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and return shape are front-loaded and the bulleted guidance is scannable. It is somewhat longer than necessary — the 'Purpose:'/'What this tool returns:' labels and the restated return caveat add bulk — but nearly every line carries actionable instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the return shape ({ success, results: [...] } with title, description, url). It also covers indexing timing, access scope, and result reliability, leaving no operational question unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so query and limit (default 15, max 50) are already fully documented in the schema. The description adds no parameter-level meaning such as query phrasing advice or limit tradeoffs beyond what the schema states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('search for padlets in the user's account using semantic search') and explicitly contrasts with list_padlets for browsing recent items. An agent can distinguish it from every sibling without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use triggers ('when the user mentions content or topics'), names the alternative list_padlets for the no-results case, and instructs reusing a url from conversation instead of searching for recently created padlets. The nearest-match warning adds an explicit 'when not to trust results' rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_attachment_uploadStart Attachment UploadAInspect
Start uploading a file so it can be attached to a padlet.
A file dropped into ChatGPT arrives as file. Pass that object here and do not PUT. Padlet
downloads and verifies it, and the returned url is ready for any destination in step 4.
Do not call complete_attachment_upload for that file.
A local file, when you can read it and send an HTTP PUT (with curl, for instance):
Call this tool with the file's real size in bytes and its content type. Do not pass
file.PUT the raw bytes to the
upload_urlyou get back. One request, no headers, no form encoding — for examplecurl -T /path/to/file "<upload_url>". The body must be exactlysize_bytesbytes long.Call complete_attachment_upload with the same
wall_urland theuploaded_urlfrom this tool. Nothing reaches the padlet until you do, and the file is verified at that point — a file whose bytes do not match the content type you declared is rejected and deleted.Pass the URL complete_attachment_upload returns to a post's
attachmentin create_posts or update_posts, theattachmentof add_comment_to_post, orimage_urlof update_padlet_wallpaper or update_padlet_icon.
An ordinary public web link that should remain a link can be passed directly to any of those destinations.
Returns { success: true, upload_url: "...", uploaded_url: "...", expires_at: "..." } for a local file, { success: true, url: "...", file_name: "...", content_type: "...", size_bytes: 123 } for a chat-dropped file, or { success: false, error_code: "...", message: "..." }.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | ||
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| file_name | No | The file's name, including its extension (e.g. "diagram.png"). Used for the stored file name and to tell Office documents from plain zips. | |
| size_bytes | No | The file's real size in bytes. Measure it; do not estimate. The padlet's per-file limit is enforced against it. | |
| content_type | No | The file's MIME type. Must match the file's actual bytes — this is checked against the uploaded content, not taken on trust. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the mutation/open-world/idempotency profile; the description adds the genuinely load-bearing behavior: the returned URL is not usable until complete_attachment_upload runs, the file is downloaded and verified by Padlet, a size/content-type mismatch causes rejection and deletion, upload URLs expire (returned as expires_at), and the PUT body must be exactly size_bytes long. That is far beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core instruction and then organized as numbered steps for the local-file path, which is the right shape for a multi-stage handshake. It is long and the return-shape paragraph is dense, but nearly every sentence carries operational weight; only minor trimming (e.g., repeating the destination list) would be possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-step upload with a nested `file` object and no output schema, the description supplies the missing pieces: both return shapes, the error shape, the expiry field, and the required follow-up call plus the downstream tools that consume the URL. An agent has everything needed to complete the flow correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 80%, so the baseline is 3; the description adds the exclusivity rule ('Pass that object here and do not PUT' vs 'Do not pass file') that explains why the if/then schema branches exist, and stresses that size_bytes must be measured rather than estimated. It doesn't enumerate the content_type enum or explain file_name's Office-vs-zip use, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a concrete verb+resource: 'Start uploading a file so it can be attached to a padlet.' It immediately distinguishes itself from complete_attachment_upload and from the post/comment/wallpaper tools that consume the resulting URL, so an agent can place it in the workflow 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit branching conditions: a chat-dropped `file` object goes here with no PUT and no complete_attachment_upload call, while a local file goes here with file_name/content_type/size_bytes followed by an HTTP PUT and a call to complete_attachment_upload. It even carves out a third case — an ordinary public web link should be passed directly to a destination and not uploaded at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_grades_to_lmsSync Grades to LMSADestructiveInspect
Sync all grades for a padlet to the connected LMS (e.g. Canvas, Schoology) via LTI passback.
Purpose: Push all existing post grades to the LMS gradebook.
What this tool returns: { success: true } on success; { success: false, message: "..." } on failure.
Only available when LMS passback is enabled on the padlet.
Only wall builders and admins can trigger a sync.
The sync may be asynchronous for padlets with many students — in that case the result will indicate async: true and the LMS will update shortly.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations: it discloses the async behavior for large student counts and the { success, message, async } response shape, plus the permission prerequisite. It doesn't explain what 'destructive' risk exists (overwriting existing LMS gradebook entries) or non-idempotency beyond the annotation flags, but the added context is genuinely useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and scope, then structured bullets for return value, availability, and permissions; every line adds information. The 'Purpose:' bullet mildly restates the opening sentence but the rest is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the return shape, async caveat, precondition, and permission gate — enough for correct invocation. Minor gaps remain on failure cases and whether ungraded posts are skipped, but nothing blocking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single, well-documented wall_url parameter, so the schema does the heavy lifting. The description doesn't reference wall_url at all, adding nothing beyond what's already documented — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Sync all grades for a padlet to the connected LMS ... via LTI passback', and adds 'Push all existing post grades to the LMS gradebook', which implicitly separates it from grade_posts (which sets the grades). It never names that sibling explicitly, so the distinction is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Preconditions are stated clearly: LMS passback must be enabled and the caller must be a wall builder or admin. However, there is no guidance on when to choose this over grade_posts or whether grades must be set first, so the usage guidance stays implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_padletTransfer PadletADestructiveInspect
Purpose: Transfer a padlet to another of the user's workspaces, like "Transfer board" on the padlet page. The owner stays the same.
What this tool returns: { success: true, wall_url, workspace } on success. workspace is { name, library_url } for a library or { personal: true }. Otherwise { success: false, message }, usually with a reason. A refusal over the workspace usually also gives available_workspaces, the workspaces that can take the padlet.
A transfer keeps named collaborators, removes group collaborators, and applies the new workspace's privacy rules.
Guidance for use:
Only the padlet's owner can transfer it. To copy a padlet instead, use remake_padlet.
Ask the user which workspace to transfer to unless they already named one. Pass the library's library_url, or personal: true for their personal space, never both. list_libraries, when you have it as a tool or through run_padlet_read_action, gives each library's link.
Never pick a workspace for the user. With neither argument, nothing is transferred.
If the transfer is refused, tell the user why and offer the entries of available_workspaces when present.
Only call this tool ONCE per user request.
Communication: A transfer usually changes the padlet's link. You MUST give the user the returned wall_url as a markdown link: Open your padlet.
| Name | Required | Description | Default |
|---|---|---|---|
| personal | No | Optional. true when the user chose their personal space. Never pass it with library_url. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| library_url | No | Optional. The padlet.com link of the library the user chose, as list_libraries or an earlier refusal gives it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare that this is a destructive, non-idempotent mutation. The description goes well beyond that: it discloses that existing named collaborators are kept, group collaborators are removed, new workspace privacy rules apply, and the padlet link usually changes, plus it defines both success and refusal return shapes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and return value, then guidance bullets, with no filler sentences. It runs long, but nearly every line carries decision-relevant information; the return-shape paragraph is the densest part and could be trimmed since there is no output schema to lean on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description fully specifies both return shapes, including the nested workspace forms and the refusal payload with available_workspaces. Combined with the usage rules and a 3-parameter, 100%-documented schema, an agent has everything needed to invoke and report results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description still adds semantics the schema doesn't fully convey: the two workspace arguments are mutually exclusive and passing neither transfers nothing, and library_url should come from list_libraries or an earlier refusal's available_workspaces.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Transfer a padlet to another of the user's workspaces') and anchors it to a known UI action ('like "Transfer board"'). It also explicitly distinguishes itself from the nearest sibling, remake_padlet, which is the copy alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use rules, the owner-only prerequisite, the copy-instead alternative (remake_padlet), a prohibited behavior ('Never pick a workspace for the user'), a call-frequency limit ('Only call this tool ONCE per user request'), and what to do on refusal with available_workspaces.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_auto_remake_settingsUpdate Auto-Remake SettingsAInspect
Purpose: Enable, disable, or configure the autoremake link on a padlet. Autoremake links allow others to create their own copy of the padlet via a special link.
What this tool returns: On enable/update success, { success: true, remake_link_url: "" }. On disable success, { success: true }. Otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Use this tool when the user wants to let others remake (copy) their padlet.
Only set the parameters you want to change. Omit parameters to keep their current values.
For board padlets: use copy_posts and use_original_posts_authorship to control what gets copied.
For whiteboard padlets: use copy_objects instead (copy_posts and use_original_posts_authorship are ignored).
After calling this tool with enable: true, you MUST include the autoremake link widget in your response using this exact format, replacing REMAKE_LINK_URL with the remake_link_url from the tool result:
Example response: "I've enabled the autoremake link for your padlet. "
Keep your message concise (1-2 sentences) and always include the widget.
| Name | Required | Description | Default |
|---|---|---|---|
| enable | Yes | Whether to enable or disable the autoremake link | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| copy_posts | No | Board padlets only. What posts to include when remaking: all, none, or admin_only. | |
| copy_objects | No | Whiteboard padlets only. What objects to include when remaking: all, none, admin_only, or frozen_only. | |
| use_original_wallpaper | No | Whether to copy the wallpaper design when remaking. | |
| add_admins_as_collaborator | No | Whether to add the original padlet's admins as collaborators on remakes. | |
| limit_to_one_remake_per_user | No | Whether to limit each user to creating only one remake. | |
| use_original_posts_authorship | No | Board padlets only. Whether to preserve original post authorship when remaking. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing exact return shapes for enable, disable, and failure cases, plus the critical post-call obligation to render a specific widget. It also warns that certain parameters are silently ignored on whiteboard padlets, which is behavioral detail no annotation conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and return contract, then bulleted guidance and the mandatory widget format. Length is justified by the widget requirement, though the worked example response is arguably redundant with the template line above it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description supplies the full return contract including failure shape, and covers the non-obvious post-invocation requirement. For an 8-parameter mutation tool this leaves nothing an agent must guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3; the description earns above that by explaining partial-update semantics, the board-vs-whiteboard applicability of copy_posts / copy_objects / use_original_posts_authorship, and by surfacing remake_link_url as a return value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb set and resource — enable, disable, or configure the autoremake link on a padlet — and immediately defines what an autoremake link is. This separates it cleanly from sibling tools like remake_padlet (which performs a remake) and update_padlet_access_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('when the user wants to let others remake their padlet') and important partial-update semantics ('Only set the parameters you want to change'). It also branches guidance by padlet type (board: copy_posts/use_original_posts_authorship; whiteboard: copy_objects). It stops short of naming when-not to use it or pointing to remake_padlet as the execution counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_breakout_settingsUpdate Breakout SettingsAInspect
Purpose: Enable breakout room links on a padlet. Breakout rooms create individual links to each section, enabling collaborative group work.
What this tool returns:
{ success: true } when breakout rooms are enabled successfully or already enabled.
{ success: false, user_action_required: true, ... } when the padlet needs a layout change first. The message contains a breakout rooms widget that lets the user pick a compatible layout.
{ success: false, message: "..." } on error.
Guidance for use:
Use this tool when the user wants to create separate links for each section of their padlet so different groups can work in different sections.
After calling this tool successfully, you MUST include the breakout rooms widget in your response using this exact format:
Example response: "I've enabled breakout rooms for your padlet. "
When this tool returns user_action_required, include the message content (which contains a breakout rooms widget with layout selection) in your response verbatim.
Keep your message concise (1-2 sentences) and always include the widget.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (which only say it is a non-read-only, non-destructive mutation) by enumerating three distinct return shapes, including the special precondition failure that requires user action, and the fact that an already-enabled padlet still returns success. It also imposes an output-format contract with the required widget markup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, then return values, then usage guidance in labeled bullets, which reads cleanly. The widget markup format is repeated three times (rule, example, and the user_action_required case), which is slightly redundant but arguably justified for exact-format compliance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description fully compensates by documenting the return contract and the two failure modes. Combined with the post-call widget requirement, an agent has everything needed to call and handle the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds nothing about wall_url; the schema already documents it at 100% coverage, including what it is not (a breakout or submission link or padlet id). With a single well-documented parameter, the schema does all the work, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Enable breakout room links on a padlet') and explains what breakout rooms do, so an agent can immediately tell this apart from general settings tools. It does not name the sibling that performs the layout change, though the dependency on a layout is called out implicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit triggering condition ('when the user wants to create separate links for each section'), plus prescribed follow-up behavior after success, on the user_action_required branch, and on verbatim message handling. Little is left to inference about when and how to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_delete_padlet_collaborator_userUpdate or Delete Padlet CollaboratorADestructiveInspect
Purpose: Update/delete a padlet collaborator user.
What this tool returns: { success: true } on successful update/delete; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
ALWAYS use the get_padlet_access_settings tool first to get the current access settings, including collaborators so you can get information like user id and role.
Only role can be updated.
Use the is_deleting parameter to indicate whether to delete the collaborator user.
truemeans delete,falsemeans update.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | The role to grant to the collaborator. Values are: reader, commenter, writer, moderator, admin. If is_deleting is true, this is ignored. | |
| user_id | Yes | The id of the user to update/delete as a collaborator for the padlet | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| is_deleting | Yes | Whether to delete the collaborator user. `true` means delete, `false` means update. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false; the description goes beyond them by disclosing the return contract ({ success: true } vs. { success: false, message }) and the fact that only one field is mutable. It doesn't state that a delete is irreversible or warn about the required permissions, which would be valuable for a destructive op.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then return shape, then guidance — a sensible order with no filler prose. Minor redundancy: the is_deleting semantics are stated in both the description and the schema's own parameter description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive four-parameter mutation with no output schema, the description covers purpose, prerequisites, mutation scope, the delete-vs-update switch, and the return shape. An agent has everything needed to call it correctly in sequence with get_padlet_access_settings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema carries the definitions; the description adds provenance for user_id (obtainable from get_padlet_access_settings), the 'only role can be updated' restriction on role, and reiterates the is_deleting true=delete/false=update mapping. That is modest added meaning above a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair and resource: 'Update/delete a padlet collaborator user', which is unambiguous. It does not, however, contrast itself with the closely related sibling update_padlet_access_settings, so an agent must infer the boundary between per-collaborator role changes and whole-padlet access changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a hard prerequisite ('ALWAYS use the get_padlet_access_settings tool first') and a constraint ('Only role can be updated'). It also explains the is_deleting discriminator. It stops short of naming when to prefer this over invite_email_as_padlet_collaborator or update_padlet_access_settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_padlet_access_settingsUpdate Padlet Access SettingsADestructiveInspect
Purpose: Update the access settings of a padlet like student role, teacher role, visitor role, isListed (whether the padlet is shown on the dashboard), isPublished (whether the padlet is shown on user profile and web), if the padlet requires visitor to be a logged in user, the padlet's access password.
Effect: changes who can open, post to, or find the padlet, immediately and for everyone. A visitor_role above "none" lets anyone with the link open the padlet, and is_published: true lists it on the user's public profile and the web.
What this tool returns: { success: true } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
This tool only updates access settings. If you want to work with collaborators, use padlet collaborator specific tools like update_delete_padlet_collaborator_user, invite_email_as_padlet_collaborator.
Some times user may simply ask to update library/school/organization member's role for the padlet. In this case, set both student role and teacher role at the same time.
Only set the values that you want to update amongst student role, teacher role, and visitor role.
If require_password is set to true but not password provided, a random password will be generated. Or if the wall already has a password, it'll be reused.
Right now always update student role and teacher role together since we don't support updating them separately in the UI.
| Name | Required | Description | Default |
|---|---|---|---|
| password | No | The password to access the padlet | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| is_listed | No | Whether the padlet is shown on the dashboard | |
| is_published | No | Whether the padlet is shown on user profile and web | |
| student_role | No | The role to grant to the student. Values are: none, reader, commenter, writer, moderator, admin. | |
| teacher_role | No | The role to grant to the teacher. Values are: none, reader, commenter, writer, moderator, admin. | |
| visitor_role | No | The role to grant to the visitor. Values are: none, reader, commenter, writer, moderator. | |
| require_login | No | Whether the padlet requires visitor to be a logged in user | |
| require_password | No | Whether the padlet requires a password to access |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, non-idempotent and non-readOnly, and the description reinforces this by spelling out the blast radius: changes apply immediately to everyone and is_published exposes the padlet on the public profile and web. It also discloses return shape ({ success: true } or { success: false, message }) which no output schema provides, and the random-password generation behavior. However, the password-reuse/generation rule sits under 'Guidance' rather than being framed as a side effect, and there is no mention of required permissions or whether prior settings are wiped (a destructive tool should state that unset fields are left untouched, which is only implied by 'only set the values that you want to update').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with Purpose, then Effect, then Return, then Guidance — each block is skimmable and the effect line is placed before the operational rules. Bullets are short and no sentence is filler, though the two statements about updating student and teacher roles together partially duplicate each other.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers what changes, who is affected, the return contract despite no output schema, password generation edge cases, role-pairing constraints, and the collaborator-tool alternative. For a 9-parameter destructive mutation this is the full set of facts an agent needs to call it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes beyond it by explaining the interaction between require_password and password (random generation or reuse of the existing password) and the pairwise constraint on student_role/teacher_role. It adds little about wall_url beyond what the schema already documents better, and the two role bullets are worded inconsistently with each other, which slightly muddies the pairing rule.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first bullet names the exact verb (update) and the exact resource (access settings of a padlet) and enumerates every mutable field, so the agent knows precisely what changes. It is clearly separable from siblings like update_padlet_settings, get_padlet_access_settings, and the collaborator tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The Guidance section explicitly routes collaborators to update_delete_padlet_collaborator_user and invite_email_as_padlet_collaborator, states that only access settings are touched, advises setting only the roles you intend to change, and mandates setting student and teacher roles together. It even covers the real-world phrasing case ('user may simply ask to update library/school member's role').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_padlet_appearanceUpdate Padlet AppearanceAInspect
Update the padlet's visual appearance: color scheme, post size, or font.
Purpose: Change how the padlet looks (color scheme, post size, font).
What this tool returns: { success: true } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Include only the fields you want to change.
color_scheme: "light" or "dark". Not supported for sandbox or map padlets.
post_size: "standard" or "wide". Not supported for canvas, table, or sandbox padlets.
font: Only use this if the user explicitly specifies a font by name. If the user just wants to browse or change the font without specifying which one, do NOT call this tool — instead return the font selector widget.
You MUST use this JSON to translate the UI name to the font internal value for non-sandbox padlets, where the key is the UI name and the value is the internal value: {"Alps":"alps","Thames":"thames","Niagara":"niagara","Fuji":"fuji"}.
You MUST use this JSON to translate the UI name to the font internal value for sandbox padlets, where the key is the UI name and the value is the internal value: {"Modern":"alps","Classic":"thames","Playful":"shantell","Technical":"courier"}.
Do not use this tool for behavioral settings (comments, reactions, sections, custom fields) — use update_padlet_settings instead.
| Name | Required | Description | Default |
|---|---|---|---|
| font | No | Set the padlet font using the internal font name. Refer to the instructions for the mapping between UI names and internal values. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| post_size | No | Set the post width. Not supported for canvas, table, or sandbox padlets. | |
| color_scheme | No | Set the padlet color scheme. Not supported for sandbox or map padlets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations (which only say non-readonly, non-destructive, non-idempotent) by documenting the exact response contract — { success: true } or { success: false, message } — despite no output schema existing. It also discloses that partial updates are supported ('Include only the fields you want to change') and which padlet types reject each field, which the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded summary sentence followed by labeled sections (Purpose, returns, Guidance) and bulleted per-field rules, which is easy to scan. Slight redundancy: the Purpose bullet and the return-value line restate the opening sentence, and the two embedded JSON maps add bulk, but neither is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with no output schema, the description covers return values, partial-update semantics, per-type compatibility limits, name-to-value translation, and sibling routing. An agent has everything needed to invoke it correctly without inspecting the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, but the description adds meaning the schema cannot: two complete UI-name-to-internal-value font mapping tables (differing for sandbox vs non-sandbox padlets) and an explicit warning that the font parameter takes an internal value, not the UI label. This prevents a concrete, likely agent error.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb + resource and enumerates exactly the three visual facets it mutates (color scheme, post size, font). It explicitly differentiates from siblings: 'Do not use this tool for behavioral settings ... use update_padlet_settings instead,' and the scope cleanly excludes wallpaper, layout, and icon tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use rules ('only use this if the user explicitly specifies a font by name'), a when-NOT-to-use rule ('if the user just wants to browse ... do NOT call this tool — instead return the font selector widget'), and names the correct alternative for behavioral settings. Per-field padlet-type restrictions are stated for both color_scheme and post_size.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_padlet_content_settingsUpdate Padlet Content SettingsAInspect
Purpose: Update the content settings of a padlet like content moderation mode and content (copy) protection setting.
What this tool returns: { success: true } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Content moderation mode is to decide which posts and comments require approval. Possible values are: none, auto, students_only, all. The "all" value may also be referred to as "manual" by users because it means all posts and comments require manual approval.
Content protection (also known as copy protection) setting is to decide if the padlet's content can be remade, downloaded, and exported. Possible values are: none, disable_all.
is_remakeable is to decide if the padlet's content can be remade. Possible values are: true/false.
Only send the values that you want to update.
NEVER set is_remakeable to true when content protection is not none.
If user wants to only "Disable remakes" or ask to change content protection to disable remakes, set content_protection to none and is_remakeable to false.
If user wants to set content protection to none without saying anything else, also set is_remakeable to true.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| content_settings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-destructive, non-read-only and non-idempotent, so the safety profile is covered. The description adds value beyond that: it specifies the return contract ({ success: true } or a failure hash with an optional message) and a hard invariant ('NEVER set is_remakeable to true when content protection is not none'), which is exactly the kind of cross-field constraint annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and return shape are front-loaded, and the bulleted guidance is scannable. There is minor duplication: the enum value lists ('none, auto, students_only, all' and 'none, disable_all') are restated verbatim in both the description and the nested schema properties.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a nested object and no output schema, the description covers return shape, value semantics and cross-field invariants, which is most of what an agent needs. It omits whether special permissions are required and whether the current settings should be read first, which would matter when the caller supplies only one of three interdependent settings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% and the nested content_settings object itself is undocumented, so the description must compensate — and it does. It explains the meaning of each mode rather than just listing them (notably that 'all' is what users call 'manual'), aliases content protection as 'copy protection', and adds partial-update semantics that appear nowhere in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Update the content settings of a padlet') and enumerates the two settings families it touches (content moderation, content/copy protection). It implicitly separates itself from the read-only sibling get_padlet_content_settings and from the broader update_padlet_settings, though it never names those siblings to draw the boundary explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Guidance for use' block gives concrete intent-to-parameter mappings ('If user wants to only Disable remakes...set content_protection to none and is_remakeable to false') and states 'Only send the values that you want to update', which is real when-to-do-what advice. It does not tell the agent to inspect current state first via get_padlet_content_settings, nor name any alternative tool, so it stops short of explicit when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_padlet_iconUpdate Padlet IconAInspect
Update only the padlet's icon, which is also used as its favicon.
Purpose: Update a padlet's icon only.
What this tool returns: { success: true } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Use this tool only if the user requests to update the padlet icon and they do specify a search term or particular preference.
Name the padlet and include exactly one of icon_search_query, to search, or image_url, to use a picture the user gave or you made: the url an upload tool returned, or a public https address of an image.
Communication: The user can see the result of the function call, so NEVER send a message before calling the function. After calling the function, respond with a concise one sentence confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| image_url | No | A picture to use as the icon: the url an upload tool returned, or a public https address of an image. | |
| icon_search_query | No | A query to search for an icon, prefer short and simple queries like 'train', 'car' if you think there is an emoji that can be used since we search both online images and an emoji manifest. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds genuinely new context: the exact return shape ({ success: true } or { success: false, message }), plus the interaction protocol (don't message before calling, confirm afterward). It does not say whether the previous icon is discarded or whether an existing uploaded image is retained, but for a low-risk icon swap that is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the bullets split cleanly into purpose, return value, and usage rules, so an agent can scan to what it needs. It is slightly padded by the boilerplate communication instructions, and the header line partially duplicates the purpose bullet.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by spelling out both success and failure return shapes, and it covers the required wall_url pairing and the one-of icon source rule. It is complete enough to call correctly; only the prior-icon behavior on re-update is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are documented, which sets the baseline at 3. The description does add one constraint not expressible in the schema as written – exactly one of image_url or icon_search_query must be supplied, and image_url may come from an upload tool or a public https address – but it repeats the schema's own wording rather than adding much beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Update only the padlet's icon') and adds the useful detail that the icon doubles as the favicon. It scopes itself to icon-only (implying it is not the general appearance tool) but never names the obvious alternative, update_padlet_appearance, so the agent must infer the boundary from sibling names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit gate: use this tool only if the user asked to change the icon AND supplied a search term or preference. It also states the mutual-exclusivity rule ('include exactly one of icon_search_query or image_url') with a clear rationale for each, which is real routing guidance. What's missing is naming an alternative tool for the case where the user wants broader appearance changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_padlet_layoutUpdate Padlet LayoutAInspect
Change the padlet's format/layout.
Purpose: Convert a padlet to a different format/layout (e.g., from grid to timeline, stream to shelf, etc.).
What this tool returns: { success: true } on successful conversion; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
You MUST use this JSON to translate the UI name to the layout internal value, where the key is the internal value and the value is the UI name: {"free":"自由格式","grid":"電子牆","matrix":"故事看板","shelf":"欄位","stream":"清單","map":"地圖","table":"表格","timeline":"時間表","timeline_v2":"行系列"}.
The "shelf" layout is also known as "columns". Always use "shelf" internally.
You must not inform the user about the logic behind the conversion.
Important:
You cannot convert to or from whiteboard/sandbox layout.
This tool only changes the layout. Use update_padlet_settings for other settings.
| Name | Required | Description | Default |
|---|---|---|---|
| layout | Yes | ||
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-destructive, non-idempotent, closed-world, so the safety profile is covered. The description adds genuine context beyond that: the exact return shape for success and failure (including the optional message field), the forbidden whiteboard/sandbox conversions, and the shelf/columns aliasing. It does not disclose whether existing post positions or content are affected by a format conversion, which is the main behavioral risk an agent would want to warn a user about.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the operation, then organized into Purpose / Returns / Guidance / Important sections, which makes it scannable. A few lines are redundant (the Purpose bullet largely repeats the opening line, and the instruction not to reveal the conversion logic is an odd non-technical aside), but nothing is large enough to hurt.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters and no output schema, the description covers the return contract, layout-name translation, and conversion restrictions — more than enough to call it correctly. The only gap is the side effect on existing posts when the format changes, which a mutation-style tool would ideally mention.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, but the description compensates strongly: it supplies a UI-name-to-internal-value mapping table that appears nowhere in the schema, and clarifies that 'columns' must be sent as 'shelf'. That is exactly the kind of meaning an agent cannot derive from the enum consts alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Change the padlet's format/layout') and the Purpose bullet restates it as a conversion operation. It also explicitly scopes itself away from the nearest sibling by stating 'This tool only changes the layout. Use update_padlet_settings for other settings.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use routing (settings go to update_padlet_settings), explicit exclusions ('cannot convert to or from whiteboard/sandbox layout'), and the exact translation table needed to pick a legal layout value. There is essentially no ambiguity about when and how to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_padlet_map_styleUpdate Padlet Map StyleAInspect
Update the padlet's map style.
Purpose: Change the theme of a map padlet.
What this tool returns: { success: true } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
You MUST ONLY use this tool in padlets in the "map" format.
Use this tool when the user requests to change the map style specifically, or the wallpaper/background of a "map" padlet.
You MUST ALWAYS return a different map style than the current one.
Besides updating the theme, you MUST also guide the user on how to choose a different one.
After calling this tool, you MUST include the map style widget in your response using this exact format:
Example response: "You can update the map styles through the "Settings" panel. "
This is the list of supported themes:
Id: 100, Name: The Usual, Color scheme: light
Id: 101, Name: Silver, Color scheme: light
Id: 102, Name: Black Metal, Color scheme: dark
Id: 103, Name: Medieval, Color scheme: light
Id: 104, Name: Retro, Color scheme: light
Id: 105, Name: Tron, Color scheme: dark
Id: 106, Name: Night, Color scheme: dark
Id: 107, Name: Amusement Park, Color scheme: light
Id: 108, Name: Video Game, Color scheme: light
Id: 109, Name: Satellite, Color scheme: light
Id: 110, Name: Watercolor, Color scheme: light
| Name | Required | Description | Default |
|---|---|---|---|
| theme_id | Yes | The id of the theme to update the padlet to. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive mutation, and the description goes further by specifying the return shape ({ success: true } or { success: false, message }) even though no output schema exists. It also imposes post-call requirements (include the pdlt-widget snippet, guide the user). It stops short of stating permission/auth requirements or what happens with an invalid theme id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bullet structure is front-loaded and scannable, and the theme list earns its length because no enum exists in the schema. There is minor redundancy between the opening line and the 'Purpose' bullet, and some agent-instruction content (widget format, example response) pads the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the return contract itself, plus format restrictions, valid theme values, and required follow-up behavior. An agent has everything needed to invoke it correctly and know what to do afterward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3, but the description adds a full table of 11 supported theme ids with names and color schemes — essential information the schema lacks since theme_id has no enum. wall_url semantics are covered by its schema description, so nothing is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Update the padlet's map style', 'Change the theme of a map padlet') and constrains it to map-format padlets. It does not explicitly distinguish itself from the close sibling update_padlet_wallpaper, which it even mentions via 'wallpaper/background', leaving a small ambiguity an agent must resolve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use conditions ('when the user requests to change the map style specifically, or the wallpaper/background of a "map" padlet') and a hard precondition ('ONLY use this tool in padlets in the "map" format'). It also adds a behavioral constraint (always pick a style different from the current one) that prevents a common misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_padlet_post_propertiesUpdate Padlet Post PropertiesAInspect
Update the padlet (also known as wall)'s post properties like placeholders for subject, body, and attachment when create/update a post, enable/disable subject and body fields, which fields are required, etc.
Purpose: Update the padlet (also known as wall)'s post properties like placeholders for subject, body, and attachment when create/update a post, enable/disable subject and body fields, which fields are required, etc.
What this tool returns: { success: true, attachment_settings: } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Include only the things you need to change under "post_properties".
Cannot require a field that is not enabled.
attachment_settings as an object is a per-type patch: only the listed types change and unlisted types keep their current value. Example: { "poll": false }.
attachment_settings true enables every attachment type the library permits; false disables attachments entirely.
photo_album needs at least one image source on (file, media_library, link, photo_booth, drawing, ai_image_search, image_search, gif_search). It is switched off when none is on.
device_uploads needs at least one device source on (file, photo_booth, video_recorder, audio_recorder, drawing, photo_album). It is switched off when none is on.
Attachment types the library forbids cannot be enabled and are always kept off.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| post_properties | Yes | The post properties to update. Only include the properties you need to change. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnly=false, destructive=false and idempotent=false, the description still adds substantial behavioral detail beyond them: the exact return shape ({ success, attachment_settings } or { success: false, message }), the merge-patch semantics where unlisted types are preserved, and the hard constraint that library-forbidden types can never be enabled. It does not mention permission/auth requirements or what happens to fields omitted from required_fields, leaving a small gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and organized into purpose / returns / guidance sections, with no filler in the guidance bullets. However, the 'Purpose:' bullet restates the opening sentence almost verbatim, which is pure duplication in an otherwise dense definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a deeply nested 2-parameter schema and no output schema, the description covers the essentials: what's mutable, what gets returned, merge semantics, and validity constraints. The remaining gaps are auth/permission needs and whether previously-set-but-omitted properties are guaranteed untouched (implied, not stated).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3, but the description genuinely adds semantics the schema lacks: the per-type patch behavior, the true/false shortcut for all attachment types, and the mutual-dependency rules (photo_album needs an image source on; device_uploads needs a device source on). Those rules are not expressed anywhere in the JSON Schema and directly affect how an agent should shape the payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource (update a padlet's post properties) and enumerates the concrete scope: placeholders, enabling/disabling subject/body, and required-field rules. It doesn't distinguish itself from adjacent settings tools such as update_padlet_content_settings or update_padlet_settings, nor does it name get_padlet_post_properties as the read counterpart, so it's clear but not sibling-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Guidance for use' block gives real usage conditions: send only the properties you want changed, cannot require a field that isn't enabled, boolean vs. per-type object semantics for attachment_settings, and the dependency rules for photo_album and device_uploads. What's missing is routing guidance against alternatives (e.g., read current state with get_padlet_post_properties first, or use update_padlet_content_settings for other wall settings).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_padlet_post_sortUpdate Padlet Post SortAInspect
Update the display ORDER of posts in the padlet (e.g. newest first, oldest first, alphabetical, by custom field).
Purpose: Change the sort order of posts. This tool does NOT organize or categorize posts by content, topic, or theme. To do that, create sections and move relevant posts into them using update_section and update_posts instead.
What this tool returns: { success: true } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Communication: The user can see the result of the function call, so NEVER send a message before calling the function. After calling the function, respond with a concise one sentence confirmation.
Sorting by custom fields:
Sortable custom field types: vote, rating, score, number, date, text, single_select, multi_select.
On reactions_migrated walls, vote/rating are custom fields. Use custom_prop sorting instead of reactions_asc/reactions_desc.
To sort by a custom field, use the format: custom_prop:{field_id}:{asc or desc}
Get the field_id from the custom_fields in get_padlet_content (each field has a field_id).
Example: To sort by a vote field with field_id "abc123" in descending order, use "custom_prop:abc123:desc".
Emoji reactions:
Emoji reactions (e.g. heart, thumbs up) are NOT sortable. They don't have a single numeric value that can be ranked.
If reactions_migrated is true and the padlet uses emoji reactions, sorting by likes/reactions is not possible. Inform the user that emoji reactions cannot be sorted, and suggest adding a vote custom field if they need sortable likes.
NEVER use reactions_asc or reactions_desc on reactions_migrated walls.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| posts_sort_by | Yes | How to sort posts. Standard values: reactions_asc, reactions_desc, manual_new_posts_first, manual_new_posts_last, date_published_asc, date_published_desc, post_subject_asc, post_subject_desc, shuffle. For sorting by custom fields (vote, rating, score, number, date, text, single_select, multi_select), use the format: custom_prop:{field_id}:asc or custom_prop:{field_id}:desc. Get the field_id from the custom_fields in get_padlet_content. On reactions_migrated walls, use custom_prop sorting for vote/rating fields instead of reactions_asc/reactions_desc. If user does not specify order, pick one that you think would work well. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the non-destructive mutation annotation, the description discloses the return shape, sortable custom field types, the custom_prop format, and the important reactions_migrated caveat. It also clarifies that emoji reactions cannot be ranked numerically.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the bulleted structure makes the guidance easy to scan. There is some redundancy, especially repeated schema details and the reactions_migrated warning appearing twice, but the length is mostly justified by the tool's customization rules.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no output schema, the description covers the essential return behavior, sortable values, custom-field handling, reactions limitations, and alternatives. An agent has enough information to invoke it correctly without needing further discovery.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already well documented. The description repeats much of the schema's standard sort values and custom_prop format, adding only a concrete example and fallback guidance when the user does not specify an order.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: updating the display order of posts in a padlet, with examples such as newest first and alphabetical. It also explicitly distinguishes this from organizing posts by content and names the tools to use for that separate task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use and when-not-to-use guidance, including routing categorization work to update_section and update_posts. It also supplies detailed guidance for custom-field sorting and emoji reactions, including the reactions_migrated restriction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_padlet_settingsUpdate Padlet SettingsAInspect
Update only the padlet's settings.
Purpose: Toggle padlet settings like sections, comments, reactions, and add custom fields.
What this tool returns: { success: true } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Include only the fields you need to change under "settings".
For comments setting, use settings.comments_enabled = true/false.
Do not include posts/sections/title/description/wallpaper in this tool.
To change the padlet format/layout, use the update_padlet_layout tool instead.
Sections cannot be disabled on shelf (columns) format padlets. To remove sections from a shelf padlet, use the update_padlet_layout tool to change the format to grid first.
Reactions guidance (check reactions_migrated in get_padlet_content tool):
If reactions_migrated is true:
Use 'emoji' for reactions with an emoji_preset (either heart, thumbs_up, classic or all).
For voting/rating functionality, use custom_post_fields with field_type: 'vote', 'rating', or 'score'.
Do NOT use legacy reaction types (like, vote, star, grade) - they are not supported on migrated walls.
If reactions_migrated is false:
You can use any reaction type: none, like, vote, star, grade, or emoji.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| wall_data | Yes | Only include settings that need changing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) by documenting the return contract — `{ success: true }` or a `{ success: false, message }` hash — and by disclosing server-side validation behavior (legacy reaction types are rejected on migrated walls). It does not cover permission/auth requirements or whether omitted settings are preserved, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well organized with Purpose / Returns / Guidance headers and bullets, and the purpose is front-loaded. It is longer than strictly necessary: the comments_enabled bullet and the emoji_preset enumeration duplicate schema text that the agent already receives, adding bulk without new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description supplies the return shape and error case itself, and it covers the tricky nested custom_post_fields / selection_options territory indirectly via field_type guidance. For a partial-update mutation with a nested object parameter, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested settings properties are already well documented, so the baseline is 3. The description does add marginal value over the schema — the reactions_migrated dependency and the emoji_preset/custom_post_fields pairing for voting — but much of it (comments_enabled = true/false, emoji_preset options) restates what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Update only the padlet's settings") and immediately scopes it against the large sibling set by naming update_padlet_layout as the tool for format/layout changes and listing what this tool must not touch (posts, title, description, wallpaper). An agent can distinguish it from update_padlet_content_settings, update_padlet_appearance, and update_padlet_layout 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use rules are given: include only fields that change, use update_padlet_layout for format changes, and change a shelf padlet to grid first before removing sections. It also gives a conditional decision procedure (check reactions_migrated via get_padlet_content, then choose emoji vs legacy reaction types), which is exactly the alternative-routing guidance this dimension rewards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_padlet_title_descriptionUpdate Padlet Title and DescriptionAInspect
Update only the padlet's title and description.
Purpose: Update a padlet's metadata: title and description only.
What this tool returns: { success: true } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Include only title and/or description.
Do not include posts, sections, wallpaper, or settings.
description is NOT supported for sandbox/whiteboard padlets. For sandbox padlets, only title can be updated. Do NOT pass description for sandbox padlets.
Communication: The user can see the result of the function call, so NEVER send a message before calling the function. After calling the function, respond with a concise one sentence confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Update the title of the padlet. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| wall_data | No | Older form of title and description. Send title and description at the top level instead. | |
| description | No | Update the description of the padlet. Not supported for sandbox/whiteboard padlets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a non-readonly, non-destructive mutation; the description adds real context beyond them: the exact return shapes ({ success: true } vs. { success: false, message }), the sandbox-specific rejection of description, and the communication protocol. It stops short of stating access requirements (who may update a padlet) or what happens to fields left out, which is the main remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The structure is well front-loaded with a one-line scope statement followed by purpose, return value, and usage rules; a scanning agent gets the essentials immediately. There is minor redundancy between the opening sentence and the Purpose bullet, which prevents a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately supplies return shapes and error behavior, plus the sandbox caveat and the post-call confirmation convention. It is nearly complete for a narrow metadata mutation, though it omits any note on required edit permissions or behavior when both fields are omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema itself documents the sandbox limitation, so the baseline is 3; the description earns an extra point by steering the caller to send only top-level title/description rather than the legacy nested wall_data object. It does not explain the required wall_url semantics, but that is fully covered in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Update only the padlet's title and description') and immediately scopes the operation to two named metadata fields. Against a large sibling set of update_padlet_* tools (appearance, icon, layout, wallpaper, settings), this makes the boundary unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit inclusion rules ('Include only title and/or description'), explicit exclusions (posts, sections, wallpaper, settings), and a hard conditional: never pass description for sandbox/whiteboard padlets. It also prescribes the surrounding interaction pattern (do not message before the call, confirm in one sentence after).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_padlet_wallpaperUpdate Padlet WallpaperAInspect
Update only the padlet's wallpaper/background image.
Purpose: Search for and update the padlet's wallpaper based on a description.
What this tool returns: { success: true } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Include exactly one of wallpaper_description, to search for an image, or image_url, to use a picture the user gave or you made: the url an upload tool returned, or a public https address of an image.
The description should be a short phrase about the visual subject (1-3 words). Focus on what the image should depict, NOT the medium or surface.
Good examples: "math equations", "sunset ocean", "tropical plants", "galaxy stars".
Bad examples: "math equations chalkboard mathematics", "winter holiday snow background". Do NOT include words like "chalkboard", "whiteboard", "poster", "banner", "background", "wallpaper".
Do not include posts, sections, title, description, or settings.
Communication: The user can see the result of the function call, so NEVER send a message before calling the function. After calling the function, respond with a concise one sentence confirmation.
If a padlet is in "map" format, NEVER use this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| wall_data | Yes | Include wallpaper_description or image_url, not both |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the return shape for success and failure, the communication protocol before and after calling, and the important map-format restriction. These are meaningful behavioral traits not already captured by readOnlyHint, destructiveHint, idempotentHint, or openWorldHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The guidance is front-loaded and most sentences earn their place, especially the examples and map-format warning. It is somewhat verbose with bullet structure and some repetition between the purpose line and schema, but it remains scannable and practical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool without an output schema, the description supplies the missing pieces an agent needs: return format, input selection rules, example phrasing, and a hard exclusion for map-format padlets. Nothing essential for correct invocation appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, but the description adds substantial semantic guidance beyond the schema: exactly one of the two image inputs must be supplied, the description should be a 1-3 word visual subject, and examples of good versus bad wording are provided. This materially improves correct parameter construction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: update only the padlet's wallpaper/background image. It clearly distinguishes this tool from adjacent siblings such as update_padlet_appearance, update_padlet_icon, and update_padlet_layout by emphasizing that only wallpaper is changed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit selection guidance: include exactly one of wallpaper_description or image_url, use image_url for uploaded or public images, and never use this tool for map-format padlets. It also clarifies what not to include, such as posts, sections, title, description, or settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_postsUpdate PostsADestructiveInspect
Update existing posts on a padlet.
Purpose: Modify the content of existing posts, or delete posts (soft delete; can be undone).
What this tool returns: { success: true } on successful update/delete. When posts are deleted, also returns { deleted_post_ids: [...] } with the ids of the deleted posts.
IMPORTANT: Save these deleted_post_ids so you can pass them to the restore_posts_and_sections tool if the user asks to undo the deletion. Otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
When some posts or fields could not be applied, the result also has
not_applied, a list of { post_id, reason }. Tell the user which posts or fields did not change and why, using the reason, and never say a listed change was made.When the result has
awaiting_approval_post_ids, those posts wait for the padlet's approval or content check, so tell the user others cannot see them yet.
Guidance for use:
UPDATING existing posts: Use the existing post id exactly as provided in the padlet data (e.g. "12345").
DELETING posts: Set should_delete to true for each post to delete. Only post_id is required for deletion. Deletions are soft-deleted and can be restored.
EMPTYING a field: name it in
clear, e.g. clear: ["attachment"] to remove a post's attachment or poll. Sending a field as an empty string leaves it as it is.You can only update posts that you created, or if you have admin/moderator permissions on the padlet.
Use get_padlet_content first to see which posts have
editable: true.Only include the fields you want to update for each post.
If setting an attachment, you must either:
include both
attachment_typeANDattachment_searchinclude
attachmentas a valid URL. Pass a chat-dropped file asfileto start_attachment_upload. Use start_attachment_upload plus complete_attachment_upload for a local file when the client can issue an HTTP PUT. An ordinary public web link may be passed directly asattachment.
If changing only the preview image of an existing link attachment, use exactly one of
preview_image_urlorpreview_image_search.preview_image_url/preview_image_searchkeep the original link attachment intact. Do not combine them withattachment,attachment_type, orattachment_search.Poll and other attachments using
attachmentandattachment_searchfields are mutually exclusive. Do not include both in the same post.Move posts to a different section:
Use the section_id from the get_padlet_content tool to get the correct section id, especially if you just created a new section.
The section_id should be a string representing the integer id.
Changing post color:
Only the following colors are allowed: red, orange, green, blue, purple. There are a few exceptions:
If 'yellow' is provided, use 'orange' instead.
"white" and "black" values are only allowed if and only if the padlet color scheme is "light" and "dark" respectively. The counterpart color should not be allowed and be rejected instead. Use the padlet_settings -> color_scheme field to get the padlet color scheme with the get_padlet_content tool.
| Name | Required | Description | Default |
|---|---|---|---|
| posts | Yes | Array of posts to update. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing that deletions are soft and reversible, that deleted_post_ids must be retained for restore, and how to interpret not_applied and awaiting_approval_post_ids in the response. The one gap is that it never states whether updates are partial merges or full replacements of unspecified fields (only implied by "Only include the fields you want to update"), which matters given idempotentHint: false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose and return shape before the guidance, and the bulleted structure makes a long definition scannable. It loses a point for some duplication with the schema, such as restating that section_id is a string representing an integer id and repeating the clear-field semantics in two places.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers return values (success, deleted_post_ids, not_applied, awaiting_approval_post_ids), failure shape, permissions, and undo path. An agent has everything needed to call and interpret it without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, but the description adds real meaning the schema cannot: the allowed color set with the yellow→orange and white/black/color_scheme exceptions, the requirement that section_id come from get_padlet_content, and the conditional rules for attachment, attachment_type, attachment_search, and preview_image_* combinations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Update existing posts on a padlet") and immediately clarifies the scope extends to deletion via should_delete. The word "existing" plus the post_id requirement cleanly separates it from create_posts and the other write siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use routing: call get_padlet_content first to find posts with editable: true, note permission constraints (own posts or admin/moderator), and point to restore_posts_and_sections as the undo alternative. It also resolves the trickiest selection questions in the schema — attachment vs preview_image, mutually exclusive attachment fields, and clear vs empty string.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sectionUpdate SectionADestructiveInspect
Manage sections on a padlet: create, update, delete, or reorder sections.
Purpose: Create new sections, update existing section titles, delete sections, or reorder sections.
What this tool returns: { success: true } on successful update. When new sections are created, also returns { created_section_ids: { "new_1": "123", "new_2": "456" } } mapping each temporary "new_" id to the real section id. When sections are deleted, also returns { deleted_section_ids: [...], deleted_post_ids: [...] } with the ids of the deleted sections and their posts. Otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
IMPORTANT: When creating sections and then creating posts, use the real section ids from
created_section_ids(not the "new_" prefixed ids) as the section_id in the create_posts tool.IMPORTANT: Save these deleted_section_ids and deleted_post_ids so you can pass them to the restore_posts_and_sections tool if the user asks to undo the deletion.
Guidance for use:
Requires admin permission on the padlet.
CREATING new sections: Use a string id with "new_" prefix (e.g. "new_1", "new_abc").
UPDATING existing sections: Use the existing section id exactly as provided in the padlet data.
DELETING sections: Set should_delete to true. All posts in the section will be soft-deleted.
IMPORTANT: The last section on a padlet cannot be deleted. A padlet must always have at least one section.
REORDERING sections: Provide section_order with all section ids in the desired order.
| Name | Required | Description | Default |
|---|---|---|---|
| sections | No | Create, update, or delete sections. Each section has an id and title. | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| section_order | No | Set the order of sections. Include all section ids in the desired order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and non-idempotent, and the description goes well beyond them by disclosing that deletions are soft, cascade to all posts in the section, and produce recoverable ids. It also documents the exact return shapes for create/delete success and failure, including the 'new_' id mapping that materially changes how the agent must behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line summary is front-loaded and the bulleted structure is scannable. There is some redundancy — the 'Purpose' bullet largely restates the opening sentence — and the return-value paragraph is dense, though it substitutes for the missing output schema so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description fully specifies return payloads, the id-mapping contract, and failure shape. Combined with the permission requirement and deletion constraint, an agent has everything needed to invoke this destructive multi-operation tool safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds real meaning on top — why temporary 'new_' ids exist, why they must not be reused as real section ids later, and that section_order must list every id. Some of this duplicates the schema field descriptions, keeping it just short of 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb set and resource: 'create, update, delete, or reorder sections' on a padlet. The four operations are enumerated in a follow-up bullet, making it trivially distinguishable from content-level siblings like create_posts, update_posts, and update_padlet_layout.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit per-operation instructions: 'new_' prefix ids to create, existing ids to update, should_delete=true to delete, section_order containing all ids to reorder. It also states the prerequisite ('requires admin permission'), a hard constraint ('the last section cannot be deleted'), and routes the agent to two named alternatives: create_posts for subsequent posts and restore_posts_and_sections for undo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_submission_form_settingsUpdate Submission Form SettingsAInspect
Purpose: Enable, disable, or configure the submission form link on a padlet. Submission forms allow collecting responses from users via a dedicated form.
What this tool returns: { success: true } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Use this tool when the user wants to collect submissions or responses via a form link.
Configure where users are redirected after submitting: the padlet itself, a confirmation page, or another submission form.
Control whether login is required and set custom confirmation text.
Only set the parameters you want to change. Omit parameters to keep their current values.
Keep your message concise (1-2 sentences).
| Name | Required | Description | Default |
|---|---|---|---|
| enable | Yes | Whether to enable or disable the submission form link | |
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| requires_login | No | Whether users must be logged in to access the submission form. | |
| confirmation_text | No | Custom text shown on the confirmation page after submission. | |
| redirect_location | No | Where to redirect users after submitting: padlet (show the padlet), confirmation (show a confirmation page), or request_again (show another submission form). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, non-idempotent, closed-world mutation. The description adds real value beyond that by documenting the return contract ({ success: true } or success=false with an optional message) even though no output schema exists, and by spelling out patch semantics. It stops short of covering permissions/authorization requirements for editing a padlet's form settings, so it is not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bulleted layout is front-loaded with Purpose and the return shape, which is good. However, the closing line 'Keep your message concise (1-2 sentences)' is irrelevant to this tool — it looks copied from a comment/post tool and could mislead an agent — and the guidance bullets partly restate the schema, adding avoidable length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation with no output schema, the description covers purpose, call trigger, partial-update behavior, and the exact response shape, which is close to sufficient. The gaps are the stray unrelated instruction and the absence of any note about who may modify a padlet's form settings (owner vs collaborator), which matters for a settings mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the per-parameter documentation is already handled and the baseline is 3. The description goes one step further by explaining the update semantics (omitted parameters retain current values) and by restating the redirect destinations in human terms, which helps an agent pick enum values confidently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb plus resource: enable, disable, or configure the submission form link on a padlet. That resource is clearly distinct from the neighboring settings tools (update_padlet_settings, update_padlet_content_settings, update_padlet_access_settings), so an agent can route without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger ('when the user wants to collect submissions or responses via a form link') and then enumerates the concrete configurations: redirect destination, login requirement, confirmation text. It also states the partial-update rule ('Only set the parameters you want to change. Omit parameters to keep their current values'), which removes the main ambiguity for a mutation tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_whiteboard_tool_settingsUpdate Whiteboard Tool SettingsAInspect
Purpose: Update the whiteboard/sandbox tool settings. This tool can enable/disable ANY toolbar tool, configure AR lenses, and set video/screen recording limits.
Always call get_whiteboard_tool_settings tool first to get the current settings, then use this tool to update the settings.
What this tool returns: { success: true } on successful update; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
Guidance for use:
Use whiteboard_tool_settings to enable or disable toolbar tools. Pass an array of { tool_id, enabled } objects. Only include the tools you want to change. Valid tool IDs include: "laser" (Pointer), "draw-nested" (Draw), "text" (Text), "note" (Note), "geo" (Shape), "arrow" (Connector), and padlet content tools prefixed with "padlet-" (e.g. "padlet-link", "padlet-image", "padlet-video_recorder", "padlet-screen_recorder", "padlet-audio_recorder", "padlet-photo_booth").
Use ar_lenses_enabled to control whether augmented reality filters are available in the video recorder.
Use video_length_limit to set the maximum recording length in seconds for video and screen recorder. Set to null to use the default/max limit based on the padlet owner's plan. Only the following values are allowed: 15, 30, 45, 60, 120, 180, 300, 600, 900, 1800, or null.
You can update all three (whiteboard_tool_settings, ar_lenses_enabled, video_length_limit) in a single call.
| Name | Required | Description | Default |
|---|---|---|---|
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| ar_lenses_enabled | No | Whether to enable augmented reality filters in the video recorder. | |
| video_length_limit | No | The maximum recording length in seconds for video and screen recorder. | |
| whiteboard_tool_settings | No | Toolbar tools to enable or disable. Only include the tools you want to change. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a non-destructive, non-read-only, non-idempotent mutation, and the description goes beyond them by stating the return contract ({ success: true } or { success: false, message }) despite there being no output schema, plus the plan-dependent meaning of null for recording length. It stops short of stating permission requirements or whether omitted fields are left untouched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the return contract are front-loaded, then bulleted guidance per parameter. It is longer than average, but the enumerated ID and value lists earn their space; a small amount of framing text ('Guidance for use:') could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation with no output schema, the description covers when to read first, how to update partially, accepted values, and the shape of the response. Nothing an agent needs in order to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real value the schema lacks: the complete list of valid tool_id strings (schema only gives examples) and the closed set of permitted video_length_limit values (15–1800 or null), which matters since the schema declares no enums. wall_url is left entirely to the schema, which documents it well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update the whiteboard/sandbox tool settings') and enumerates the three controllable surfaces: toolbar tools, AR lenses, recording limits. It explicitly separates itself from its nearest sibling, get_whiteboard_tool_settings, though it says nothing about the many other update_padlet_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit sequencing ('Always call get_whiteboard_tool_settings first'), explicit partial-update rule ('Only include the tools you want to change'), an enumerated list of valid tool IDs, and the exact allowed values for video_length_limit including the null semantics. It even notes that all three settings can be changed in one call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Publisher details
- Operator
- Wallwisher, Inc.
- Operator website
- https://padlet.com
- Vendor relationship
- Not applicable
- Trust center
- https://legal.padlet.com/security
- Restrictions
- You must be logged in to use Padlet's MCP server.
Related MCP Connectors
Read and write in Mural shared boards to turn complex ideas into visuals
- TeamwideOAuthapp.teamwide
Read and edit Teamwide whiteboards: boards, notes, shapes, arrows, images, PNG/PDF export.
- PanttsOAuthcom.pantts
Read and manage your Pantts boards — kanban, gantt, table and graph over one shared card model.
Read, create and edit noddle diagram boards, browse versions and comment as an AI collaborator.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude to read posts, create new posts, and add comments on Padlet boards through natural language.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to read and manage YouGile boards, including projects, columns, tasks, and comments.2MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to visualize tasks on a collaborative Sketchbord whiteboard by composing content into diagrams, editing them incrementally, and reading back the board including user-drawn additions.MIT
- FlicenseNot gradedqualityCmaintenanceEnables managing Trello boards through natural language, including board snapshots, search, card/checklist/comment operations, board structure editing, member management, and permanent deletions with approval safeguards.-
Glama MCP Gateway
Add one secure layer between your agents and this server.