Get schedule
get_scheduleRead the channel's EPG — what is playing and what is coming up. Note this one returns a plain array of entries (unlike other tools, which return an object).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes |
get_scheduleRead the channel's EPG — what is playing and what is coming up. Note this one returns a plain array of entries (unlike other tools, which return an object).
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive. The description adds valuable behavioral context by stating it returns a plain array unlike other tools, which is beyond the annotation coverage. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the tool's main function, second gives a crucial behavioral distinction. No fluff, information is front-loaded and easily digestible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no output schema), the description covers the essential purpose and return format. It could elaborate on entry structure, but annotations and the note about array vs object provide sufficient completeness for effective selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no description for channel_id, and coverage is 0%. The description implies channel_id is the channel by saying 'the channel's EPG', but it does not clarify the type or any constraints beyond the schema. It partially compensates for the lack of schema descriptions but could be more explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool reads the channel's EPG (what is playing/coming up). The description uses a specific verb ('Read') and resource ('EPG'), and the note about returning an array distinguishes it from siblings like get_schedule_rules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use: to read EPG content. It contrasts return shape with other tools but does not explicitly name alternatives or state when not to use it, leaving some room for inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Most tools are clearly distinct: channel lifecycle (create/get/update/archive/list), asset management (import/delete/list/set_asset_weight), schedule management (get/set/validate/regenerate), and transcode (get status/retry). Minor overlap exists between archive_channel and delete_asset, but descriptions clarify the scope (whole channel vs single video). import_video_from_url and import_youtube_video are distinct in source and ownership requirements.
All tool names follow a consistent verb_noun pattern: archive_channel, create_channel, delete_asset, get_channel, list_assets, set_asset_weight, validate_schedule_rules, etc. Verbs are action-oriented (create, get, list, update, archive, delete, import, set, regenerate, retry) and nouns are resource names (channel, asset, schedule, transcode). No mixed conventions or vague verbs like 'process' or 'do_thing'.
19 tools is well-scoped for a TV channel management server covering channel lifecycle, asset ingestion, scheduling, and transcode monitoring. Each tool addresses a distinct need and the count feels proportional to the complexity of managing a 24/7 linear TV channel. Not bloated with redundant tools, and each has a clear purpose.
The surface covers the core domain comprehensively: channel CRUD (create, get, update, archive, list), asset management (import, delete, list, weight), scheduling (set rules, validate, regenerate, get schedule), and transcode monitoring (status, retry). Minor gaps: no direct way to upload local files (stated as a limitation), no channel deletion (only archive), and no ability to manage playlists explicitly. However, these are acknowledged design constraints or edge cases, so the surface is largely complete for the stated purpose.