Skip to main content
Glama

Server Details

Run 24/7 live channels from the cloud, schedule pre-recorded broadcasts, multistream to YouTube, Twitch, and Kick, and host live shows in Upstream.so's browser-based Live Studio.

Use the Upstream MCP server to manage streams, media, playlists, schedules, and destinations from your AI assistant.

MCP setup and documentation: https://upstream.so/mcp/

Ownership verified
Status
Healthy
Uptime
99.6% over 21 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.7/5.0

Scored across 35 tools

Disambiguation4/5

Most tools target a clearly distinct resource+action (streams, media, folders, tags, destinations, queue ops). The main overlap is list_streams vs show_streams, which return the same account-scoped data and could easily be confused. Queue verbs (add/reorder/remove/play/skip) are otherwise well-separated.

Naming Consistency4/5

Names follow a consistent snake_case verb_noun pattern (list_media, create_stream, update_tag) with no casing mixing. Minor deviation: destinations use add_/remove_ while the same create/delete concepts use create_/delete_ elsewhere, and a few names embed prepositions (add_to_stream_queue).

Tool Count3/5

35 tools is heavy for this surface, though most map to real distinct operations across six resource groups (streams, media, folders, tags, destinations, queues). It sits well above the comfortable 3-15 range and pushes toward bloat.

Completeness4/5

Strong CRUD/lifecycle coverage: streams (create/get/update/delete/start/stop), media (upload/get/list/update/delete), folders, tags, destinations, and queue management. Minor gaps like no get_tag or get_destination by id are easily worked around with list tools.

Available Tools

35 tools
add_destinationAdd DestinationA
Destructive
Inspect

Add a multistream destination to a stream. Can enable active or scheduled output to an external platform. Required: name (max 100), platform, key (stream key on that platform; custom, instagram or rumble: rtmp:// or rtmps://, customsrt: srt://). Mirrors POST /api/v1/streams/{stream}/destinations.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesStream key on the destination platform.
urlNoOptional ingest URL override.
nameYesDestination name, max 100 chars.
statusNoDestination status.
streamYesStream UUID.
platformYesDestination platform, e.g. youtube, twitch, kick, custom, customsrt.
include_in_scheduleNoInclude this destination in the stream schedule.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=true, so the safety profile is covered structurally. The description adds useful context (active vs scheduled output, mirroring POST /api/v1/streams/{stream}/destinations) but does not mention auth requirements, side effects on an existing stream, or what happens alongside remove_destination.

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?

Three tightly packed sentences that front-load the core action and then the required fields and endpoint mapping. Dense but no filler; the key-format clause is long yet earns its place by disambiguating platform-specific input.

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?

With 7 parameters, no output schema, and annotations already covering safety, the description covers the action, the required fields, and the non-obvious key formats. Minor gaps remain around optional params (status, url, include_in_schedule), but the schema documents those adequately.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real value beyond the schema: the stream key format rules per platform (custom/instagram/rumble use rtmp:// or rtmps://, customsrt uses srt://) and the max-100 name constraint, which the schema does not encode. This is meaningful semantic enrichment.

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 and resource ('Add a multistream destination to a stream') and clarifies the scope as multistream output to an external platform. This cleanly separates it from list_destinations, update_destination, and remove_destination without needing to name them.

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 description explains what the destination does ('enable active or scheduled output to an external platform'), which implies when it applies, but gives no explicit when-to-use/when-not guidance or routing to siblings like update_destination or list_destinations. Usage is inferable but not stated.

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

add_to_stream_queueAdd To Stream QueueA
Destructive
Inspect

Append items to a stream queue. Queue changes can affect live output. For video/audio/audio-secondary queues, items is an array of media UUIDs (find them with list_media). For external-videos, items is an array of {url, name} objects where url must end in .mp4. Mirrors POST /api/v1/streams/{stream}/queues/{type}.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesQueue type: video (main video queue), audio (music), audio-secondary (secondary audio), external-videos (externally hosted .mp4 URLs).
itemsYesMedia UUIDs (storage queues) or {url, name} objects (external-videos).
streamYesStream UUID.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and openWorldHint=true; the description adds the operationally important consequence that 'Queue changes can affect live output,' which is not derivable from the hints. It stops short of describing ordering behavior, duplicate handling, or what the response contains.

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-loads the purpose, then the risk warning, then parameter guidance, then the mirrored endpoint. Four dense sentences with little waste, though the REST-endpoint sentence is the least essential for an agent.

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?

Covers purpose, risk, and both payload variants for a destructive, no-output-schema mutation tool. Remaining gaps (return value, ordering guarantees, auth requirements) are modest given the annotations and full schema coverage.

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?

Schema coverage is 100%, so baseline is 3, but the description adds real meaning beyond the schema: the .mp4 URL constraint for external-videos and the concrete shape of items per queue type. It does not clarify whether items append at the end or their position semantics.

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 and resource ('Append items to a stream queue') and the per-queue-type payload semantics, which cleanly separates it from siblings like remove_from_stream_queue, reorder_stream_queue, and get_stream_queue. An agent can identify the operation 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 Guidelines4/5

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

It routes the caller by queue type (media UUIDs for video/audio/audio-secondary vs {url, name} for external-videos) and points to list_media as the way to obtain UUIDs. It gives clear context but does not state when not to use this tool (e.g., to reorder or remove, use the sibling tools).

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

create_folderCreate FolderAInspect

Create a media library folder, optionally inside a parent folder. Mirrors POST /api/v1/folders.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFolder name.
parent_idNoOptional parent folder UUID (must be a folder you own). Omit or use null for a root folder.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the agent knows this is a safe, non-destructive local write. The description adds only the API mapping ('Mirrors POST /api/v1/folders') and says nothing about duplicate-name behavior, ownership requirements, or what the call returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler, and the core action is front-loaded. The optional nesting behavior and API mapping follow in the natural order of importance.

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?

For a simple two-parameter create with annotations covering the safety profile, the essentials are present. However, with no output schema, the description gives no hint of what a successful call returns (e.g., the new folder ID), which an agent would need to chain into subsequent calls.

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 100%, so both 'name' and 'parent_id' are fully documented in the schema, including the ownership note and the null-for-root behavior. The description adds no syntax or constraint detail beyond what the schema already provides, so the baseline 3 applies.

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 states a specific verb and resource ('Create a media library folder'), scoping it to the media library rather than generic folders. It implicitly distinguishes itself from siblings like create_tag and create_stream by naming the resource, though it never contrasts itself with related folder tools such as update_folder or move_files_to_folder.

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?

'Optionally inside a parent folder' is the only usage signal, and it simply restates the parent_id parameter. There is no guidance on when to create a folder versus using an existing one, no mention of permissions or prerequisites, and no routing to alternatives.

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

create_streamCreate StreamA
Destructive
Inspect

Create a stream. Required: name and platform (e.g. none, youtube, twitch, kick, custom, customsrt). A key is required unless platform is none; for custom, instagram or rumble it must start rtmp:// or rtmps://, and for customsrt srt://. Optional settings groups (encoding, volumes, playback, transitions, video_fit, recording) and tags default sensibly. Status is managed by start_stream/stop_stream and scheduling. A supplied schedule can start or stop broadcasting. Mirrors POST /api/v1/streams.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoStream key. Required unless platform is none. custom, instagram or rumble: must start rtmp:// or rtmps://; customsrt: srt://.
urlNoOptional ingest URL override.
nameYesStream name, max 100 chars.
tagsNoTag names to attach. Missing names are created for this account.
typeNoStream type (set at creation only).
volumesNoVolumes 0-100: main, secondary, video.
encodingNoEncoding settings: resolution, frame_rate, bitrate, audio_bitrate (128-328).
platformYesTarget platform, e.g. none, youtube, twitch, kick, custom, customsrt. Use none to add a destination later.
playbackNoPlayback: mode (loop|single), video_order (loop|shuffle), audio_order (loop|shuffle), default_image_duration (1-3600s).
scheduleNoSchedule: is_scheduled/scheduled_at (start), is_scheduled_end/scheduled_end_at (end), repeat_schedule (boolean), mode (null|continuous), continuous_start_type (now|scheduled), continuous_stop_type (never|scheduled), continuous_stop_at, stream_duration_hours/stream_duration_minutes and break_duration_hours/break_duration_minutes (continuous mode active/break time per cycle, each combo >=5min), preserve_state (resume playback after a continuous-mode cycle restart).
recordingNoRecording: enabled (boolean).
video_fitNoVideo fit: object_fit (cover|contain), style, background_color.
descriptionNoOptional description.
transitionsNoTransitions: fade_duration (0-20), animation_type (random|fade|slide|scale|swipeAway), animation_duration (0-20).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare write, destructive, and open-world behavior, so the safety profile is carried. The description adds real behavioral context beyond that: optional setting groups (encoding, volumes, playback, transitions, video_fit, recording) and tags default sensibly, and a supplied schedule can itself start or stop broadcasting — a non-obvious side effect. It doesn't say what a failed platform/key combination returns, hence a 4 not a 5.

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 required fields, then platform-specific key rules, then optional groups, then lifecycle ownership. Dense but every sentence carries information; the trailing 'Mirrors POST /api/v1/streams' is arguably filler for an agent but harmless.

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?

For a 14-parameter creation tool with nested objects and no output schema, the description covers what must be supplied, how optional groups behave, and how the object interacts with the start/stop lifecycle. The omission of any guidance on failure/auth requirements or the returned object is minor given annotations cover the write/destructive profile.

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 100%, so the schema already documents all 14 parameters, including nested objects and the key-format constraints. The description restates the required fields and key prefix rules, which is useful reinforcement but not meaningfully additive. Baseline 3 applies when the schema does the heavy lifting.

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?

The opening sentence gives a specific verb+resource ('Create a stream'), and the follow-up about status being managed by start_stream/stop_stream cleanly separates this creation tool from the lifecycle siblings. An agent can distinguish it from update_stream and start_stream without opening any schema.

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

Usage Guidelines4/5

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

It states a clear when-not: status/broadcasting is controlled via start_stream/stop_stream and scheduling, so the agent knows not to try to go live through this tool. The key-requirement rules per platform (none vs custom/instagram/rumble vs customsrt) are also usage-relevant. It stops short of naming update_stream as the mutation path for existing streams, so it isn't a full 5.

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

create_tagCreate TagBInspect

Create a tag. Name must be unique within the account. Mirrors POST /api/v1/tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
iconNoIcon (emoji or short string).
nameYesTag name, unique per account.
colorNoHex color like #f80, #ff8800 or #ff8800cc.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare a non-destructive, closed-world write, so the safety profile is covered. The description's added value is the uniqueness validation rule, but that same fact is already in the schema's name description, and "Mirrors POST /api/v1/tags" is an implementation detail rather than agent-useful behavior. No mention of what is returned or what happens on name collision.

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?

Three short, front-loaded sentences with no padding. The closing "Mirrors POST /api/v1/tags" sentence earns its place only marginally, since the REST mapping is not something an agent acting on this tool needs.

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?

For a simple 3-parameter create with annotations covering the safety profile, this is minimally adequate. It omits sibling differentiation (create vs update vs delete) and, with no output schema, says nothing about the created tag's identity or response shape.

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 100% and the schema documents all three parameters with types, lengths, and color format. The description adds no parameter syntax or format detail beyond what the schema already provides, so the baseline 3 applies.

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?

States a specific verb and resource ("Create a tag"), which is immediately clear. However it does nothing to distinguish itself from siblings like update_tag, delete_tag, or list_tags, so an agent must infer the boundary on its own.

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 uniqueness constraint ("Name must be unique within the account") implies this is for new tags and that existing tags should be edited via update_tag instead, but that alternative is never named. Usage is only implied, not stated.

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

create_upload_ticketCreate Upload TicketAInspect

Start a media upload: mints an upload ticket (TUS endpoint + 24h bearer token) for uploading files to the media library with any TUS 1.0.0 client. New tickets renew the account token family without revoking in-flight uploads; reuse one ticket for a batch when practical. Use revoke_upload_tickets to invalidate the family immediately. Mirrors POST /api/v1/media/uploads.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idNoOptional UUID of an owned folder the uploaded files should land in. Re-send it as the Folder-Id header during upload.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare it is a non-read, non-destructive, closed-world write. The description adds the traits that actually matter here: the token lifetime (24h), that new tickets renew the account token family WITHOUT revoking in-flight uploads, and that tickets support batched reuse. That is non-obvious mutation semantics that no annotation conveys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with the core action front-loaded, followed by lifecycle/constraint details and the sibling route. No filler, no restatement of the title, and each sentence adds a distinct fact (what is minted, token-family behavior, revocation path).

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

Completeness5/5

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

For a single-optional-param write tool with no output schema, the description supplies everything an agent needs: what is returned in effect (endpoint + bearer token), how long it lives, how it interacts with existing uploads, and how to undo it. Nothing material is missing.

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?

Only one optional parameter (folder_id) and schema description coverage is 100%, so the schema already documents the UUID and the Folder-Id header requirement. The description adds no parameter-level detail beyond that, so the baseline 3 applies.

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+resource ('Start a media upload... mints an upload ticket') and immediately qualifies the output (TUS endpoint + 24h bearer token) and protocol (TUS 1.0.0 client). It also names the sibling it complements (revoke_upload_tickets) and maps to the underlying REST route, so an agent can distinguish it from create_folder/create_stream without opening a schema.

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

Usage Guidelines4/5

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

Gives clear operational guidance: reuse one ticket for a batch when practical, and use revoke_upload_tickets to invalidate the token family immediately. It names the alternative tool and the condition that selects it, but never states when NOT to mint a ticket (e.g., if a valid unexpired ticket already exists) or any preconditions beyond folder ownership implied by the schema.

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

delete_folderDelete FolderA
Destructive
Inspect

Permanently delete a folder. Its subfolders are deleted too; contained files are not deleted — they move to the library root. Mirrors DELETE /api/v1/folders/{folder}.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderYesFolder UUID.

TDQS

A4/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true, but the description goes well beyond them by spelling out exactly what is destroyed (the folder and its subfolders) and what is preserved (files move to the library root rather than being deleted). This is precisely the cascading-effect detail an agent needs before invoking a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the destructive verb and scope, followed by the side effects and the API endpoint mapping. No filler, and each sentence adds distinct information.

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?

For a single-parameter destructive tool with no output schema, the description covers the critical unknowns: permanence, cascading deletion, and file relocation. It stops short of covering permission requirements or error behavior (e.g., what happens if the UUID is invalid), which are minor gaps given the annotation-based safety profile.

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 coverage is 100% and the single 'folder' property is documented as a UUID in the schema itself. The description adds no syntax, format, or lookup guidance beyond that, so the baseline 3 applies when the schema carries the parameter burden.

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 and resource ('Permanently delete a folder') with the destructive intent made explicit by the word 'Permanently'. The resource (folder) cleanly separates it from sibling deleters like delete_media, delete_stream, and delete_tag without needing to inspect any schema.

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 never says when to choose this tool over alternatives (e.g., move_files_to_folder to relocate contents rather than destroy structure) nor states any precondition for deletion. Usage is only inferable from the tool name, so no guidance is provided.

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

delete_mediaDelete MediaA
Destructive
Inspect

Permanently delete a media file from the library. Irreversible; the file also disappears from any queues that reference it. Mirrors DELETE /api/v1/media/{media}.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaYesMedia (storage) UUID.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds value beyond that by disclosing the cascade effect — the file also disappears from any queues that reference it — which is a non-obvious side effect not present in the annotations. It omits auth/permission requirements and error behavior, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler: the action, the irreversibility plus cascade consequence, and the API mapping. The most important constraint (permanent, irreversible) is front-loaded immediately after the verb.

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?

For a single-parameter destructive tool with annotations covering the safety profile and no output schema, the definition supplies what an agent needs: the effect, the irreversibility, and the downstream consequence. Only permission requirements and failure modes are absent, which keeps it just short of complete.

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 100% and the sole parameter's meaning ('Media (storage) UUID.') is fully documented there. The description adds only the informal phrase 'media file', which does not extend the schema's semantics; baseline 3 applies.

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 and resource ('Permanently delete a media file from the library') and pins the scope to media, which cleanly separates it from the many sibling delete_* tools that act on folders, streams, and tags. An agent can select it 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 Guidelines3/5

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

Usage is implied by the description and the resource name, and the irreversibility warning nudges the agent to confirm intent. However, it never names alternatives (e.g., update_media, move_files_to_folder) or states prerequisites, so the when-to-use routing is left to inference.

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

delete_streamDelete StreamA
Destructive
Inspect

Stop any live broadcast and permanently delete the stream and its configuration. Irreversible. Mirrors DELETE /api/v1/streams/{stream}.

ParametersJSON Schema
NameRequiredDescriptionDefault
streamYesStream UUID.

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, so the safety profile is covered; the description still adds real value by declaring irreversibility and the live-broadcast interruption. It stops short of saying what happens to attached resources such as destinations or queued items, which is the remaining meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the destructive nature front-loaded, followed by the irreversibility warning and endpoint mapping. No filler, nothing repeated from the schema.

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?

For a one-parameter destructive tool with annotations and no output schema, the definition covers what is destroyed, that it is irreversible, and the API route it mirrors. Only the fate of dependent objects (destinations, queue entries) is left unstated.

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 100% and the single parameter is fully documented as a 'Stream UUID', so the schema carries the load. The description adds no syntax, format, or lookup guidance beyond that, which lands on the baseline.

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 pair and resource ('Stop any live broadcast and permanently delete the stream and its configuration'), plus the underlying endpoint, so the agent knows exactly what happens. It implicitly distinguishes itself from the sibling stop_stream (which stops but does not delete) and delete_media by naming the stream as the resource.

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 description implies the usage condition (a full teardown rather than a mere stop), but never explicitly says when to choose it over stop_stream, delete_media, or update_stream, and lists no exclusions. Usage is inferable from the verb, which is the definition of a 3.

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

delete_tagDelete TagA
Destructive
Inspect

Permanently delete a tag. Streams keep working; they just lose the tag. Mirrors DELETE /api/v1/tags/{tag}.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag id.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so safety is covered. The description adds genuinely non-redundant behavior: the deletion is permanent/irreversible and the blast radius is limited because streams keep working and merely lose the tag, plus the REST endpoint it mirrors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the irreversible action, then the side effect, then the API mapping. Every sentence earns its place with no padding.

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?

For a one-parameter destructive tool with no output schema and destructiveHint already set, the description covers irreversibility and side effects adequately. It stops short of stating permission requirements or behavior when the tag does not exist, which would make it fully complete.

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 100% for the single 'tag' parameter, so the schema already carries the parameter documentation. The description adds no format, id-shape, or existence-requirement detail beyond it, which is the expected baseline when the schema does the work.

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 and resource ('Permanently delete a tag') and the 'tag' resource plus 'delete' verb cleanly distinguishes it from delete_folder, delete_media, delete_stream, and from create_tag/update_tag. An agent can select it 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 Guidelines3/5

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

Usage is implied by the destructive verb and the note that streams survive, but there is no explicit when-to-use versus when-not guidance and no reference to sibling alternatives such as update_tag or list_tags. Adequate but leaves the routing decision to inference.

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

get_accountGet AccountA
Read-onlyIdempotent
Inspect

Get the authenticated Upstream account: id, name, email, plan and limits. Mirrors GET /api/v1/user.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds the underlying REST endpoint mapping but nothing further about behavior, auth requirements, or rate limits beyond what annotations supply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short clauses with zero waste, front-loading the resource and hedging nothing. The endpoint mirror is appended as a compact second sentence that earns its place.

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

Completeness5/5

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

For a zero-parameter read tool with no output schema, the description supplies exactly the missing piece: the fields returned. Combined with annotations covering the safety profile, nothing an agent needs to call it correctly is absent.

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 tool takes zero parameters, so the schema baseline of 4 applies; there is no parameter semantics to explain. The description's field list (id, name, email, plan, limits) describes the response, not inputs, which is a modest bonus here.

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 (Get) and resource (the authenticated Upstream account) and enumerates the returned fields: id, name, email, plan and limits. This clearly distinguishes it from the get_folder/get_media/get_stream siblings, which target content rather than the account itself.

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

Usage Guidelines4/5

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

The description makes the scope explicit ('the authenticated account') and notes it mirrors GET /api/v1/user, so an agent knows this is a self-scoped identity lookup with no parameters. It does not, however, state when to prefer it over any alternative or any exclusions.

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

get_folderGet FolderB
Read-only
Inspect

Get one folder by UUID. Mirrors GET /api/v1/folders/{folder}.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderYesFolder UUID.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered without the description. The only added context is the REST endpoint mapping, which is marginally useful for developers but says nothing about error behavior for a missing UUID or what a "not found" looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero padding, and the core action is front-loaded before the endpoint reference. Nothing needs trimming.

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?

For a one-parameter read tool with annotations covering safety, the definition is nearly sufficient, but with no output schema the description says nothing about the folder object returned (name, items, permissions), leaving the agent to guess at the payload.

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 100% and the single parameter already documents itself as "Folder UUID." The description's "by UUID" simply restates that, adding no format, source, or validation detail beyond the schema.

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?

States a specific verb and resource ("Get one folder") and constrains it to a single item via UUID, which implicitly separates it from the plural list_folders. It never names a sibling explicitly, so an agent must infer the singular/plural split from the tool names themselves.

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?

There is no guidance on when to fetch a single folder versus listing folders, nor any mention of how the UUID is obtained (e.g., from list_folders or create_folder). The requirement to already hold a UUID is only implied by the phrase "by UUID."

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

get_mediaGet MediaA
Read-only
Inspect

Get one media file by UUID, including its processing state. After an upload, poll this until is_processing is false — the file is only usable in queues once processed. Mirrors GET /api/v1/media/{media}.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaYesMedia (storage) UUID.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare this is a safe, non-destructive, closed read. The description adds genuinely non-obvious behavior: the need to poll, the is_processing flag semantics, and the dependency between processing and queue usability. It omits error behavior (e.g., unknown UUID) but the safety profile is already covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, followed by the operational polling guidance, then a compact REST mapping. Every sentence carries information an agent can act on; no padding.

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?

For a single-parameter read with no output schema, the description conveys the key returned field (processing state) and the workflow dependency. Only failure/not-found handling is left implicit, which is a minor gap for a low-complexity tool.

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 100% with a single 'media' parameter already documented as the storage UUID, so the baseline is 3. The description restates 'by UUID' without adding format, constraint, or lookup guidance beyond the schema.

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 and resource ('Get one media file by UUID') and includes the scope detail that it returns processing state. This distinguishes it cleanly from list_media (many) and get_stream (different resource) without needing to name them.

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

Usage Guidelines4/5

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

Gives a concrete usage trigger and stopping condition: poll after an upload until is_processing is false, because the file is unusable in queues until processed. It does not name an alternative tool for the pre-upload or bulk case, so it falls just short of explicit when-not guidance.

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

get_streamGet StreamA
Read-onlyIdempotent
Inspect

Get one stream by UUID: settings, status, tags, destinations. Mirrors GET /api/v1/streams/{stream}.

ParametersJSON Schema
NameRequiredDescriptionDefault
streamYesStream UUID.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds the useful detail that it mirrors GET /api/v1/streams/{stream}, giving an integrating agent a concrete REST analogue, but says nothing about auth, rate limits, or error behavior (e.g. unknown UUID).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded functional sentence plus a short endpoint-mapping note. Every clause earns its place and nothing is padded.

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?

With no output schema, the description compensates by listing the returned sections (settings, status, tags, destinations), which is genuinely helpful. A read-only single-fetch tool with full schema coverage needs little more, though noting error/not-found behavior would round it out.

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 coverage is 100% and the single 'stream' parameter is documented as a UUID in the schema. The description's 'by UUID' reinforces but does not extend that; with one well-documented param, the schema carries the semantics.

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?

States a specific verb and resource ('Get one stream by UUID') and enumerates the payload areas (settings, status, tags, destinations). The phrase 'one stream by UUID' implicitly separates it from list_streams/show_streams, though no sibling is named explicitly.

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?

Usage is implied by the single-UUID scope: fetch one stream when you have its ID. There is no explicit when-to-use vs update_stream/get_stream_queue guidance and no stated prerequisites or exclusions.

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

get_stream_queueGet Stream QueueAInspect

Get the ordered items of one of a stream's media queues. For legacy external-video items missing an ID, this assigns and saves stable IDs so the items can be targeted by playback and removal tools. Mirrors GET /api/v1/streams/{stream}/queues/{type}.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesQueue type: video (main video queue), audio (music), audio-secondary (secondary audio), external-videos (externally hosted .mp4 URLs).
streamYesStream UUID.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, which is unusual for a GET-shaped tool, and the description explains exactly why by disclosing that it assigns and saves stable IDs as a side effect. That is genuinely additive behavioral context beyond the annotation. It doesn't say whether that write is idempotent or whether it requires elevated permissions, so it is not a full 5.

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?

Three tight sentences: purpose first, the non-obvious side effect second, and the mirrored REST endpoint last. Every sentence carries information, though the REST endpoint reference is of marginal value to an agent.

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?

For a two-parameter read tool with no output schema, the description covers what is returned ('ordered items') and the one surprising behavior (ID assignment). It leaves the returned item shape and ordering stability unstated, but the annotations plus schema fill most of the remaining gaps.

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 100% and the enum values for 'type' are fully documented in the schema, so the description adds no parameter-level meaning. The description mentions 'legacy external-video items' but doesn't tie that to the external-videos enum value. Baseline 3 applies.

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?

States a specific verb and resource ('Get the ordered items of one of a stream's media queues') and scopes it to one queue type, which is precise enough to distinguish it from add_to_stream_queue and remove_from_stream_queue. It stops short of explicitly naming the siblings an agent should compare against, so it lands just under the top band.

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?

Usage is only implied: the description notes the returned IDs let items be 'targeted by playback and removal tools,' which hints that this is the discovery step before play/skip/remove. There is no explicit when-to-use statement or rule for choosing among the sibling queue tools.

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

list_destinationsList DestinationsB
Read-only
Inspect

List a stream's multistream destinations (additional platforms the stream is restreamed to). Mirrors GET /api/v1/streams/{stream}/destinations.

ParametersJSON Schema
NameRequiredDescriptionDefault
streamYesStream UUID.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered without description help. The description adds the definition of a destination and the REST endpoint it mirrors, but says nothing about pagination, ordering, or an empty-destination result.

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 sentences with no padding; the resource and its scope come first. The trailing endpoint reference is mildly redundant but cheap and occasionally useful for API-familiar agents.

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?

For a single-parameter read tool with full annotation coverage and no output schema, the description supplies enough to call it correctly. Missing only return-shape and pagination notes, which are minor here given the annotations.

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 100% and the single 'stream' parameter is already documented as a Stream UUID, so the schema carries the load. The description only implicitly ties the parameter to a stream, adding no syntax or format detail beyond the schema baseline.

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 gives a specific verb+resource (list a stream's multistream destinations) and even parenthesizes what a destination is, which helps an agent distinguish it from list_streams, list_tags, and list_media. It does not explicitly name the create/update/delete destination siblings, but the read-vs-write split is obvious from the name.

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?

There is no statement of when to use this tool versus alternatives, and no prerequisites (e.g., that a stream must exist or that destinations are only meaningful for restreaming setups). Usage is only weakly implied by the phrase 'a stream's destinations'.

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

list_foldersList FoldersA
Read-only
Inspect

List media library folders, optionally filtered by parent. Mirrors GET /api/v1/folders.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1).
per_pageNoFolders per page, 1-100 (default 15).
parent_idNoParent folder UUID, or the literal "root" for top-level folders.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, covering the safety profile. The description adds the REST endpoint mapping ('Mirrors GET /api/v1/folders'), which is minor context but discloses no additional behavior like pagination defaults or result ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core purpose front-loaded and the filter capability second. No filler.

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?

For a simple paginated read tool with full schema coverage and annotations carrying the safety profile, the description is adequate. It could note pagination behavior, but the schema covers it and no output schema exists to require return-value explanation.

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 100%, so the schema already documents page, per_page, and parent_id (including the 'root' literal). The description's mention of parent filtering adds no syntax or meaning beyond what the schema provides.

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?

States a specific verb ('List') and resource ('media library folders') plus the filtering capability. However, it doesn't differentiate itself from the sibling get_folder (single-folder retrieval) or explain why an agent would pick this over list_media.

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?

'optionally filtered by parent' implies the hierarchical browsing use case, but there is no explicit when-to-use guidance and no sibling alternatives (e.g., get_folder for a single folder) are named. Usage must be inferred.

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

list_mediaList MediaA
Read-only
Inspect

List/search the account's media library, paginated. Filter by type, a search term matched against the file name, and folder. Use this to find media UUIDs for queue tools. Mirrors GET /api/v1/media.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1).
typeNoFilter by media type.
searchNoSearch term matched against the file name.
per_pageNoFiles per page, 1-100 (default 15).
folder_idNoFilter by folder UUID, or the literal "root" for the library root.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that results are paginated and that it mirrors GET /api/v1/media, but says nothing about ordering, total counts, rate limits, or what each item contains; with annotations doing the heavy lifting this is an adequate but not rich disclosure.

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?

Three short sentences, front-loaded with the core action, followed by filters and then the usage cue. The trailing 'Mirrors GET /api/v1/media' is low-value for an agent but cheap, so it is close to optimal without being perfectly trimmed.

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?

For a read-only list tool with full schema coverage and no output schema, the description covers purpose, filters, pagination and the downstream use case (finding UUIDs). It omits any hint of the response shape or result ordering, a minor gap given the absence of an output schema.

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 100%, so every parameter (page, type, search, per_page, folder_id) is already documented, including defaults, ranges and the 'root' literal. The description restates three of the filters but adds no syntax or edge-case meaning beyond the schema, so baseline 3 applies.

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 names a specific verb and resource ('List/search the account's media library') and states the paginated scope plus the filters available, which clearly separates it from the single-item get_media sibling. It stops short of explicitly contrasting itself with list_folders/list_tags/list_streams, so an agent must infer the sibling boundaries.

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

Usage Guidelines4/5

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

'Use this to find media UUIDs for queue tools' gives a concrete downstream context for when to call it, which is genuinely actionable routing guidance. There are no exclusions or named alternatives, so it falls short of a 5.

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

list_streamsList StreamsA
Read-onlyIdempotent
Inspect

List the streams owned by the account, newest first, paginated. Response includes meta/links for pagination. Mirrors GET /api/v1/streams.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1).
per_pageNoStreams per page, 1-100 (default 15).

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so safety is covered. The description adds genuinely new behavioral information beyond that: sort order ('newest first'), pagination behavior, and that the response carries meta/links — details an agent would otherwise have to discover empirically.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action and scope, followed by response/pagination behavior and the underlying endpoint. Every sentence carries information an agent or developer can act on; nothing is padding.

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?

With no output schema, the description usefully compensates by noting that meta/links pagination data is returned. For a zero-required-parameter list tool this is close to complete; the only notable omission is routing guidance relative to the many list_*/get_*/show_* siblings.

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 100%, with both page and per_page documented including ranges and defaults, so the schema carries the parameter burden. The description only implies pagination semantics ('paginated', meta/links) without adding syntax or format detail, making the baseline 3 appropriate.

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?

States a specific verb and resource ('List the streams') plus scope ('owned by the account') and ordering ('newest first'), which is more than a bare restatement. It does not, however, distinguish itself from siblings like get_stream or show_streams, which an agent could reasonably confuse with this one.

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?

There is no when-to-use or when-not-to-use guidance. The phrase 'owned by the account' implicitly scopes the tool, but nothing tells the agent when to prefer list_streams over get_stream, show_streams, or the other list_* siblings, and no prerequisites are stated.

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

list_tagsList TagsA
Read-onlyIdempotent
Inspect

List the account's tags (used to organize streams). Mirrors GET /api/v1/tags.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds useful context that this mirrors GET /api/v1/tags, but says nothing about pagination, result size, or ordering.

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?

A single short sentence with a parenthetical and an API reference, front-loaded with the verb and resource. No filler, though the 'Mirrors GET /api/v1/tags' clause is marginally useful only to API-aware agents.

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?

For a zero-parameter read-only list tool with no output schema, annotations carrying the safety profile and a clear resource statement, the description is nearly sufficient. It could note the return shape or pagination, but little is genuinely missing.

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 tool takes zero parameters, so the schema baseline of 4 applies; nothing in the description is needed to explain inputs, and none is provided.

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?

States a specific verb (List) and resource (tags), and the parenthetical clarifies what tags are for (organizing streams). It does not explicitly contrast itself with sibling list_* tools, but the resource name is unambiguous enough to distinguish it from list_folders, list_media, etc.

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?

Usage is implied by the purpose: enumerate the account's tags. There is no statement of when to prefer this over create_tag/update_tag/delete_tag, nor any preconditions or exclusions. Adequate but with a clear gap.

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

move_files_to_folderMove Files To FolderA
DestructiveIdempotent
Inspect

Move up to 100 media files into a folder you own, or to the library root when folder_id is omitted. Mirrors POST /api/v1/folders/move-files.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idNoDestination folder UUID (owned), or omit/use null to move to the library root.
media_idsYesMedia UUIDs to move, all owned by the account.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds the meaningful precondition that the destination folder must be owned by the caller, plus an endpoint mapping, but says nothing about partial failure, overwrite semantics, or the effect on source folders.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the core operation and its key constraint front-loaded; nothing is padded or repeated for filler.

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?

For a two-parameter mutation tool whose annotations carry the safety profile and whose schema fully documents inputs, the definition is essentially sufficient. It leaves only minor operational details (partial-failure behavior, whether files are removed from their previous folder) unstated, and there is no output schema to explain.

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 100%, so both parameters are fully documented in the schema, including the root default and the maxItems=100 constraint. The description restates the same 'up to 100' and 'folder_id omitted' facts rather than adding new meaning, so the baseline 3 applies.

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 and resource ('move media files') plus scope constraints: the 100-file cap and the root-vs-folder destination behavior. No sibling tool performs a move, so the definition is unambiguously distinct without needing to name an alternative.

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 'or to the library root when folder_id is omitted' clause tells the agent which destination applies, which implies when to use it. However, there is no explicit when-not guidance, no mention of prerequisites beyond ownership, and no comparison to sibling tools like update_media or create_folder.

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

play_stream_queue_itemPlay Stream Queue ItemA
Destructive
Inspect

Jump to a playable item already in an active stream queue, starting it from the beginning without restarting the stream. Requests a change to live output; repeating the command can restart the item again. Get item_id from get_stream_queue. Mirrors POST /api/v1/streams/{stream}/queues/{type}/play; 202 acknowledges an asynchronous request, not confirmed playback.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesQueue: video, audio, or external-videos.
streamYesStream UUID.
item_idYesExisting queue item ID from get_stream_queue.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations declare a destructive, non-read-only, open-world mutation, and the description adds real context beyond them: it 'requests a change to live output', repeating the command can restart the item, and the 202 'acknowledges an asynchronous request, not confirmed playback'. That async/non-confirmation nuance is exactly the kind of behavioral disclosure an agent needs and cannot get from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, followed by behavioral caveats, the prerequisite for item_id, and the underlying API semantics. Every sentence carries distinct information with no filler.

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

Completeness5/5

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

For a mutation tool with no output schema, the description is complete: it covers purpose, preconditions, live-output side effects, repeat behavior, and explicitly explains that the 202 is an async acknowledgment rather than confirmed playback. An agent has everything needed to invoke it correctly.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds provenance for item_id ('Get item_id from get_stream_queue'), telling the agent where the identifier comes from rather than just that it exists. This is a meaningful addition over the schema text.

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?

The description states a specific verb+resource: 'Jump to a playable item already in an active stream queue, starting it from the beginning without restarting the stream.' It clarifies the scope (must already be in an active queue) and the key behavioral distinction (playing from start vs restarting), which separates it from skip/reorder siblings.

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?

It implies the precondition (item must already be in an active stream queue) and points to get_stream_queue for obtaining item_id, giving usable context. However, it never explicitly contrasts with siblings like skip_stream_queue or reorder_stream_queue, so the 'when to use this vs alternatives' decision is left to inference.

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

remove_destinationRemove DestinationA
Destructive
Inspect

Permanently remove a multistream destination from a stream. Live destinations must be stopped first. Connected destinations must be disconnected in the stream dashboard. Mirrors DELETE /api/v1/streams/{stream}/destinations/{destination}.

ParametersJSON Schema
NameRequiredDescriptionDefault
streamYesStream UUID.
destinationYesDestination UUID.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so permanence is expected; the description reinforces 'Permanently' and adds two non-obvious preconditions (stop live streams, disconnect connected destinations) that the annotations do not convey. It stops short of describing failure modes or whether the operation is recoverable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: action, precondition, and API mapping. The most important information (permanent removal plus prerequisites) is front-loaded.

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

Completeness5/5

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

For a two-param destructive tool with no output schema this is complete: what it does, what must happen before calling it, and which endpoint it mirrors. Nothing needed to invoke it correctly is missing.

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 coverage is 100% with both UUID parameters documented in-schema. The description only echoes them implicitly via the REST path '(streams/{stream}/destinations/{destination})', adding endpoint-mapping context but no new meaning about the identifiers.

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 ('Permanently remove'), a specific resource ('multistream destination'), and the containment scope ('from a stream'). This clearly distinguishes it from add_destination and update_destination without opening any schema.

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

Usage Guidelines4/5

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

Gives concrete preconditions: live destinations must be stopped first, and connected destinations must be disconnected in the dashboard. It does not name an alternative tool or explain when to prefer update_destination instead, but the operational gating is clear.

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

remove_from_stream_queueRemove From Stream QueueA
Destructive
Inspect

Remove one item from a stream queue by its id (media UUID for storage queues; item id for external-videos). The media file itself is not deleted. Queue changes can affect live output. Mirrors DELETE /api/v1/streams/{stream}/queues/{type}/{mediaId}.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesQueue type: video (main video queue), audio (music), audio-secondary (secondary audio), external-videos (externally hosted .mp4 URLs).
streamYesStream UUID.
mediaIdYesQueue item id (media UUID for storage queues).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, openWorldHint=true and readOnlyHint=false, so the safety profile is covered. The description adds real value beyond them: it scopes the destruction ('The media file itself is not deleted') and warns of a live side effect ('Queue changes can affect live output') that the annotations do not express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, zero filler, with the identification semantics front-loaded before the caveats and the endpoint reference last. Every sentence carries distinct information.

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

Completeness5/5

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

For a 3-parameter mutation tool with full schema coverage, existing annotations and no output schema, nothing an agent needs is missing: the identifier ambiguity, the non-destructive-to-file guarantee, and the live-output risk are all stated.

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?

Schema coverage is 100%, so the baseline is 3 and the schema already documents all three parameters. The description goes further by explaining that mediaId is a media UUID for storage queues but a queue item id for external-videos, adding meaning the schema description does not supply.

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+resource ('Remove one item from a stream queue by its id') and immediately disambiguates the ambiguous identifier semantics per queue type. It also names the underlying endpoint, so an agent can distinguish this from delete_media at a glance.

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 line 'The media file itself is not deleted' implicitly routes the agent away from delete_media, and 'Queue changes can affect live output' signals the operational context. But it never explicitly states when to use this versus skip_stream_queue or play_stream_queue_item, nor any prerequisites, so usage is only implied.

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

reorder_stream_queueReorder Stream QueueA
DestructiveIdempotent
Inspect

Replace a stream queue's playback order with the given full ordered list of item ids. Queue changes can affect live output. Mirrors PATCH /api/v1/streams/{stream}/queues/{type}/reorder.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesQueue type: video (main video queue), audio (music), audio-secondary (secondary audio), external-videos (externally hosted .mp4 URLs).
orderYesComplete ordered list of queue item ids.
streamYesStream UUID.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered structurally. The description still adds real operational context beyond that: that changes can affect live output, and that the call replaces the entire existing order rather than merging into it.

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 sentences, purpose front-loaded, and the live-output warning follows immediately. The trailing 'Mirrors PATCH /api/v1/streams/{stream}/queues/{type}/reorder' is REST trivia that an MCP agent cannot act on, so it does not fully earn its place.

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?

For a 3-required-param mutation with no output schema, the definition covers what is replaced and the live-output consequence, which is the essential context. It omits error behavior when ids are stale or the list is partial, and any permission requirements, but nothing critical for correct invocation is missing.

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 100%, including an enum breakdown of every queue 'type' value, so the schema does the heavy lifting. The description's only added nuance is 'full ordered list', which reinforces the replacement semantics of 'order' but adds no format, id-validity, or completeness rules beyond the schema.

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 and resource ('Replace a stream queue's playback order') and qualifies the input as a 'full ordered list of item ids', which implicitly separates it from the incremental add_to_stream_queue / remove_from_stream_queue siblings. An agent can tell replace-semantics from append/remove-semantics without opening any schema.

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 never says when to choose this tool over add_to_stream_queue, remove_from_stream_queue, or play_stream_queue_item, nor does it state prerequisites such as whether the queue or stream must be active. 'Queue changes can affect live output' is a caution, not usage routing.

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

revoke_upload_ticketsRevoke Upload TicketsA
Destructive
Inspect

Immediately revoke every active upload ticket for this account. Subsequent requests using those tickets will receive 401; create a new ticket to resume. Mirrors DELETE /api/v1/media/uploads.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false; the description goes further by specifying immediacy, bulk scope ('every active ticket'), the concrete failure mode for stale callers (401), and the recovery path. It omits whether in-flight uploads are cancelled or whether the revocation is reversible, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and scope, then the consequence, then the remedy. Every sentence carries distinct information; nothing is redundant filler.

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

Completeness5/5

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

For a zero-parameter, destructive, account-wide operation with annotations covering the safety profile and no output schema, the description supplies everything an agent needs: scope, effect timing, downstream consequence, and how to recover.

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?

Zero parameters, so per the rubric the baseline is 4. The description involves no parameter semantics to explain, and none are needed.

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?

Specific verb (revoke) plus precise resource and scope (every active upload ticket for this account), which cleanly separates it from create_upload_ticket and delete_media. It even anchors to the REST endpoint it mirrors, so an agent knows exactly what operation this is.

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

Usage Guidelines4/5

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

Clear context: use this to invalidate all outstanding tickets, and 'create a new ticket to resume' points the agent to the create_upload_ticket sibling for the follow-up path. No explicit when-not-to-use or bulk-vs-single alternatives are given, so it stops short of a 5.

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

show_streamsStreamsA
Read-onlyIdempotent
Inspect

Open an interactive overview of your Upstream streams, with statuses, pagination and links to the stream builder. Returns the same account-scoped data as list_streams.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1).
per_pageNoStreams per page, 1-100 (default 15).

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, covering the safety profile. The description adds useful context (interactive overview with statuses, pagination, and builder links), but discloses no auth requirements, return format beyond links, or navigation behavior.

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 tight sentences, the primary purpose front-loaded and the sibling relationship stated second. No filler, though the second sentence introduces slight tension with the first rather than fully resolving it.

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?

For a read-only tool with a full-coverage schema and annotations carrying the safety profile, the description covers purpose, content, and the sibling relationship adequately. It could clarify whether this is a UI-only view versus a data endpoint, but no critical invocation detail is missing.

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 100%, so page and per_page are already documented with defaults and range. The description only alludes to 'pagination' and adds no syntax or semantics beyond the schema; baseline 3 is appropriate.

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 names a specific verb and resource ('Open an interactive overview of your Upstream streams') and lists what the view contains (statuses, pagination, links). It also relates itself to a sibling by noting it returns 'the same account-scoped data as list_streams.' The split between 'open an overview' (UI-like) and 'returns data' leaves the exact nature slightly ambiguous, so it falls short of a clean 5.

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?

It references list_streams as an equivalent-data alternative, which hints at a routing decision, but never states when to prefer this tool over that one or over get_stream. Usage is implied rather than instructed.

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

skip_stream_queueSkip Stream QueueA
Destructive
Inspect

Skip to the next item on an active stream without restarting it. Requests a change to live output; repeating the command can skip another item. Follows playback order, including shuffle. Video and external-videos share the video player. Mirrors POST /api/v1/streams/{stream}/queues/{type}/skip; 202 acknowledges an asynchronous request, not confirmed playback.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesQueue: video, audio, or external-videos.
streamYesStream UUID.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, so the bar is lower, yet the description still adds real value: it explains the 202 means an asynchronous request was accepted, not confirmed playback, and that repetition advances again. It stops short of saying what happens to the currently playing item or whether auth/permission is needed.

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?

Four compact sentences, front-loaded with the behavior before the API-level detail. The endpoint-mirroring clause is marginally incidental for an agent, but the async/202 sentence that follows it is high value.

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?

With no output schema, the description correctly carries the async semantics and ordering behavior. It is nearly complete for a 2-parameter tool, leaving only error/precondition behavior on a non-active stream unspecified.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning for the 'type' enum by noting that 'video' and 'external-videos' share the video player, which is not captured by the schema's flat enum list.

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 (skip) and resource (item on an active stream) plus the key constraint 'without restarting it'. This clearly separates it from siblings like get_stream_queue and add_to_stream_queue/remove_from_stream_queue, which manipulate the queue rather than advancing playback.

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

Usage Guidelines4/5

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

'On an active stream' establishes the precondition, and 'repeating the command can skip another item' tells the agent it is re-invokable to advance multiple times. It does not name an alternative (e.g. play_stream_queue_item for jumping to a specific item) or state what to do when the stream is inactive, so it stops short of explicit alternatives.

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

start_streamStart StreamA
Destructive
Inspect

Start broadcasting a stream to its platform. May be rejected (403) when the plan/trial does not allow streaming. Mirrors POST /api/v1/streams/{stream}/start.

ParametersJSON Schema
NameRequiredDescriptionDefault
streamYesStream UUID.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true, so the mutating/outbound nature is covered. The description adds value beyond that by disclosing the plan/trial authorization gate and the specific 403 rejection behavior, though it does not say whether an already-live stream errors or is idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, fully front-loaded with the action first, then the constraint and endpoint reference. No filler or redundancy.

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?

For a single-parameter action with no output schema, the description covers the action, the authorization constraint, and the underlying endpoint, with annotations carrying the safety profile. Slightly incomplete on success semantics and idempotency behavior.

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?

Only one parameter ('stream') and the schema already documents it at 100% coverage as 'Stream UUID.' The description adds no format, sourcing, or lookup guidance for that identifier, so baseline 3 applies.

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 ('Start') and resource ('broadcasting a stream to its platform'), making it immediately distinguishable from siblings like stop_stream, create_stream, or update_stream. The REST endpoint mirror (POST /api/v1/streams/{stream}/start) further pins down the exact operation.

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

Usage Guidelines4/5

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

Gives a concrete precondition and failure mode: rejection with 403 when the plan/trial does not permit streaming. This tells the agent when the call will fail, but it does not explicitly contrast with stop_stream or state when a stream must already exist/is in a stoppable state.

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

stop_streamStop StreamA
Destructive
Inspect

Stop a running stream. This interrupts a live broadcast for viewers — confirm with the user before stopping a live stream. Mirrors POST /api/v1/streams/{stream}/stop.

ParametersJSON Schema
NameRequiredDescriptionDefault
streamYesStream UUID.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered; the description goes further by disclosing the user-visible consequence (live viewers are interrupted) and a required confirmation step. It does not cover reversibility or any state side effects, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero padding, with the action and its impact front-loaded before the caution and the REST mapping. Every sentence earns its place.

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?

For a one-parameter mutation with annotations and no output schema, the description supplies the essentials: what it does, the blast radius, and the confirmation caveat. Missing only return/status behavior, which is a minor omission here.

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 100% for the single 'stream' parameter, so the schema already documents it fully and the baseline is 3. The description only echoes the parameter via the REST path template and adds no format or lookup detail beyond UUID naming.

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?

States a specific verb and resource ('Stop a running stream') and adds the meaningful qualifier that it interrupts a live broadcast, which distinguishes it from the neighboring delete_stream and start_stream. It does not name those siblings explicitly, so it falls short of a 5.

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?

Gives one genuine usage constraint — confirm with the user before stopping a live stream — which is real guidance. However, it never says when to choose stop_stream versus delete_stream or how it relates to stream lifecycle/start_stream, so the alternative-selection guidance is only implied.

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

update_destinationUpdate DestinationA
DestructiveIdempotent
Inspect

Partially update a multistream destination (only provided fields change). May overwrite settings, change scheduled output, pause a destination or sync a connected platform's title. Live configuration changes and connected-destination lifecycle changes are restricted by the API. Mirrors PATCH /api/v1/streams/{stream}/destinations/{destination}.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoStream key on the destination platform.
urlNoIngest URL override, or null to clear it.
nameNoDestination name, max 100 chars.
statusNoDestination status.
streamYesStream UUID.
platformNoDestination platform, e.g. youtube, twitch, kick, custom, customsrt.
destinationYesDestination UUID.
include_in_scheduleNoInclude this destination in the stream schedule.

TDQS

A3.7/5.0
Behavior4/5

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

With annotations already declaring destructiveHint=true, idempotentHint=true, and openWorldHint=true, the bar is lower, yet the description still adds real value: it clarifies that only provided fields change (partial PATCH, not full replace) and that certain live and lifecycle changes are rejected by the API. It stops short of saying what is destroyed or what permissions are needed, so it is not a 5.

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?

Three tight sentences, front-loaded with the core PATCH semantics before the capability list and the API restriction. Slightly dense, but no sentence is wasted and the endpoint reference is placed last where it belongs.

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?

For an 8-parameter mutation tool with no output schema but full annotation coverage, the description supplies the key behavioral context an agent needs: partial-update behavior, side effects, and API-imposed restrictions. It omits any indication of the response shape or error behavior, which is the only notable hole.

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 100%, so every parameter is already documented in the schema and the baseline is 3. The description contributes only the general 'only provided fields change' rule plus a hint that 'name' can be synced from a connected platform; it adds no per-parameter meaning beyond the schema.

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 names a specific verb and resource ('Partially update a multistream destination') and even cites the underlying operation ('Mirrors PATCH /api/v1/streams/{stream}/destinations/{destination}'), which makes the read-modify semantics unambiguous. The word 'partially' implicitly separates it from add_destination and remove_destination, but no sibling is named outright.

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?

It lists what the tool can do ('overwrite settings, change scheduled output, pause a destination or sync a connected platform's title') but never states when to prefer this over add_destination, remove_destination, or update_stream. The note that live configuration and connected-destination lifecycle changes are API-restricted is a useful constraint, but it is a limitation rather than routing guidance.

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

update_folderUpdate FolderA
DestructiveIdempotent
Inspect

Rename a folder or move it under another parent (parent_id null moves it to the root). Mirrors PATCH /api/v1/folders/{folder}.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFolder name, max 255 chars.
folderYesFolder UUID.
parent_idNoNew parent folder UUID, or null for the root.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is carried structurally. The description only adds the root-move semantics and an endpoint pointer, and it never explains why the operation is flagged destructive (e.g., effect on contained files/subfolders) – a meaningful gap for a flagged-destructive mutation.

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?

A single front-loaded sentence covers both behaviors efficiently. The trailing 'Mirrors PATCH /api/v1/folders/{folder}' is mildly redundant but short and provides an API mapping for agents that reason over REST endpoints.

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?

For a three-parameter mutation with full schema coverage and complete annotations, the description covers the essential operations and the null-parent case. It is nearly complete, with the only real omission being the downstream effect of moving a folder (children/contents), which matters given destructiveHint=true.

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 100%, so all three parameters (name, folder, parent_id) are already documented with types and constraints. The description's note that parent_id null moves to root duplicates the schema text 'New parent folder UUID, or null for the root', adding no new semantics.

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?

States two specific operations on a specific resource: rename and move a folder. The 'move it under another parent' phrasing implicitly separates it from move_files_to_folder (which relocates files) and update_media/update_stream siblings, though no sibling is named explicitly.

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?

Use is implied by the rename/move verbs, and the parent_id=null-to-root rule is stated, but there is no explicit when-to-use/when-not guidance and no mention of prerequisites (e.g., needing the target parent to exist or permissions).

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

update_mediaUpdate MediaB
DestructiveIdempotent
Inspect

Update a media file's metadata: name and audio tags (title, artist, album, year, genre). Only provided fields change. Mirrors PATCH /api/v1/media/{media}.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFile name, max 255 chars.
yearNoAudio tag: year, or null to clear it.
albumNoAudio tag: album, or null to clear it.
genreNoAudio tag: genre, or null to clear it.
mediaYesMedia (storage) UUID.
titleNoAudio tag: title, or null to clear it.
artistNoAudio tag: artist, or null to clear it.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnly=false, so the safety profile is covered. The description adds the partial-update semantic ('Only provided fields change') and mirrors PATCH /api/v1/media/{media}, which is genuinely useful, but it does not explain what is destructive (e.g. tag clearing) or any auth/permission needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: purpose and field scope first, then the update semantic and the underlying endpoint. Every clause carries information with no padding.

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?

For a mutation tool with no output schema, the annotations plus 100% param coverage plus the PATCH mirror leave little missing. It could mention effects on dependent resources or permission requirements, but an agent has enough to call it correctly.

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 100%, so the schema already documents each field including the null-to-clear behavior and max lengths. The description only restates the field grouping as audio tags, adding little beyond what the schema provides — the baseline 3 is appropriate.

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?

States a specific verb and resource ('Update a media file's metadata') and enumerates the editable fields (name plus audio tags). This implicitly separates it from siblings like update_tag and update_stream, though it never names those alternatives explicitly.

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?

No when-to-use guidance, no prerequisites, and no routing to or away from the many sibling update_* tools. The only usable cue is 'Only provided fields change', which clarifies the update mode but not when to choose this tool.

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

update_streamUpdate StreamA
DestructiveIdempotent
Inspect

Partially update a stream (PATCH semantics: only provided fields change). Same fields as create_stream except type (creation-only). May overwrite settings or tags and affect live output or scheduled starts/stops. Mirrors PATCH /api/v1/streams/{stream}.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoStream key. custom, instagram or rumble: must start rtmp:// or rtmps://; customsrt: srt://.
urlNoIngest URL override, or null to clear it.
nameNoStream name, max 100 chars.
tagsNoTag names to attach (replaces the existing set; missing names are created).
streamYesStream UUID.
volumesNoVolumes 0-100: main, secondary, video.
encodingNoEncoding settings: resolution, frame_rate, bitrate, audio_bitrate (128-328).
platformNoTarget platform, e.g. youtube, twitch, kick, custom, customsrt.
playbackNoPlayback: mode (loop|single), video_order (loop|shuffle), audio_order (loop|shuffle), default_image_duration (1-3600s).
scheduleNoSchedule: is_scheduled/scheduled_at (start), is_scheduled_end/scheduled_end_at (end), repeat_schedule (boolean), mode (null|continuous), continuous_start_type (now|scheduled), continuous_stop_type (never|scheduled), continuous_stop_at, stream_duration_hours/stream_duration_minutes and break_duration_hours/break_duration_minutes (continuous mode active/break time per cycle, each combo >=5min), preserve_state (resume playback after a continuous-mode cycle restart; cannot change while the stream is live).
recordingNoRecording: enabled (boolean).
video_fitNoVideo fit: object_fit (cover|contain), style, background_color.
descriptionNoDescription, or null to clear it.
transitionsNoTransitions: fade_duration (0-20), animation_type (random|fade|slide|scale|swipeAway), animation_duration (0-20).

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already flag destructiveHint and idempotentHint, so the bar is lower. The description still adds real value: PATCH semantics (only supplied fields change) and explicit warnings that it may overwrite settings/tags and affect live output or scheduled start/stop behavior.

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?

Single compact paragraph, front-loaded with the core verb and PATCH semantics, then warnings. Every clause carries weight; not padded, though the create_stream cross-reference requires the reader to know that sibling.

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?

For a 14-param destructive mutation with nested objects and no output schema, the description covers semantics, side-effect scope, and endpoint parity. It omits auth/permission requirements and return behavior, but annotations plus rich schema cover most of the remaining need.

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?

With 100% schema description coverage the schema already documents all 14 parameters, so baseline 3 applies. The description adds only a cross-reference ('same fields as create_stream except type'), which gives some semantics but no per-parameter detail.

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?

States a specific verb (partially update), resource (a stream), and defines the update style via PATCH semantics. It distinguishes itself from create_stream by noting type is creation-only, but does not differentiate from other update_* siblings.

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?

Implies use for modifying an existing stream and cross-references create_stream for the field set, giving useful context. However it never states when to prefer this over alternatives or any prerequisites (e.g., permissions, live-state conditions).

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

update_tagUpdate TagA
DestructiveIdempotent
Inspect

Update a tag's name, color or icon. Only provided fields change. Mirrors PATCH /api/v1/tags/{tag}.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag id.
iconNoIcon (emoji or short string); null clears it.
nameNoTag name, max 255 chars, unique per account.
colorNoHex color like #f80, #ff8800 or #ff8800cc; null clears it.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds non-obvious behavioral detail beyond that: it is a PATCH-style partial update where unspecified fields are preserved. It does not explain what makes the call destructive (nulling fields), though the schema covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with no filler: purpose, update semantics, and API mapping. Every sentence earns its place and the key information (what changes) comes first.

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?

For a four-parameter mutation tool with full schema coverage and annotations covering the safety profile, no output schema is needed and the description is nearly sufficient. It could mention the uniqueness conflict on name or that null clears fields, but those are already in the schema.

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 100% (formats for color, max length for name/icon, null-clearing semantics), so the schema carries the parameter burden. The description names three of the four parameters but adds no syntax or constraints beyond what the schema already states.

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 gives a specific verb (update) plus resource (tag) and enumerates the mutable fields (name, color, icon), so an agent can distinguish it from create_tag and delete_tag. It stops short of explicitly contrasting itself with the sibling update_* tools, but the resource is unambiguous.

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?

"Only provided fields change" implies partial-update usage, which is genuinely useful guidance, but there is no explicit when-to-use versus delete_tag/create_tag routing or prerequisite information. Usage is implied rather than stated.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Addedplay_stream_queue_item
    • Addedskip_stream_queue
  2. 1 tool update
    • Addedshow_streams
  3. 32 tool updates
    • First observedadd_destination
    • First observedadd_to_stream_queue
    • First observedcreate_folder
    • First observedcreate_stream
    • First observedcreate_tag
    • First observedcreate_upload_ticket
    • First observeddelete_folder
    • First observeddelete_media
    • First observeddelete_stream
    • First observeddelete_tag
    • First observedget_account
    • First observedget_folder
    • First observedget_media
    • First observedget_stream
    • First observedget_stream_queue
    • First observedlist_destinations
    • First observedlist_folders
    • First observedlist_media
    • First observedlist_streams
    • First observedlist_tags
    • First observedmove_files_to_folder
    • First observedremove_destination
    • First observedremove_from_stream_queue
    • First observedreorder_stream_queue
    • First observedrevoke_upload_tickets
    • First observedstart_stream
    • First observedstop_stream
    • First observedupdate_destination
    • First observedupdate_folder
    • First observedupdate_media
    • First observedupdate_stream
    • First observedupdate_tag

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    4 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources