Skip to main content
Glama

tascan_schedule_sms

Idempotent

Schedule a transactional TaScan SMS for a future time (up to 90 days out): the text is sent by TaScan's own scheduler (every 5 minutes) through the same guarded lane as tascan_send_sms — recipient must be a worker of your org or a phone the org already knows, STOP opt-outs honoured, burst limits and the SMS quota apply, the "TaScan:" prefix is added, and a list_id appends a tap-to-open checklist link. Use this for reminders (e.g. "log your out time" each show night) — nothing outside TaScan needs to stay awake. Returns the scheduled row id; cancel with tascan_cancel_scheduled_sms while it is still pending. The same idempotency_key within an org returns the existing row instead of a duplicate.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
phoneNoRaw phone (E.164) — must already belong to a worker or roster entry of your org
list_idNoOptional task list ID — appends the tap-to-open checklist link
messageYesMessage text (1-400 chars, links stripped). Transactional and work-related only.
send_atYesWhen to send — ISO 8601 with a timezone offset, e.g. "2026-09-25T18:30:00-07:00" (Las Vegas is -07:00 in September). Delivery happens on the next 5-minute tick at or after this time.
worker_idNoWorker ID — texts their phone on file (preferred over raw phone)
include_linkNoAppend the list link (default true when list_id is given)
idempotency_keyNoOptional caller key (≤ 200 chars) — replays return the existing scheduled row

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by revealing concrete operational behavior: 5-minute scheduling ticks, the guarded lane shared with tascan_send_sms, recipient eligibility, STOP opt-out honoring, burst limits, quota effects, the 'TaScan:' prefix, link appending behavior, and idempotency semantics. This rich context is genuinely additive and helps the agent anticipate side effects and constraints.

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 dense and packed with useful constraints, but it remains tightly written with no filler. The central scheduling purpose is front-loaded, followed by constraints, use-case guidance, return value, cancellation pointer, and idempotency note. It is long, but every sentence contributes meaningful information for correct invocation.

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?

Despite having no output schema, the description explicitly states the return value ('Returns the scheduled row id'), how to cancel, eligibility requirements, quota/burst behavior, and idempotency behavior. For a scheduling tool with multiple constraints, this is comprehensive enough for an agent to select and invoke it correctly without additional assumptions.

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 meaningful parameter-level interpretation: send_at is tied to the 5-minute tick, worker_id is preferred over phone, list_id appends a checklist link, and idempotency_key ensures replays return the existing scheduled row. This elevates the semantics beyond the raw schema descriptions.

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 ('Schedule a transactional TaScan SMS for a future time') and distinguishes the tool from the immediate-send sibling tascan_send_sms by emphasizing the future-time and scheduler behavior. It clearly identifies what the tool does and how it is different from related tools.

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?

Explicitly frames when to use it ('Use this for reminders') and names the cancel alternative (tascan_cancel_scheduled_sms). It also explains that nothing outside TaScan needs to stay awake, giving a clear rationale for choosing this tool over an immediate-send path. It does not exhaustively cover all alternatives, but the context is sufficient.

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.