Skip to main content
Glama
NemoN

Tvheadend MCP

by NemoN

tvh_update_node

Destructive

Update Tvheadend API-exposed tuner, network, mux, service, channel, EPG, bouquet, or DVR objects with actual field IDs; validates fields, preserves unspecified values, and supports dry_run previews.

Instructions

Update any API-exposed tuner, LNB, DiSEqC, Unicable, network, mux, service, channel, EPG, bouquet or DVR object. Inspect get_node/get_field_options first.

Uses actual field IDs and native units, validates unknown/read-only fields, preserves unspecified fields; arrays REPLACE existing arrays. dry_run previews. After satconf/lnb_type/switch_type/en50494_type changes, re-read hardware_tree: child nodes may have been recreated. No hard-coded limits on expert settings.

Input Schema

NameRequiredDescriptionDefault
uuidYes
dry_runNo
settingsYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, but the description adds what those hints cannot: unknown/read-only fields are validated, unspecified fields are preserved, arrays REPLACE rather than merge, and structural child nodes may be recreated after certain field changes. The recreate-children warning is exactly the kind of hidden side effect an agent needs before issuing a destructive write.

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?

Front-loaded with the scope sentence, then packed with behavioral facts; nearly every sentence carries unique information. Slightly dense and fragmentary in places ('Inspect get_node/get_field_options first.') with one marginal remark about 'no hard-coded limits on expert settings', but no real waste.

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

Completeness4/5

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

Output schema exists, so return values need no explanation, and the description covers mutation semantics, validation behavior, preview mode, and post-change side effects. Missing only auth/permission expectations and error behavior on invalid field IDs, which for an openWorld destructive write would be worth one line.

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?

With 0% schema description coverage, the description carries the load and does so for the free-form 'settings' object: field IDs must be real, values use native units, arrays replace, and omissions are preserved. 'dry_run previews' also explains the third parameter. It never explicitly says where uuid comes from (only implied via 'Inspect get_node'), leaving one small gap.

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?

States a specific verb ('Update') plus an enumerated set of resource types (tuner, LNB, DiSEqC, network, mux, service, channel, EPG, bouquet, DVR), which cleanly separates it from the create_*/delete_node siblings. An agent knows exactly what class of object this mutates without opening the schema.

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?

Gives an explicit prerequisite workflow ('Inspect get_node/get_field_options first'), a safe-path alternative ('dry_run previews'), and a conditional follow-up ('After satconf/lnb_type/switch_type/en50494_type changes, re-read hardware_tree'). This routes the agent to the right sibling tools before and after invocation rather than leaving sequencing to inference.

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