Skip to content

MCP Tools Reference

OpenTime exposes 21 MCP tools organized into four categories.

Clock (2 tools)

clock_now

Get the current UTC wall-clock time.

Parameters: None

Returns: {"now": "2026-03-20T12:34:56.789+00:00", "unix": 1774041296.789}

clock_elapsed_since

Get seconds elapsed since a given timestamp.

Parameters:

Name Type Required Description
timestamp string Yes ISO 8601 timestamp

Returns: {"elapsed_seconds": 42.5, "since": "..."}

Stopwatch (5 tools)

stopwatch_start

Start a named stopwatch.

Name Type Required Description
name string Yes Stopwatch name

Returns: {"name": "my-timer", "started_at": "2026-03-20T12:34:56+00:00"}

stopwatch_read

Read elapsed time without stopping.

Name Type Required Description
name string Yes Stopwatch name

stopwatch_stop

Stop a stopwatch and get the final time.

Name Type Required Description
name string Yes Stopwatch name

Returns: {"name": "my-timer", "elapsed_seconds": 45.6, "is_running": false}

stopwatch_list

List all stopwatches. Parameters: None

stopwatch_delete

Delete a stopwatch.

Name Type Required Description
name string Yes Stopwatch name

Events (6 tools)

event_task_start

Start timing a task. Returns a correlation_id to pass to event_task_end.

Name Type Required Description
task_type string Yes Task category (e.g., "code_generation")
metadata string No JSON metadata

Returns: {"event": {...}, "correlation_id": "abc123..."}

event_task_end

End a task. Pass the correlation_id from event_task_start.

Name Type Required Description
task_type string Yes Same task_type as the start event
correlation_id string No The ID from event_task_start
metadata string No JSON metadata

event_record

Record a generic timestamped event.

Name Type Required Description
event_type string Yes Event classification
task_type string No Task category
metadata string No JSON metadata

event_list

Query recorded events with optional filters.

Name Type Required Description
event_type string No Filter by event type
task_type string No Filter by task type
since string No ISO 8601 timestamp
limit integer No Max results (default 50)

event_get

Get a single event by ID.

Name Type Required Description
event_id string Yes Event ID

event_active_tasks

List tasks that have been started but not yet ended.

Name Type Required Description
task_type string No Filter by task type

Statistics (6 tools)

stats_duration

Get duration statistics for a task type.

Name Type Required Description
task_type string Yes Task type to analyze

Returns: {"summary": {"task_type": "...", "count": 15, "mean_seconds": 8.2, "median_seconds": 7.5, "p95_seconds": 15.0, "min_seconds": 3.1, "max_seconds": 18.4}}

stats_list_task_types

List all task types that have recorded events. Parameters: None

stats_all

Get duration statistics for all task types. Parameters: None

stats_recommend_timeout

Recommend a timeout based on historical durations.

Name Type Required Description
task_type string Yes Task type
percentile float No Percentile (default 0.95)
safety_margin float No Multiplier (default 1.2)

Returns: {"recommendation": {"recommended_seconds": 18.6, "percentile_value": 15.5, "percentile": 0.95, "safety_margin": 1.2, "sample_count": 15}}

stats_check_timeout

Check if a running task is at risk of exceeding its timeout.

Name Type Required Description
task_type string Yes Task type
elapsed_seconds float Yes How long the task has been running
timeout_seconds float Yes The timeout threshold

stats_compare_approaches

Compare multiple approaches using historical duration data.

Name Type Required Description
approaches string Yes JSON array of approaches

Each approach: {"name": "...", "steps": [{"task_type": "...", "estimated_seconds": N}]}

Returns: Approaches ranked fastest-first with adjusted durations and a recommendation.