Skip to main content
Glama
hermoso-ai

Hermoso

Official

Delete a post from the connected Bluesky account

delete_bluesky_post
DestructiveIdempotent

Delete a Bluesky post permanently after an unconfirmed preview shows its text and counts. Confirm with the post's text to prevent wrong-id deletion. Irreversible.

Instructions

PERMANENTLY delete one of the connected Bluesky account's OWN posts. IRREVERSIBLE — the AT Protocol removes the record from the account's repo, there is no trash and no undelete, and the post's likes, reposts, replies and quotes go with it. Call it WITHOUT confirm first: nothing is deleted, and it reports the post's REAL text and its live like / repost / reply / quote counts read back from Bluesky. Show the user that, get an unambiguous yes, then call again with confirm:true — plus, once the post has ANY engagement, confirmText echoing the post's own text (the first 40 characters is enough; any longer leading run works too). confirmText exists because confirming that you meant to delete SOMETHING does not prove you aimed at the right post, and a wrong id must not be confirmable blind. A brand-new post with nothing on it stays a ONE-call delete. Identify the post by its AT-URI or by just its RECORD KEY — the short id at the end of its bsky.app link, e.g. 3mtc4n3fibn2x. Deleting only ever works on the connected account's own posts; another account's URI is refused. 0 credits. Needs Bluesky connected (Settings ▸ Connectors ▸ Bluesky).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uriYesthe post's AT-URI (at://did:plc:…/app.bsky.feed.post/…) as post_to_bluesky returned it, or just its record key (3mtc4n3fibn2x)
confirmNoREQUIRED true — deletion is permanent and cannot be undone
confirmTextNothe post's own text as the unconfirmed call reported it — the first 40 characters is enough. Required once the post has any likes, reposts, replies or quotes. A post with no text asks for its cid instead.
Behavior5/5

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

The description goes well beyond the destructiveHint annotation by detailing the irreversibility ('no trash and no undelete'), the cascade deletion of likes/reposts/replies/quotes, and the rationale for confirmText as a safety mechanism. It also discloses credit cost and the connection prerequisite, which are not in annotations.

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?

The description is long but every sentence serves a purpose for a destructive operation. It front-loads the critical warning ('PERMANENTLY delete') and then flows logically through the confirmation process, ID formats, and constraints. Some redundancy could be trimmed, but the density is justified.

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?

The description covers identification via AT-URI or record key, the two-step confirmation flow, when confirmText is necessary, ownership restrictions, credit cost, and connectivity requirement. For a complex destructive tool with no output schema, 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all three parameters, but the tool description adds practical guidance: the 40-character threshold for confirmText, the alternative record-key format, and the note that confirm is 'REQUIRED true'. This enriches the schema's bare definitions.

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?

The description opens with 'PERMANENTLY delete one of the connected Bluesky account's OWN posts', stating a specific verb, resource, and ownership constraint. It immediately distinguishes this tool from other platform-specific deletes (delete_x_post, delete_telegram_message, etc.) by referencing the connected account and Bluesky platform.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit two-step workflow: call without confirm first to preview, then call with confirm:true after user approval. It also specifies when confirmText is required (once the post has any engagement). However, it does not explicitly name alternative tools for other platforms, though the platform-specific scope makes the intended use case clear.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hermoso-ai/hermoso'

If you have feedback or need assistance with the MCP directory API, please join our Discord server