Skip to main content
Glama
ref-tools

Widget MCP

by ref-tools

Stopwatch

stopwatch

Activate a stopwatch to track elapsed time starting from zero. Ideal for timing tasks or events directly within chat interfaces using interactive widgets.

Instructions

Start a stopwatch that counts up from zero. You don't need to say anything else after answering with this tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • index.ts:39-59 (registration)
    Registers the stopwatch tool with an empty input schema and a handler that returns a UI resource.
    server.registerTool(
      "stopwatch",
      {
        title: "Stopwatch",
        description:
          "Start a stopwatch that counts up from zero. You don't need to say anything else after answering with this tool.",
        inputSchema: {},
      },
      async () => {
        const stopwatchResource = createTemplatedUIResource(
          createUIResource,
          "ui://widget/stopwatch",
          timerHtml,
          { mode: "stopwatch" }
        );
    
        return {
          content: [stopwatchResource],
        };
      }
    );
  • index.ts:47-58 (handler)
    The handler function for the stopwatch tool, which creates and returns a templated UI resource using timerHtml in 'stopwatch' mode.
    async () => {
      const stopwatchResource = createTemplatedUIResource(
        createUIResource,
        "ui://widget/stopwatch",
        timerHtml,
        { mode: "stopwatch" }
      );
    
      return {
        content: [stopwatchResource],
      };
    }
  • Input schema for the stopwatch tool, which is empty as no parameters are required.
    {
      title: "Stopwatch",
      description:
        "Start a stopwatch that counts up from zero. You don't need to say anything else after answering with this tool.",
      inputSchema: {},
    },
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool starts a stopwatch and that no further action is needed, but it doesn't disclose key behavioral traits such as whether the stopwatch runs in the background, how it's displayed or accessed, if it has rate limits, or what happens on subsequent invocations. This leaves significant gaps for a tool with no annotation coverage.

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 concise and front-loaded: the first sentence clearly states the purpose, and the second adds usage context. Both sentences earn their place by providing essential information without waste. However, it could be slightly more structured by explicitly mentioning the lack of parameters or sibling differentiation, keeping it from a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a tool that starts a stopwatch) and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a confirmation, an ID, or nothing), how the stopwatch is managed, or any error conditions. For a tool with no structured data to rely on, this leaves the agent with insufficient information to use it effectively.

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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add any parameter information, which is appropriate. A baseline score of 4 is given because the schema fully covers the parameters (none exist), and the description doesn't need to compensate, but it doesn't explicitly note the lack of parameters, preventing a perfect score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Start a stopwatch that counts up from zero.' It specifies the verb ('Start') and resource ('stopwatch'), and distinguishes it from sibling tools like 'timer' by focusing on counting up from zero rather than counting down. However, it doesn't explicitly differentiate from all siblings (e.g., 'conversion', 'display-fact'), keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal usage guidance: 'You don't need to say anything else after answering with this tool.' This implies a specific usage context (e.g., after starting the stopwatch, no further action is needed), but it doesn't explain when to use this tool versus alternatives like 'timer' or other siblings. No explicit when/when-not scenarios or alternatives are mentioned, leaving gaps in guidance.

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

Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ref-tools/widget-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server