Skip to main content
Glama
NemoN

Tvheadend MCP

by NemoN

tvh_create_timer

Create a manual DVR timer in Tvheadend using channel UUID, title, and ISO 8601 start/stop times with UTC offset; optionally add recording extras and dry-run preview.

Instructions

Create a manual DVR timer. start_time/stop_time: ISO 8601 with explicit UTC offset.

extra accepts recording fields such as start_extra/stop_extra (minutes), pri, comment. Core channel/title/time/profile fields cannot be overridden via extra.

Input Schema

NameRequiredDescriptionDefault
extraNo
titleYes
dry_runNo
stop_timeYes
start_timeYes
config_uuidNo
channel_uuidYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the write profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the description's job is supplemental context. It does add real value by stating that core channel/title/time/profile fields cannot be overridden via extra, but it never mentions the dry_run flag or warns that repeated calls create duplicate timers given idempotentHint=false.

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?

Two short, front-loaded blocks with no filler; the tool's action comes first and the formatting/extra constraints follow. The telegraphic 'extra accepts...' fragment is slightly clipped but not wasteful.

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

Completeness3/5

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

An output schema exists so return values need no explanation, and the time-format requirement is covered. Still, for a 7-parameter mutating tool with 0% schema coverage, the description omits the dry_run parameter and the meaning of config_uuid, which are material gaps for correct invocation.

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 description coverage is 0%, so the description must compensate, and it partially does: the ISO 8601 / explicit-UTC-offset format for start_time and stop_time is genuinely useful, and the extra field's accepted contents and restrictions are explained. But channel_uuid, config_uuid (defaulting to empty), and especially dry_run are entirely undocumented anywhere, leaving roughly half the parameters opaque.

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 first sentence names a specific verb and resource ('Create a manual DVR timer'), which is clear and actionable. However, it never distinguishes itself from close siblings like tvh_create_dvr_rule or tvh_schedule_recording, so an agent must infer that 'manual' is the differentiator.

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

Usage Guidelines3/5

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

The word 'manual' hints that this is for one-off timers rather than rule-based recording, which implicitly routes against tvh_create_dvr_rule, but no alternative is named and no when-not condition is given. Usage is inferred rather than stated.

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