Skip to main content
Glama

Create a shared countdown timer

create_timer
Read-only

Create a CountLink shared countdown timer and return its link. Everyone who opens the link sees the identical countdown, to the same second — no account, no sign-up, any number of viewers. Use this whenever someone wants a timer several people or several screens need to share: a classroom, an exam, a standup, a workshop, a webinar countdown, a stream overlay, or a countdown embedded on someone's own website or landing page (e.g. "10 days until launch"). By default it returns a setup link, which opens the board preloaded at the requested duration for the user to start themselves; pass start_now: true only if they want the countdown running from this moment. Whenever the result has a fixed end instant (start_now or embed_on_website), structuredContent.ics is an .ics calendar file for it — offer it if the person might want the deadline on their calendar.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "duration": "<duration>"
    },
    "name": "create_timer"
  }
}

Input Schema

NameRequiredDescriptionDefault
labelNoOptional name shown on the board, e.g. "Exam" or "Break". Keep it short.
durationYesHow long the timer runs. Accepts "25m", "1h30m", "90s", "5:00", "1:30:00", or a plain number read as minutes ("45"). A setup link or OBS overlay holds up to 99h59m59s. With start_now or embed_on_website, longer countdowns of up to 366 days are fine: "10d", "10 days", "10d 6h" or "240h".
overtimeNoTrue keeps the countdown running past zero as "+0:42" so everyone sees how far over it is (talks, breaks that run long). Works for shared links, setup links and overlays.
start_nowNoFalse (default) returns a setup link the user starts themselves — correct for a timer that should begin later, and for anything being written down in advance. True returns a link for a countdown already running from now, fixed to one instant so every viewer is in sync; only use it when the timer should start immediately.
embed_styleNoBoard style for embed_on_website: "board" (default, dark split-flap), "minimal" (plain digits) or "light". Ignored otherwise.
embed_widthNoPixel width of the embedded iframe when embed_on_website is true. 160–1600, default 400. Ignored otherwise.
embed_heightNoPixel height of the embedded iframe when embed_on_website is true. 80–900, default 160. Ignored otherwise.
overlay_colorNoOptional digit colour for the OBS overlay as hex, e.g. "ff3df5" or "#5ef2ff". Applies to outline, neon, glass and minimal. Ignored otherwise.
overlay_startNoWhen an OBS overlay (for_obs_overlay) starts counting. load (default): when the scene loads. stream: waits at full time until the stream goes live in OBS. scene: restarts from the full duration every time its scene becomes active — good for a Be right back scene. Ignored otherwise.
overlay_styleNoLook of the OBS overlay when for_obs_overlay is true. board (default) is the split-flap board; outline is white digits with a dark edge that stays readable over gameplay; neon glows; glass sits the digits on a smoked rounded panel; minimal is plain digits; light is dark-on-light. Ignored otherwise.
for_obs_overlayNoTrue returns a URL to paste into OBS (or any streaming tool) as a Browser Source: a transparent background with just the digits, which starts counting as soon as the scene loads. Use it when someone wants a countdown on their stream. Do not give an overlay URL to several people to open — it starts fresh for whoever loads it; for that, call this again without the flag and share that link instead. Mutually exclusive with embed_on_website.
embed_on_websiteNoTrue returns ready-to-paste <iframe> HTML for embedding a countdown on someone's OWN website or landing page — e.g. a launch-day countdown on a marketing page. Unlike for_obs_overlay, this is a fixed instant every visitor to that page sees identically (not a per-visitor restart), and free with no watermark option — the only requirement is a small attribution line under the widget linking back to CountLink, which the returned HTML already includes. Use this whenever someone asks for a countdown to put ON their own site/page, as opposed to a link to share with other people directly. Mutually exclusive with for_obs_overlay.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / overlay_color
      Added value: +{
      +  "description": "Optional digit colour for the OBS overlay as hex, e.g. \"ff3df5\" or \"#5ef2ff\". Applies to outline, neon, glass and minimal. Ignored otherwise.",
      +  "type": "string"
      +}
    • addedInput schema / properties / overlay_start
      Added value: +{
      +  "description": "When an OBS overlay (for_obs_overlay) starts counting. load (default): when the scene loads. stream: waits at full time until the stream goes live in OBS. scene: restarts from the full duration every time its scene becomes active — good for a Be right back scene. Ignored otherwise.",
      +  "enum": [
      +    "load",
      +    "stream",
      +    "scene"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / overlay_style
      Added value: +{
      +  "description": "Look of the OBS overlay when for_obs_overlay is true. board (default) is the split-flap board; outline is white digits with a dark edge that stays readable over gameplay; neon glows; glass sits the digits on a smoked rounded panel; minimal is plain digits; light is dark-on-light. Ignored otherwise.",
      +  "enum": [
      +    "board",
      +    "outline",
      +    "neon",
      +    "glass",
      +    "minimal",
      +    "light"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / overtime
      Added value: +{
      +  "default": false,
      +  "description": "True keeps the countdown running past zero as \"+0:42\" so everyone sees how far over it is (talks, breaks that run long). Works for shared links, setup links and overlays.",
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / duration / description
      Previous value: -"How long the timer runs. Accepts \"25m\", \"1h30m\", \"90s\", \"5:00\", \"1:30:00\", or a plain number read as minutes (\"45\"). Maximum 99h59m59s."New value: +"How long the timer runs. Accepts \"25m\", \"1h30m\", \"90s\", \"5:00\", \"1:30:00\", or a plain number read as minutes (\"45\"). A setup link or OBS overlay holds up to 99h59m59s. With start_now or embed_on_website, longer countdowns of up to 366 days are fine: \"10d\", \"10 days\", \"10d 6h\" or \"240h\"."
  3. First observed

TDQS

A3.9/5.0
Behavior1/5

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

The description explicitly states 'Create a CountLink shared countdown timer', which is a write operation, while annotations declare readOnlyHint: true. This is a direct contradiction, so score 1. The rest of the description provides rich context about links, viewers, and .ics output, but the contradiction overrides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-organized: it front-loads the core action, then lists diverse use cases, then explains default behavior and the .ics output. The examples help routing without repetition.

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?

Given 12 parameters and no output schema, the description covers the essential decision points (setup vs start_now, overlay vs embed) and mentions the returned link and .ics file. It is complete enough for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100% with detailed descriptions for all 12 parameters. The main description reinforces default behavior for start_now and mentions mutual exclusivity, but these are already in the schema. It adds the .ics output note, which is behavioral not parameter-specific, so baseline 3 is appropriate.

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?

It states a specific verb (Create) and resource (CountLink shared countdown timer), and the description clarifies it returns a link for shared viewing. The resource is clearly distinct from sibling tools like create_agenda and create_badge.

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?

It provides explicit when-to-use scenarios (classroom, exam, standup, etc.) and explains the default setup link versus start_now: true. It also distinguishes for_obs_overlay from embed_on_website and warns against sharing overlay URLs with multiple people.

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.