Skip to main content
Glama

Assign content to screens

assign_content
DestructiveIdempotent

Change what screens play by default: a lasting assignment that stays until changed, not a timed takeover. Target one screen (screenId), a list (screenIds), or every screen at or under a location (nodeId, e.g. "all California stores" in one call); screenIds and nodeId combine. Screens are notified at once. In a bulk call, a screen the content is not shared to, or whose location needs approval for it, is skipped and counted (notShared, needsApproval) rather than failing the call; the response names the screens that changed. Pass contentKind null to clear one screen. Use cast_content for a temporary takeover that ends by itself, quick_post to write and show a new message. Requires screen.cast.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nodeIdNoLocation (org node) id: assign to every screen at or under it that you can reach (max 1000). Combines with screenIds.
screenIdNoOne target screen (e.g. scr_aurora_42, from search_screens).
contentIdNoId of the content to play: a playlist or schedule from list_items, a media file or app from search_media. Omit only when contentKind is null.
screenIdsNoBulk alternative: assign the same content to every listed screen (max 200).
contentKindYesKind of content contentId names. null clears the screen's assigned content (one screenId only).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / contentId / description
      Added value: +"Id of the content to play: a playlist or schedule from list_items, a media file or app from search_media. Omit only when contentKind is null."
    • addedInput schema / properties / contentKind / description
      Added value: +"Kind of content contentId names. null clears the screen's assigned content (one screenId only)."
    • changedInput schema / properties / screenId / description
      Previous value: -"Single target screen."New value: +"One target screen (e.g. scr_aurora_42, from search_screens)."
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare destructive/idempotent/openWorld, but the description goes well beyond them: it discloses the required `screen.cast` permission, the lasting-vs-timed semantics, that screens are notified at once, and the partial-failure contract (skipped screens counted as notShared/needsApproval instead of failing the call). That partial-success behavior is the kind of thing an agent genuinely needs and cannot get from structured fields.

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?

One dense paragraph, front-loaded with the core distinction before targeting modes and failure semantics. Every clause carries information, though the mid-paragraph switch between targeting, notification, and error handling makes it slightly harder to scan than a short bulleted split would be.

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?

An output schema exists so return values need not be spelled out, and the description still notes that the response names changed screens. With permissions, failure modes, targeting, and the clearing path all covered, nothing needed to call this correctly is 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?

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: nodeId is illustrated with a concrete use case ('all California stores' in one call), the combination rule between screenIds and nodeId is restated at the tool level, and the null-clears-one-screen constraint is called out with its single-screen limitation. It does not, however, explain contentId/contentKind pairing beyond what the schema says.

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 ('Change what screens play by default') and immediately scopes it as a lasting assignment rather than a timed takeover, which is exactly the axis that separates it from cast_content. An agent can distinguish it from all siblings 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 Guidelines5/5

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

Explicitly routes: 'Use cast_content for a temporary takeover that ends by itself, quick_post to write and show a new message.' It also states when it applies (default, lasting, until changed) and enumerates the three targeting modes plus their combination rule.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources