Skip to main content
Glama

Update Posts

update_posts
Destructive

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:

    1. include both attachment_type AND attachment_search

    2. include attachment as a valid URL. Pass a chat-dropped file as file to 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 as attachment.

  • If changing only the preview image of an existing link attachment, use exactly one of preview_image_url or preview_image_search.

  • preview_image_url / preview_image_search keep the original link attachment intact. Do not combine them with attachment, attachment_type, or attachment_search.

  • Poll and other attachments using attachment and attachment_search fields 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.

Input Schema

NameRequiredDescriptionDefault
postsYesArray of posts to update.
wall_urlYesThe 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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / posts / items / properties / post_id / pattern
      Added value: +"^\\d+$"
    • addedInput schema / properties / posts / items / properties / section_id / pattern
      Added value: +"^\\d*$"
  2. Changed1 schema field changed
    • changedInput schema / properties / wall_url / description
      Previous value: -"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."New value: +"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."
  3. Changed3 schema fields changed
    • removedInput schema / properties / wall_id
      Removed value: -{
      -  "description": "The id of the wall containing the posts",
      -  "type": "integer"
      -}
    • addedInput schema / properties / wall_url
      Added value: +{
      +  "description": "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.",
      +  "maxLength": 2048,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "wall_id",
      -  "posts"
      -]New value: +[
      +  "wall_url",
      +  "posts"
      +]
  4. First observed

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.