Skip to content

CountLink

by countlink.app · remote · no sign-in to list tools · v1.0.0 · published by app.countlink

Shared countdown timers that stay in sync on every screen — no account, any number of viewers.

Changes · 3

4 tools: 3 change things and 1 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http countdown https://countlink.app/mcp

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "create_timer" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "create_timer" says "create": a word for a change.

    What this check looks for
  • The server marks "create_agenda" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "create_agenda" says "create": a word for a change.

    What this check looks for
  • The server marks "create_badge" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "create_badge" says "create": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

4 tools

Changes things 3Claude Code: ask
  • create_agendaCreate a CountLink agenda: an ordered sequence of named, timed segments (intro, talk, break, Q&A) that starts now and advances from one to the next on its own, on every screen that…1 finding

    Why it is in this group

    • The name "create_agenda" says "create": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "create_agenda" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "create_agenda" says "create": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Create a CountLink agenda: an ordered sequence of named, timed segments (intro, talk, break, Q&A) that starts now and advances from one to the next on its own, on every screen that opens the link, with no server involved. Use this when someone describes a meeting, workshop, lesson or event as a sequence of parts with lengths — including when they give you a total and a list of topics and expect you to split it ("an hour, four topics"): do the split yourself, then pass the resulting segments here. By default it starts immediately; pass start_at for something scheduled ahead ("our workshop starts at 9:15 tomorrow") — the link works right away, showing a live countdown to the start rather than the first segment, and switches over on its own at the scheduled instant, in sync on every screen that opened it. Returns the shared link plus a run sheet with the wall-clock start and end of each segment, and an .ics calendar file (one event per segment) in structuredContent.ics — offer it if the person might want the agenda on their calendar. For a single countdown use create_timer instead.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • create_badgeCreate a countdown badge — a small image, not an <iframe> — for places embed_on_website's iframe cannot go: a GitHub README, a forum signature, a Notion page, anywhere only plain M…1 finding

    Why it is in this group

    • The name "create_badge" says "create": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "create_badge" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "create_badge" says "create": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Create a countdown badge — a small image, not an <iframe> — for places embed_on_website's iframe cannot go: a GitHub README, a forum signature, a Notion page, anywhere only plain Markdown or a bare <img> is allowed. Shows coarse time remaining (e.g. "3d 04h left", not a live ticking clock — most places that embed images fetch and cache them server-side, so a promise of live ticking would be false) and links through to the real, precise, live countdown. Returns both a Markdown snippet and an HTML snippet; use whichever the destination accepts. Always returns the image wrapped in a link to the live countdown — never ask for or produce just the bare image, since the link is what makes this a genuine attribution rather than an untethered picture.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • create_timerCreate a CountLink shared countdown timer and return its link.1 finding

    Why it is in this group

    • The name "create_timer" says "create": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "create_timer" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "create_timer" says "create": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
Only reads 1Claude Code: allow

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http countdown https://countlink.app/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__countdown__describe_timer_link"
    ],
    "ask": [
      "mcp__countdown__create_timer",
      "mcp__countdown__create_agenda",
      "mcp__countdown__create_badge"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as countdown. Review it before you use it.