Skip to main content
Glama

send_group_sticker

Send one sticker from an installed Signal sticker pack to a Signal group; it renders as a sticker, not a file. Provide group_id and pack/sticker IDs from list_groups and list_sticker_packs.

Instructions

Send one sticker from an installed sticker pack to a Signal group; it renders as a sticker, not a file. Use send_sticker for a single contact, send_group_attachment for ordinary images. group_id: from list_groups. pack_id: hex pack id and sticker_id: integer index within the pack, both from list_sticker_packs; an uninstalled pack or invalid id returns an error — install packs first with add_sticker_pack (signal.art URL). Contacts Signal's servers; not idempotent (repeating sends a duplicate); sends share a 20-per-minute rate limit (calls wait rather than fail). Saved locally as '[sticker pack:id]'. Returns {status, timestamp}.

Input Schema

NameRequiredDescriptionDefault
pack_idYesSticker pack ID (hex string from list_sticker_packs)
group_idYesGroup ID (get from list_groups)
sticker_idYesSticker ID within the pack (from list_sticker_packs)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.1.2
    • changedInput schema / properties / group_id / description
      Previous value: -"Group ID"New value: +"Group ID (get from list_groups)"
    • changedInput schema / properties / pack_id / description
      Previous value: -"Sticker pack ID (hex string)"New value: +"Sticker pack ID (hex string from list_sticker_packs)"
    • changedInput schema / properties / sticker_id / description
      Previous value: -"Sticker ID within the pack"New value: +"Sticker ID within the pack (from list_sticker_packs)"
  2. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare non-readOnly, openWorld, non-idempotent and non-destructive, but the description adds operational detail they don't carry: duplicate sends on repeat, a 20-per-minute shared rate limit where calls wait rather than fail, server contact, and local persistence as '[sticker pack:id]'. This is genuinely additive context beyond the structured hints.

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?

Dense but well front-loaded — the core action and the not-a-file behavior lead, followed by routing, parameter sourcing, side effects, and return shape. Slightly long, but nearly every clause carries distinct information.

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 still gives the return shape {status, timestamp}, plus error conditions, rate-limit behavior, and persistence. For a 3-param mutating tool, an agent has everything needed to call it correctly and predict the outcome.

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% and each param is self-documented, so baseline is 3. The description still adds value: it specifies pack_id is hex, sticker_id is an integer index within the pack, group_id comes from list_groups, and notes that an uninstalled pack or invalid id returns an error rather than silently failing.

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 ('send one sticker from an installed sticker pack to a Signal group') and explicitly disambiguates the outcome ('renders as a sticker, not a file'). It names the closest siblings (send_sticker, send_group_attachment) so an agent can route without opening schemas.

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?

Explicitly routes to send_sticker for single contacts and send_group_attachment for ordinary images, and adds the prerequisite path: install packs first with add_sticker_pack. Both when-to-use and the alternative-selection conditions are stated.

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