Skip to main content
Glama
hermoso-ai

Hermoso

Official

Delete a post’s Spark-Ads authorization code

delete_tiktok_post_ad_authorization
DestructiveIdempotent

Delete the Spark-Ads authorization code for a TikTok post to prevent new ad creation. Requires confirmation; pause active campaigns or ads using the post first.

Instructions

Delete the Spark-Ads authorization code for a post the authorized account owns. CONFIRM-GATED, and not because it spends: ads already built on the post keep running, but no NEW ad can be built against it until a fresh code exists, and TikTok REFUSES this outright while any campaign or ad using the post is still ACTIVE — pause those first. Calling it without confirm changes nothing and returns the sentence describing exactly what would happen. THE READ-BACK INVERTS: proof of success is that TikTok no longer reports a code for the post, and a code that is still there is reported as not confirmed rather than done. NEEDS THE TIKTOK ACCOUNT AUTHORIZATION (see tiktok_account_status).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemIdYesthe TikTok post id
confirmNoREQUIRED true — call without it first to see exactly what would change
Behavior5/5

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

The description richly exceeds the annotations: it discloses the confirm-gating mechanism and its rationale, the external refusal condition while campaigns are ACTIVE, the dry-run no-op returning the change sentence, and the inverted read-back semantics (success = TikTok no longer reports a code; a still-present code means 'not confirmed'). This is exactly the kind of context annotations cannot convey. It is consistent with idempotentHint and destructiveHint — no contradiction.

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 front-loaded with the core purpose, and every sentence adds distinct information — gating rationale, refusal condition with mitigation, dry-run behavior, read-back inversion, auth prerequisite. The heavy ALL-CAPS emphasis is stylistically noisy, and the confirm warning is somewhat repeated across sentences, but for a destructive tool with external-state quirks 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?

With no output schema, the description correctly bears the burden of explaining return semantics, and it does: the dry-run 'returns the sentence describing exactly what would happen,' and success/failure is defined via the inverted read-back. It also covers prerequisites (pause active campaigns, TikTok account authorization), making the tool fully callable without external lookup.

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 coverage is 100%, so the baseline is 3: itemId is described as 'the TikTok post id' and confirm as 'REQUIRED true — call without it first to see exactly what would change.' The description adds genuine value beyond the schema by explaining what 'without confirm' actually does (returns the sentence, changes nothing) and why confirm is a safety gate, enriching the semantics of the confirm parameter without duplicating the schema.

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 opening sentence states a specific verb and resource — 'Delete the Spark-Ads authorization code for a post the authorized account owns' — making the operation unambiguous even against siblings like set/get/extend_tiktok_post_ad_authorization. The ownership scope ('the authorized account owns') disambiguates which posts are eligible.

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 gives clear operational sequencing: call without confirm first for a dry-run, pause active campaigns/ads before the call, and ensure TikTok account authorization is in place via tiktok_account_status. It does not explicitly route to or exclude the sibling set/extend authorization tools, so it stops short of a full when/when-not comparison.

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