Skip to main content
Glama

send_sticker

Send a single sticker from an installed Signal sticker pack to one contact. Use it for direct sticker replies; install the pack first and specify recipient, pack ID, and sticker ID.

Instructions

Send one sticker from an installed sticker pack to a single contact; it renders as a sticker, not a file. Use send_group_sticker for groups, send_attachment for ordinary images. recipient: E.164 number. 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)
recipientYesPhone number in E.164 format
sticker_idYesSticker ID within the pack (from list_sticker_packs)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.1.2
    • 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 readOnlyHint=false, idempotentHint=false, openWorldHint=true, so the safety profile is covered; the description goes well beyond by disclosing the 20-per-minute shared rate limit and that calls wait rather than fail, that sends contact Signal's servers, how the sticker is saved locally, and the error behavior on invalid pack/id. The non-idempotency restatement adds the concrete consequence (repeating sends a duplicate).

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?

Purpose and sibling routing are front-loaded in the first two clauses, and nearly every clause carries operational information. It is dense with semicolons and repeats parameter facts already at 100% schema coverage, so it is efficient rather than maximally tight.

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 supplies the return shape ({status, timestamp}) and covers prerequisites, rate limiting, error cases, and side effects. Nothing an agent needs to call this 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 coverage is 100%, so the baseline is 3, but the description adds real meaning: recipient must be E.164, pack_id is a hex id and sticker_id an integer index within the pack, both sourced from list_sticker_packs, plus the error semantics for invalid or uninstalled packs. It restates some schema content verbatim, which caps this below 5.

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 (send), resource (sticker from an installed pack), and scope (one sticker, single contact), plus a clarifying contrast that it renders as a sticker rather than a file. It explicitly names the sibling tools it is not (send_group_sticker, send_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 states when to use alternatives: send_group_sticker for groups, send_attachment for ordinary images. It also gives a prerequisite chain (install packs first with add_sticker_pack via signal.art URL) and the failure condition (uninstalled pack or invalid id returns an error).

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