agentView
Server Details
Display delivery platform for AI agents. Push HTML, dashboards and live data to screens.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
57 toolsassign_display_categoriesAssign Display CategoriesADestructiveIdempotentInspect
Assigns displays to categories. mode 'replace' (default) sets the full category list of each display in display_ids to category_ids; mode 'add' or 'remove' adds/removes one category (category_ids[0]) across many displays without touching other assignments. Discover IDs with list_display_categories; create categories with manage_display_category.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | replace (default) sets the exact list; add/remove mutates one category across displays. | |
| display_ids | Yes | Display profile IDs to update. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| category_ids | Yes | Category IDs; for mode 'add'/'remove' only the first entry is used. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| results | No | |
| categoryId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=true, but the description adds the crucial behavioral nuance of what actually gets destroyed: replace 'sets the full category list' (overwrites all assignments), while add/remove does so 'without touching other assignments.' This is exactly the 'what gets destroyed' context the rubric credits, and it is consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler. The core action is front-loaded, mode semantics follow in order of importance, and the sibling-tool routing is one tight clause at the end. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, multi-mode tool, the description covers modes, defaults, scoping behavior, and ID discovery/creation routing. With annotations covering the safety profile, a 100%-covered schema, and an output schema present, the only notable gap is failure/partial-failure semantics (e.g., behavior when a display_id is invalid), which is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter semantics the schema's individual field descriptions don't fully convey: how display_ids and category_ids interact differently per mode, that replace sets the full list per display, and that add/remove applies one category across many displays. This goes beyond merely restating schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: 'Assigns displays to categories.' The three modes (replace/add/remove) are each defined with precise semantics, and the description names the two most confusable siblings (list_display_categories, manage_display_category) and what each is for, so an agent can tell assignment apart from discovery and creation without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance per mode: replace for setting the exact category list, add/remove for surgically mutating one category across many displays. It also names alternatives for adjacent operations ('Discover IDs with list_display_categories; create categories with manage_display_category'), which is clear routing against the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authenticateAuthenticate SessionAIdempotentInspect
Validates a JWT agent token and reports the identity and scope it carries. It caches NOTHING: no server-side state remembers this call, so the credential still travels on every protected call afterwards. Use only when your client cannot send an Authorization: Bearer header; prefer session_request_id-based auth via create_auth_session. Not needed after get_auth_session returned 'active'.
| Name | Required | Description | Default |
|---|---|---|---|
| jwt | No | Alias for token. Use this if your wrapper cannot send the 'token' field reliably. | |
| token | No | The raw JWT token string returned by get_auth_session or an OAuth access token. Pass the opaque token exactly as received — do not add a 'Bearer ' prefix and do not expand or decode the JWT claims. | |
| access_token | No | Alias for token. Use this if your wrapper follows OAuth naming conventions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| No | ||
| scope | No | |
| userId | No | |
| isAgent | No | |
| expiresAt | No | |
| sessionBound | No | |
| authenticated | No | |
| transportAuthRequired | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a valuable behavioral trait beyond the annotations: 'It caches NOTHING: no server-side state remembers this call, so the credential still travels on every protected call afterwards.' This explains the statelessness and its practical consequence. Annotations already provide idempotentHint and destructiveHint, so the description's extra context earns a 4 rather than 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each with a distinct purpose: purpose, behavioral caveat, and usage routing. No filler words, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what the tool does, when it should and shouldn't be used, and the crucial consequence of its statelessness. With an output schema available to describe return values, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (jwt, token, access_token) fully described, including aliases and usage warnings. The description does not add parameter-level detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'Validates a JWT agent token and reports the identity and scope it carries.' It clearly distinguishes this tool from create_auth_session (session_request_id-based auth) and get_auth_session (active status) in the same description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it ('Use only when your client cannot send an Authorization: Bearer header'), names the preferred alternative (create_auth_session), and gives a negative condition ('Not needed after get_auth_session returned active'). This is complete routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
broadcast_contentBroadcast ContentADestructiveInspect
Sends HTML to many displays at once. Target explicit display_ids, all=true for every accessible display, or include_category_ids to reach every display in those categories (include_descendants for subcategories, dry_run to preview matches without sending). Locked displays are skipped with reasons. For a single display use send_html. Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | true targets all accessible displays. | |
| html | No | Complete HTML document. Mutually exclusive with base64_html. | |
| dry_run | No | Preview: return the matched displays without sending. Works with all targeting modes. | |
| duration | No | Seconds the content stays; 0 = indefinite. | |
| base64_html | No | Base64-encoded HTML. Mutually exclusive with html. | |
| description | No | Short summary of the content being sent (required when sending). | |
| display_ids | No | Display profile IDs to target. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. | |
| include_descendants | No | With include_category_ids: also include subcategories. | |
| include_category_ids | No | Category IDs: broadcast to displays assigned to these categories. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sent | No | |
| dryRun | No | |
| matched | No | |
| results | No | |
| skipped | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructive mutation, read/write behavior, and non-idempotence. The description adds behavioral disclosures beyond the annotations: locked displays are skipped with reasons, all=true means 'every accessible display', and dry_run previews without sending. It also states the auth requirement 'Requires content scope'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences front-load the core purpose and then layer targeting, preview, and constraints. No filler or redundant restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter broadcast tool with an output schema present, the description covers auth scope, targeting modes, locked-display failure behavior, and alternative routing. It stops short of stating explicit conflict rules between targeting parameters, but the 'or' phrasing and full schema coverage make the remaining ambiguity minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema covers 100% of parameters, the description adds grouping semantics: it identifies the three mutually exclusive targeting strategies ('explicit display_ids, all=true... or include_category_ids'), explains include_descendants as subcategory expansion, and positions dry_run as a preview option across all modes. This synthesis is value beyond the per-parameter schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Sends HTML to many displays at once' states a specific verb plus resource and scope. It distinguishes itself from send_html with 'For a single display use send_html', and names the three targeting modes. This leaves no ambiguity about what the tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to prefer the sibling send_html ('For a single display') and when broadcast_content is appropriate (explicit display_ids, all=true, or include_category_ids). It also covers preview with dry_run and subcategory expansion with include_descendants, giving concrete selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_displayClaim DisplayAInspect
Adopts an unclaimed guest or pending display as a managed personal display (permanent ownership transfer, counts against quota). Use only when the user explicitly wants to take over hardware that is already running; for first-time setup prefer pair_by_code. Requires admin scope.
| Name | Required | Description | Default |
|---|---|---|---|
| display_id | Yes | The short ID of the pending, guest or demo display to claim. This is the hardware or temporary ID shown on the device. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| profile_name | Yes | Friendly name to assign to the newly claimed display. Non-empty string. Example: 'Reception Kiosk'. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| profileId | No | |
| linkedHardwareId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide generic false hints, so the description carries the burden. It discloses permanence ('permanent ownership transfer'), quota impact, and admin scope requirement. It does not contradict annotations; no conflict with destructiveHint=false since a transfer is not necessarily destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and consequences, then usage guidance and auth requirement. No filler or repetition of schema text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and all parameters documented, the description covers the essential behavioral, usage, and auth context. It even names the alternative tool to keep the agent on the right path. No critical gap for invoking correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter already has a descriptive schema comment, so the baseline is 3. The description reaffirms that display_id refers to an unclaimed/pending display and profile_name is the new friendly name but adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Adopts') and resource ('unclaimed guest or pending display'), and clarifies the result ('permanent ownership transfer, counts against quota'). It is clearly distinguishable from the sibling pair_by_code, which is called out by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs when to use ('only when the user explicitly wants to take over hardware already running') and when not to ('for first-time setup prefer pair_by_code'). Also states required permission (admin scope).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_displayClear DisplayADestructiveIdempotentInspect
Removes the current live content from a display and returns it to its idle/default state. Viewers will immediately see the change. Use this when the user wants to blank or reset a display. This does not delete the display itself — use delete_display for that. Requires authentication with at least content_only scope. Returns id and status ('cleared').
| Name | Required | Description | Default |
|---|---|---|---|
| display_id | Yes | The 8-character alphanumeric display profile ID to clear, e.g. 'ABCD1234'. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| status | No | |
| currentContentDescription | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover destructive/idempotent/readOnly hints. The description adds the authentication scope requirement ('Requires authentication with at least content_only scope') and the immediate viewer effect ('Viewers will immediately see the change'), which go beyond annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Six short sentences, each adding distinct value: action, effect, usage, alternative, auth, return. Front-loaded with the core operation and effect, minimal fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description still covers effects, auth scope, and sibling distinction. Nothing an agent needs to decide and invoke correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters including descriptions for display_id, access_token, and session_request_id. The description adds no new parameter-specific meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Removes the current live content from a display and returns it to its idle/default state.' Differentiates from delete_display by explicitly stating 'This does not delete the display itself.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when to use ('when the user wants to blank or reset a display'), names the alternative ('use delete_display for that'), and provides the auth prerequisite. Clear routing among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_displayConfigure DisplayADestructiveIdempotentInspect
Updates display settings: rename (name), lock or unlock content changes (locked), privacy mode for share links (privacy_mode), embed-origin allowlist (origins), hardware permissions (camera, microphone, geolocation), preferred language, mouse cursor, badge overlay and watermark position. Only the fields you pass are changed; online displays apply changes immediately. Use for any display setting change. Not for sending content (send_html, send_url) or deleting (delete_display). Requires admin scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New display name (rename). | |
| locked | No | true blocks content changes until unlocked; false unlocks. | |
| origins | No | Embed-origin allowlist for Public displays; [] allows all origins. | |
| whitelist | No | Domain whitelist for whitelist-only mode. | |
| display_id | Yes | 8-character display profile ID, e.g. 'ABCD1234'. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| allow_camera | No | ||
| privacy_mode | No | Private caps share-link TTL at 1 hour; Public (signage mode) allows 24 hours. | |
| allow_microphone | No | ||
| strict_whitelist | No | true: the display whitelist replaces the org whitelist instead of extending it. | |
| allow_geolocation | No | ||
| connectivity_mode | No | Per-display network mode override. | |
| show_mouse_cursor | No | ||
| preferred_language | No | ||
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. | |
| show_badge_overlay | No | ||
| watermark_position | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| allowCamera | No | |
| allowMicrophone | No | |
| changedSettings | No | |
| showMouseCursor | No | |
| allowGeolocation | No | |
| showBadgeOverlay | No | |
| effectiveLanguage | No | |
| preferredLanguage | No | |
| watermarkPosition | No | |
| appliedToLiveDisplay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds meaningful behavioral context beyond annotations: partial updates, immediate effect for online displays, and the admin scope requirement. It doesn't contradict annotations and provides extra operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-ordered: a list of settings up front, then behavior/constraints, then usage guidance. Every sentence contributes value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (17 parameters, many boolean toggles), the description covers the essential behavior, scope, and known caveats. The output schema exists, so return format is not needed. The main missing details are some parameter descriptions, but those are already in the input schema, so the description is sufficiently complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 59%, so the description should compensate for undocumented parameters. It does explain many: rename, lock/unlock, privacy mode, origins, hardware permissions, language, cursor, badge, watermark. However, several parameters (whitelist, strict_whitelist, connectivity_mode, access_token, session_request_id) are not described, leaving some ambiguity that the schema partially offsets.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Updates'), the resource ('display settings'), and enumerates the specific settings. It explicitly distinguishes itself from sibling operations by naming what it is not for ('Not for sending content (send_html, send_url) or deleting (delete_display)').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use for any display setting change' and provides exclusions with alternative tool names. Also clarifies partial-update semantics ('Only the fields you pass are changed') and immediacy for online displays, which guides call timing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_organizationConfigure OrganizationADestructiveIdempotentInspect
Updates organization settings: rename (name) and/or network connectivity defaults for all its displays (default_connectivity_mode, global_whitelist). Only provided fields change. Use when an org admin renames the organization or declares network topology. Requires admin scope and org-admin role.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New organization name (rename). | |
| org_id | Yes | Organization ID from list_organizations. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| global_whitelist | No | Domain whitelist applied org-wide in whitelist-only mode. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. | |
| default_connectivity_mode | No | Default connectivity for all org displays. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| orgId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the mutation and idempotency are known. The description adds value by noting 'Only provided fields change' (partial update behavior) and requiring 'admin scope and org-admin role', which are not in annotations. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. The action and fields are front-loaded, followed by usage guidance and auth. Every sentence contributes essential information, and the structure is clean and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters and an output schema (not shown), so return values are covered elsewhere. The description includes the action, scope, partial-update behavior, use case, and required permissions. It lacks any mention of side effects beyond mutation (which destructiveHint covers) but is otherwise complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented. The description adds only a general note that only provided fields change, which applies to all parameters rather than individual semantics. It does not explain enum values or parameter relationships beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Updates organization settings' and enumerates the specific fields (name, default_connectivity_mode, global_whitelist), distinguishing it from create/delete/configure_display tools. The scope 'for all its displays' clarifies it operates at the org level, separating it from per-display configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit 'Use when an org admin renames the organization or declares network topology' condition, which is direct guidance. It does not explicitly mention alternatives (e.g., configure_display for per-display settings), but the scope statement 'for all its displays' implies the distinction, making the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_api_keyCreate API KeyAInspect
Creates a long-lived API key for server-to-server integration without OAuth. The raw key is returned only once — store it securely. The user must explicitly consent to creating the key. Requires admin scope. Supports granular scoping: restrict the key to specific data-slot slugs, specific display IDs, a read/write permission flag, and/or fine-grained capability flags.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable name for the key. Example: 'Home Assistant', 'CI Pipeline'. | |
| scope | No | Scope for the key: 'content_only' (send content, list displays) or 'admin' (full management). | content_only |
| org_id | No | Optional organization ID. If set, the key acts on behalf of this organization. | |
| permissions | No | Granular permission flag: 'read', 'write', or 'read_write' (default). Applied on top of 'scope' — e.g. a content_only read-only key cannot PUT data slots. Matched against HTTP verb: GET requires read, PUT/POST/PATCH/DELETE require write. | read_write |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| capabilities | No | Optional JSON array of fine-grained capability flags this key may exercise. Allowed values: 'slot.read' (list/get slots), 'slot.write' (put/delete slots), 'display.read' (list/get displays, read content), 'display.send' (send_html/send_url/broadcast/clear/set_idle), 'display.manage' (rename/delete/lock/configure/license/pair/claim/create). Omit or pass [] for no capability restriction. Capabilities narrow — never expand — the key's rights; they combine with scope, permissions, and resource whitelists. | |
| expires_in_days | No | Optional expiration in days. If not set, the key never expires. | |
| allowed_slot_slugs | No | Optional JSON array of data-slot slugs this key may touch (max 64). When set, every data-slot request must target one of these slugs. Omit or pass [] for no slug restriction. Example: ['sensor-lobby', 'sensor-garage']. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. | |
| allowed_display_ids | No | Optional JSON array of display profile IDs this key may touch (max 64). When set, every display request must target one of these IDs. Omit or pass [] for no display restriction. Example: ['ABCD1234','EFGH5678']. |
Output Schema
| Name | Required | Description |
|---|---|---|
| key | No | |
| name | No | |
| keyId | No | |
| orgId | No | |
| scope | No | |
| warning | No | |
| createdAt | No | |
| expiresAt | No | |
| permissions | No | |
| capabilities | No | |
| allowedSlotSlugs | No | |
| allowedDisplayIds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the minimal annotations, the description discloses high-value behavioral traits: the raw key appears only once and must be stored securely, creation requires explicit user consent, and admin scope is required. This is exactly the kind of operational context an agent needs and cannot infer from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences front-load the purpose, then the critical security/authorization facts, then the scoping options. There is no filler and every sentence contributes meaning an agent needs before calling the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with a full output schema and minimal annotations, this description covers the non-obvious constraints: one-time secret, consent, admin scope, and the four scoping dimensions. The remaining details are safely carried by the 100%-covered schema and the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the 10 parameters is already well documented. The description summarizes the granular scoping model (data-slot slugs, display IDs, read/write flag, capability flags) and maps cleanly to the relevant parameters, but it does not add per-parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Creates a long-lived API key') and immediately distinguishes the tool from session-based alternatives by noting 'server-to-server integration without OAuth'. It also clarifies what kind of key is created and adds the meaningful constraint that the raw key is returned only once.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: use this for server-to-server integration without OAuth, with explicit user consent and admin scope required. It does not explicitly name alternatives like create_auth_session or say 'use X instead', but the context strongly implies the session-based sibling is not the right choice for long-lived integration keys.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_auth_sessionCreate Auth SessionAInspect
Starts a browser login and returns a loginUrl plus sessionRequestId. Use as STEP 0 in a fresh conversation before any protected tool. Show the loginUrl to the user as a clickable link in their language, then poll get_auth_session until 'active' and pass session_request_id on every later call. Returns sessionRequestId, loginUrl, pollUrl and expiresIn.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Requested access scope. Must be either 'content_only' (read and send content to displays) or 'admin' (content_only plus create/delete/rename displays). Defaults to 'content_only'. | |
| agent_identifier | No | Optional display name of the MCP client or agent, shown to the user in the browser consent screen. Example: 'ChatGPT' or 'my-home-automation'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| pollUrl | No | |
| loginUrl | No | |
| expiresIn | No | |
| requestedScope | No | |
| sessionRequestId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits: it starts a login process, returns a sessionRequestId and loginUrl, and requires polling. It does not contradict annotations, and since annotations provide no safety hints, the description carries the full burden effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences. Front-loaded with the main action, followed by immediate usage guidelines, then additional steps. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an authentication flow, the description provides a complete step-by-step guide: start session, present loginUrl, poll for active status, and pass session_request_id everywhere. The existence of an output schema covers return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by explaining the scope enum values (content_only vs admin) and providing an example for agent_identifier, though it doesn't describe each parameter in detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: 'Starts a browser login and returns a loginUrl plus sessionRequestId.' It uses specific verbs and resources, and distinguishes itself from siblings by being the first step in authentication.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use as STEP 0 in a fresh conversation before any protected tool.' It provides clear instructions on showing the loginUrl to the user, polling get_auth_session, and passing session_request_id on later calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_displayCreate DisplayAInspect
Pre-provisions a display without hardware, personal or inside an organization (org_id). The new display starts offline. For a physical screen ALWAYS prefer pair_by_code, which creates and pairs in one step; use create_display only to prepare a display before the screen exists or for virtual/API-only displays. Requires admin scope. Returns id plus setup and pairing URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Friendly display name, e.g. 'Lobby Screen'. Required when org_id is set. | |
| org_id | No | Optional: create the display inside this organization (needs manager role and a free license slot). | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| status | No | |
| setupUrl | No | |
| managedUrl | No | |
| pairingUrl | No | |
| approvalUrl | No | |
| pairingExpiresAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses that the new display starts offline, requires admin scope, and returns setup and pairing URLs. This adds meaningful behavioral context. It doesn't describe all edge cases, but the annotations already cover read-only, destructive, open-world, and idempotency traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: it states the core purpose first, then usage guidance, then access requirements and return value. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with this complexity, the description covers purpose, when to use, auth requirement, initial state, and return payload. Combined with the fully documented schema and output schema, nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are fully documented in the schema. The description adds some semantic value by mentioning org_id and the pairing URL return, but it does not need to explain each parameter further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb–resource pair ('Pre-provisions a display') and clarifies that the display is created without hardware, either personally or in an organization. It explicitly distinguishes itself from pair_by_code, so the agent can confidently differentiate it from the closest sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance: for physical screens ALWAYS prefer pair_by_code, and create_display should only be used to prepare a display before hardware exists or for virtual/API-only displays. This clearly states when to use and when not to use the tool, naming the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_organizationCreate OrganizationAInspect
Creates a new organization and makes the authenticated user the owner. Use this when the user wants to set up a shared display fleet. Returns orgId, name, slug, type and yourRole. Requires admin scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Friendly name for the organization. Example: 'Marketing Team'. | |
| type | No | Organization type. Defaults to 'organization' if omitted. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| slug | No | |
| type | No | |
| orgId | No | |
| yourRole | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that the user becomes owner, that admin scope is required, and what fields are returned. This materially helps an agent anticipate side effects and the shape of a successful response, which is valuable for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences cover action, use case, return values, and scope requirement. It is front-loaded with the core purpose and contains no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward create tool with full schema coverage and an output schema, the description is complete enough: it states the operation, the use case, the ownership side effect, returned values, and required scope. Nothing essential for calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains all four parameters, including the enum and auth fields. The description adds no parameter-specific detail beyond mentioning the returned fields and admin scope, so it meets the baseline without over-delivering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Creates a new organization') and adds the key detail that the authenticated user becomes owner, which differentiates it from configure_organization and delete_organization. It also ties the tool to a concrete context, setting up a shared display fleet, which makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit usage condition ('Use this when the user wants to set up a shared display fleet') and notes the admin scope requirement. However, it doesn't mention when not to use it or how it compares to related tools like configure_organization, list_organizations, or delete_organization, leaving some routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_assetDelete AssetADestructiveInspect
Deletes one or more assets. Displays referencing deleted assets will show broken images. Requires authentication with at least content_only scope.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_ids | Yes | One or more asset IDs to delete. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted | No | |
| not_found | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, and the description does not contradict them. It adds useful behavioral context beyond the annotations by warning that displays referencing deleted assets will show broken images and by specifying the required auth scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loads the core action, and each remaining sentence adds a distinct, valuable detail (side effect and auth requirement). There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool with an output schema and annotations covering destructiveness/idempotence, the description provides the essential selection and invocation context: action, plural scope, consequence, and authentication. It does not discuss partial failure behavior or ID provenance, but those are not necessary for correct basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented. The description adds no meaningful parameter-level semantics beyond repeating that multiple assets can be deleted; this matches the baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Deletes') on a specific resource ('one or more assets'), and the scope ('one or more') adds precision. It is immediately distinguishable from sibling delete_* tools and from update_asset/upload_asset/get_asset by the verb+resource combination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: this tool is for deleting assets, with a prerequisite ('Requires authentication with at least content_only scope') and a material consequence (broken images on referencing displays). It does not explicitly name alternatives or exclusions, 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.
delete_data_slotDelete Data SlotADestructiveInspect
Permanently deletes a data slot. Display HTML fetching its readUrl will receive 404 after deletion. Cannot be undone. Supply group_id to delete a group slot; omit for personal slots. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The slug of the data slot to delete. | |
| group_id | No | Group/organization ID to delete a group slot. Omit for personal slots. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| slotId | No | |
| deleted | No | |
| publicId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses key behavioral consequences: deletion is permanent, cannot be undone, and any HTML fetching the readUrl will receive a 404. It also states the authentication requirement. These are concrete operational details that materially affect how an agent should invoke and reason about the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each adding distinct value: the core action, the downstream 404 effect, irreversibility, and the group/personal/auth usage rule. The most important fact is front-loaded, and there is no filler or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with a full input schema, output schema, and annotations, the description supplies all essential behavioral context: permanence, side effect on readUrl, auth requirement, and the group-vs-personal selection logic. An agent has enough information to invoke the tool correctly and understand the consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all four parameters with descriptions at 100% coverage, so the baseline is 3. The description repeats the group_id semantics but does not add meaningful parameter details beyond what the schema already states. No additional syntax, format, or relationship guidance is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Permanently deletes a data slot.' It clearly differentiates from sibling tools like set_data_slot, get_data_slot, list_data_slots, and other delete_* tools by immediately identifying the target resource and the destructive nature of the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: group slots require group_id, personal slots omit it, and authentication is required. It does not explicitly name alternatives or exclusion conditions, but the group-vs-personal distinction and auth prerequisite give an agent enough situational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_displayDelete DisplayADestructiveInspect
Permanently deletes a display and all its associated content. This action cannot be undone. Use this only when the user explicitly confirms they want to remove the display. Requires admin scope. Returns id, name and deleted (boolean true).
| Name | Required | Description | Default |
|---|---|---|---|
| display_id | Yes | The 8-character alphanumeric display profile ID to delete, e.g. 'ABCD1234'. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| deleted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, but the description adds critical context: permanence ('cannot be undone'), cascading deletion ('all its associated content'), admin scope requirement, and the return shape. This goes beyond what annotations alone communicate, with no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-load the most critical information: permanence, irreversibility, and the explicit confirmation requirement. Every sentence contributes value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation, the description covers the essential operational details: irreversibility, cascading content deletion, admin auth requirement, user confirmation gate, and return values. Combined with the rich input schema and output schema, nothing necessary for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, with detailed descriptions for display_id, access_token, and session_request_id. The tool description adds no parameter-specific meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Permanently deletes a display and all its associated content.' It clearly identifies the action and scope. It does not explicitly distinguish itself from siblings like clear_display or remove_display_from_org, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Use this only when the user explicitly confirms they want to remove the display,' plus the admin scope requirement. It does not enumerate alternatives or explicitly state when not to use it, but the confirmation gate is strong enough guidance for a destructive action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_organizationDelete OrganizationADestructiveInspect
Permanently deletes an organization, releasing all its displays and removing all members. Only the owner can delete. This cannot be undone. Requires admin scope.
| Name | Required | Description | Default |
|---|---|---|---|
| org_id | Yes | The organization ID to delete. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| orgId | No | |
| deleted | No | |
| membersRemoved | No | |
| displaysReleased | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, but the description adds crucial details beyond that: side effects (releasing displays, removing members) and authentication/permission requirements (owner-only, admin scope). It also emphasizes irreversibility, providing context not captured in annotations. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with zero redundancy. The first sentence front-loads the core action and its immediate consequences; the second packs permissions and irreversibility into three short clauses. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with an output schema and well-documented params, the description covers the essential information: what happens (permanent deletion), side effects, and access requirements. It omits nothing critical an agent would need to invoke it correctly, though it could theoretically mention the return value, which is presumably handled by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, all three parameters (org_id, access_token, session_request_id) are already described in the input schema. The tool description adds no additional parameter-specific meaning, so a baseline score of 3 is appropriate given the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'deletes' with the resource 'organization' and specifies concrete effects: releasing all displays and removing all members. This distinguishes it from sibling tools like delete_display or delete_asset, which target different resources. The irreversible nature is also made explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit prerequisites: only the owner can delete, and admin scope is required. While it doesn't name alternative tools or explicitly state when not to use it, the context is clear enough for an agent to infer that this is the correct choice for deleting an entire organization, not individual displays or assets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchFetch ResourceARead-onlyIdempotentInspect
Fetches one agentView resource by agentview:// URI, e.g. agentview://public/status, agentview://account/me or agentview://display/ABCD1234. Use after search or with a known URI. Public URIs need no auth; account and display URIs need a session. Returns uri, type, title, text and structured data.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes | The resource URI to fetch. Must use the agentview:// scheme. Examples: 'agentview://public/status', 'agentview://account/me', 'agentview://display/ABCD1234'. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| uri | No | |
| data | No | |
| text | No | |
| type | No | |
| title | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive. The description adds behavioral context beyond that: public URIs require no auth while account and display URIs require a session, and it summarizes the return shape. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, with the core operation front-loaded, followed by usage direction, auth note, and return summary. Every sentence carries information without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter fetch tool with an output schema and read-only/idempotent annotations, the description covers when to use it, authentication requirements, and what is returned. Nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description mostly restates the uri examples already in the schema. It adds only mild context that account/display URIs need a session, linking session_request_id to authenticated calls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb ('Fetches'), a resource class ('agentView resource'), and the URI scheme with concrete examples. It does not explicitly distinguish this generic fetch from sibling get_* tools, so it misses full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use it ('Use after search or with a known URI') and gives auth preconditions by URI category. It does not name excluded alternatives or say when to prefer the sibling get_* tools, stopping 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.
get_accountGet AccountARead-onlyIdempotentInspect
Returns the user's account profile: plan and features, personal display limits and remaining quota, accessible display count, organization memberships and points balance. Use for subscription, quota and membership questions. Not for listing displays (use list_displays). Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| name | No | |
| plan | No | |
| No | ||
| points | No | |
| userId | No | |
| maxDisplays | No | |
| planFeatures | No | |
| organizations | No | |
| currentDisplays | No | |
| authenticatedVia | No | |
| organizationCount | No | |
| remainingDisplays | No | |
| maxPersonalDisplays | No | |
| currentPersonalDisplays | No | |
| totalAccessibleDisplays | No | |
| remainingPersonalDisplays | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds a useful extra behavioral constraint: 'Requires content scope,' which is authentication/permission context not present in the annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what it returns, when to use it, and the explicit exclusion. The description is front-loaded with the resource and output content, and has no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering the safety profile, an output schema covering return structure, and the description covering scope, usage context, and sibling differentiation, nothing an agent needs 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the schema already fully documents them. The description adds no parameter-specific meaning beyond noting an auth scope requirement, which is not tied to a specific parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Returns'), a clear resource ('the user's account profile'), and enumerates the data returned (plan, quota, memberships, points). It also explicitly distinguishes itself from list_displays, so an agent can disambiguate among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States exactly when to use it ('for subscription, quota and membership questions') and when not to ('Not for listing displays'), naming the alternative tool. This is explicit, actionable routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_artifactGet Agent ArtifactARead-onlyIdempotentInspect
Returns an agent-onboarding artifact shipped with a store template: system prompt, Agent Skills SKILL.md or MCP-config snippet. Pass slug for the RAW template artifact (before install, {{slot:...}} placeholders intact) or display_id for the display-bound artifact with placeholders resolved against installed slots (ready to save, e.g. into ~/.claude/skills/). Discover keys via get_store_template_details (agentArtifacts array). Template mode needs no auth; display mode requires content scope and display ownership.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Artifact key, e.g. 'bot-system-prompt', 'agent-skill', 'mcp-config'. | |
| slug | No | Template slug for the raw artifact. Provide slug OR display_id. | |
| display_id | No | Display profile ID for the placeholder-resolved artifact. If both slug and display_id are given, display_id wins (substituted body). | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| key | No | |
| kind | No | |
| slug | No | |
| title | No | |
| content | No | |
| displayId | No | |
| unresolvedPlaceholders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds valuable context: template mode needs no authentication, display mode requires specific auth scopes, and placeholder resolution behavior. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three well-structured sentences), front-loaded with the core purpose, and every sentence adds value. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 params, output schema exists), the description covers all critical aspects: what the tool returns, the two modes, authentication requirements, and how to discover valid keys. Complete enough for correct agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds meaning by explaining the precedence of display_id over slug, the auth context for access_token vs session_request_id, and the purpose of each parameter beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns an agent-onboarding artifact (system prompt, SKILL.md, or MCP-config snippet). It distinguishes between two modes: raw template (slug) and placeholder-resolved (display_id), and explains how to discover artifact keys via get_store_template_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use slug (template mode, no auth) versus display_id (display mode, requires auth and ownership). It also mentions the sibling get_store_template_details for key discovery. However, it does not explicitly exclude use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assetGet AssetARead-onlyIdempotentInspect
Returns metadata for a single asset including its URL. Use this to verify an asset still exists before referencing it in HTML. Requires authentication with at least content_only scope.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | The asset ID (e.g. 'ast_01H7KXZ...'). | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| name | No | |
| assetId | No | |
| mimeType | No | |
| createdAt | No | |
| sizeBytes | No | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds an actionable auth requirement ('at least content_only scope') and mentions the URL in the response. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: what the tool returns, when to use it, and what authentication is needed. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup tool, the description covers purpose, usage, auth, and return content. An output schema exists, so return-value details are already available to the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with asset_id, access_token, and session_request_id all documented in the schema. The description itself does not add param-level detail, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns metadata for a single asset including its URL.' This clearly differentiates it from sibling tools like list_assets, update_asset, delete_asset, and upload_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear use case: 'Use this to verify an asset still exists before referencing it in HTML.' It does not explicitly name alternatives or exclusion conditions, but the context is clear for a single-asset lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_auth_sessionGet Auth SessionAIdempotentInspect
Polls a login session created by create_auth_session until the user completes the browser login. Poll every 2-3 seconds while status is 'pending'. Status 'active' reports the GRANTED scope, read back from the issued token. Completing the login does NOT authenticate this MCP session: pass session_request_id on every protected call afterwards. Omit it and the server falls back to your connector's bearer token, which usually carries content scope only, so content tools keep working while admin tools like pair_by_code refuse with admin_scope_required. The raw token is intentionally not returned over MCP. 'expired' means start over with create_auth_session.
| Name | Required | Description | Default |
|---|---|---|---|
| session_request_id | Yes | The sessionRequestId string returned by create_auth_session. Must be passed exactly as received. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | No | |
| status | No | |
| expiresIn | No | |
| requestedScope | No | |
| tokenExpiresAt | No | |
| sessionRequestId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already signaling readOnlyHint=false and idempotentHint=true, the description adds substantial behavioral context: the raw token is intentionally not returned over MCP, completing login does NOT authenticate the MCP session, status 'active' reports the GRANTED scope read back from the token, and the fallback credential behavior with scope differences between content and admin tools. No contradiction with annotations — it enriches them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense (~120 words) but every sentence carries distinct, high-value information: purpose, polling cadence, status semantics, auth caveat, fallback behavior, security disclosure, and lifecycle handling. There is no filler, redundancy, or restatement of the schema. The length is fully justified by the tool's behavioral complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values need no description-level coverage. The description covers all the remaining contextual needs: the orchestration relationship with create_auth_session, polling cadence, all three status outcomes (pending/active/expired) with appropriate actions, security constraints, and the critical downstream requirement to pass session_request_id on protected calls. Nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema description already says 'Must be passed exactly as received.' The tool description adds value beyond that by explaining where the ID comes from (create_auth_session), how it must be reused on every protected call, and what happens if omitted. This is genuine complementary information, not schema repetition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Polls a login session created by create_auth_session until the user completes the browser login." This clearly distinguishes the tool from its siblings (create_auth_session creates, this polls; authenticate is a different auth path) and states the terminal condition precisely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit operational guidance is given: poll every 2-3 seconds while status is 'pending', start over with create_auth_session on 'expired', and pass session_request_id on every protected call afterwards. It also explains the consequence of omitting the parameter (fallback to the connector's bearer token) and which tool category that breaks (admin tools like pair_by_code). This is exemplary when-to-use-and-how guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_data_slotGet Data SlotARead-onlyIdempotentInspect
Returns the current JSON content and metadata of a data slot by slug. Supply group_id to look up a group slot; omit it for personal slots. The response includes readUrl — the public anonymous URL for display HTML to fetch. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The slug of the data slot to retrieve. | |
| group_id | No | Group/organization ID to retrieve a group slot. Omit for personal slots. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| type | No | |
| label | No | |
| content | No | |
| groupId | No | |
| readUrl | No | |
| sizeBytes | No | |
| updatedAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so no contradiction. The description adds useful behavioral context beyond annotations: authentication is required, and the response exposes a readUrl that is a public anonymous URL for fetching display HTML. This helps the agent understand auth expectations and how to use the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The primary behavior is front-loaded, followed by the group/personal distinction, the readUrl note, and the auth requirement. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only retrieval tool, the description covers target selection, authentication, and a notable response field. The output schema covers return structure, and the annotations cover safety/idempotency, so nothing an agent needs 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters adequately. The description's group_id guidance mostly repeats the schema description, and it does not add material meaning about slug, access_token, or session_request_id beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Returns the current JSON content and metadata of a data slot by slug.' It also distinguishes personal vs group slots, which clarifies how this getter differs from list_data_slots, set_data_slot, and delete_data_slot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: supply group_id for group slots, omit for personal slots. It also notes authentication is required. It does not explicitly name alternative tools or exclusions, but 'by slug' sufficiently implies this is for retrieving a known slot rather than enumerating slots.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_displayGet DisplayARead-onlyIdempotentInspect
Returns one display's state: status, lock, URLs, settings, language and current content summary. response_format 'detailed' adds browser/runtime facts (screen, viewport, engine), resolved connectivity mode with allowed domains, and full content state (idle content, content URL) — use detailed before generating complex HTML for the display. Use list_displays first to discover IDs. Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| display_id | Yes | 8-character display profile ID from list_displays, e.g. 'ABCD1234'. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| response_format | No | concise (default) returns key fields; detailed adds runtime facts, connectivity/capabilities and full content state. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| locked | No | |
| status | No | |
| content | No | |
| runtime | No | |
| hasTouch | No | |
| isOnline | No | |
| settings | No | |
| setupUrl | No | |
| managedUrl | No | |
| pairingUrl | No | |
| resolution | No | |
| deviceClass | No | |
| capabilities | No | |
| connectivity | No | |
| currentContent | No | |
| effectiveLanguage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds that it returns state and content summary, and details browser/runtime facts for 'detailed'. Also mentions 'Requires content scope' – a permission hint – which adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a note on detailed usage and list_displays. Front-loaded with purpose. Could be slightly more concise, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so no need to describe return values. Description covers two response formats and their use cases, scope requirement. Complete for a read-only tool with good schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds minor guidance (use list_displays for IDs) but does not explain parameter behavior beyond schema. Adequate but not extra helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states specific verb 'returns' and resource 'one display's state', listing key fields (status, lock, URLs, settings, language, content summary). Distinguishes from sibling list_displays by telling agent to use list_displays first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use list_displays first to discover IDs and suggests using 'detailed' before generating complex HTML. Lacks explicit 'when not to use' or alternatives beyond list_displays.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_display_preview_urlGenerate Display Preview Share LinkARead-onlyInspect
Creates a short-lived signed link showing what a display is presenting RIGHT NOW, rendered inline as a preview widget. ALWAYS call this when the user wants to SEE their display or screen content (preview, 'zeig mir das Display'). Link lifetime follows the display's privacy mode. Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| display_id | Yes | The 8-character alphanumeric display profile ID, e.g. 'ABCD1234'. | |
| ttl_seconds | No | Lifetime of the share link in seconds. Default 3600 (1 hour). Clamped to [60, 86400]. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| displayId | No | |
| expiresAt | No | |
| previewUrl | No | |
| ttlSeconds | No | |
| displayName | No | |
| privacyMode | No | |
| contentVersionId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only and non-destructive behavior; the description adds meaningful context beyond that: short-lived signed link, inline preview rendering, lifetime coupling to privacy mode, and the content-scope requirement. No contradiction with readOnlyHint is present because creating a signed link does not imply mutating persistent state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Packs the key decision trigger, behavior, and a security requirement into four short sentences. The most actionable guidance ('ALWAYS call this when...') is front-loaded, with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter, full schema documentation, read-only annotations, and an output schema, the description supplies everything the agent needs to select and invoke it correctly: what it returns, when to use it, lifetime behavior, and required scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter thoroughly. The description adds contextual value like privacy-mode-based linking and content scope, but does not need to restate per-parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb and resource: 'Creates a short-lived signed link' showing current display content. The 'RIGHT NOW' and 'rendered inline as a preview widget' wording clearly differentiates it from broader display or read operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit trigger guidance: 'ALWAYS call this when the user wants to SEE their display or screen content (preview, zeig mir das Display).' It does not name specific alternative tools or state when not to use it, but the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_license_infoGet License InfoARead-onlyIdempotentInspect
Returns the authenticated user's complete license allocation overview: total premium licenses, personal usage, allocatable licenses, per-organization allocations, and free licenses. Use this to understand available capacity before allocating licenses. Requires content_only scope.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| canAllocate | No | |
| orgAllocations | No | |
| personalDisplays | No | |
| allocatableLicenses | No | |
| totalAllocatedToOrgs | No | |
| totalPremiumLicenses | No | |
| freeAllocatableLicenses | No | |
| personalPremiumDisplays | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond annotations: it returns data for the authenticated user and requires the content_only scope, which is an auth prerequisite an agent needs to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with zero filler. The core return value and included fields are front-loaded, followed by the use case and the scope requirement. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only info tool with an output schema, complete parameter documentation, and annotations covering safety, the description is sufficient. It explains what the user gets, why they would use it, and what access is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are already explained in the input schema. The description does not add parameter-specific meaning, but it also does not need to because the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states specific verb 'Returns' and resource 'complete license allocation overview' with an explicit list of what is included. It clearly reads as a read-only counterpart to allocation actions, distinguishing it from siblings like manage_licenses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this to understand available capacity before allocating licenses,' which tells the agent when to invoke it. It does not describe exclusions or mention alternative sibling tools, but the guidance is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_organizationGet OrganizationARead-onlyIdempotentInspect
Returns one organization's details: plan, your role, display count, allocated and remaining license slots. response_format 'detailed' adds the full member list (with roles) and display list. Use after list_organizations. Requires content scope and membership.
| Name | Required | Description | Default |
|---|---|---|---|
| org_id | Yes | Organization ID from list_organizations or get_account. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| response_format | No | concise (default) returns counts and core fields; detailed adds members and displays arrays. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| plan | No | |
| orgId | No | |
| members | No | |
| displays | No | |
| isActive | No | |
| yourRole | No | |
| memberCount | No | |
| displayCount | No | |
| allocatedSlots | No | |
| remainingSlots | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint), the description adds behavioral detail on what fields are returned and how response_format alters the output. It does not contradict annotations and provides new context about membership requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence front-loads the main purpose and key fields; the second adds format options and usage prerequisites. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the four parameters and presence of an output schema, the description covers the essential points: returned data, format options, prerequisite, and requirement. It does not detail return structure (handled by output schema) but is sufficient for agent invocation. Minor gap: no mention of rate limits or scope specifics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. The description adds meaning to response_format by explaining the difference between 'concise' and 'detailed', and notes that org_id comes from list_organizations or get_account, supplementing the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns organization details including specific fields (plan, role, display count, allocated/remaining license slots) and distinguishes between 'concise' and 'detailed' response formats. It differentiates from siblings like list_organizations by focusing on a single organization and listing specific data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises 'Use after list_organizations' and 'Requires content scope and membership,' giving clear context for when to invoke. It does not exclude other scenarios or mention alternatives, but the guidance is sufficient for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_public_statusGet Public StatusARead-onlyIdempotentInspect
Returns the server's public readiness status, version string and discovery URLs. Use this before authenticating to verify the server is reachable and to obtain entry-point URLs. No authentication required. Returns status ('ready'), server name, version, statusUrl and instructionsUrl.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| server | No | |
| status | No | |
| version | No | |
| statusUrl | No | |
| instructionsUrl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds useful behavioral context by specifying it is a public, unauthenticated endpoint and listing the returned fields, which goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the primary result, then provides usage guidance and authentication context, making every sentence valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, an output schema, and clear annotations, the description fully covers when to use it, what it returns, and the authentication requirement. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema fully covers the input surface. The description correctly adds no parameter information, and the baseline for a no-parameter tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the server's public readiness status, version string, and discovery URLs. It uses a specific verb and resource, and it distinguishes itself from authenticated siblings by emphasizing it is called before authenticating and requires no authentication.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this tool before authenticating to verify server reachability and obtain entry-point URLs. It also notes no authentication is required, giving clear context, though it does not explicitly name exclusion cases or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_storage_usageGet Storage UsageARead-onlyIdempotentInspect
Returns the storage pool snapshot (used, limit and remaining bytes) for the personal scope or a group — data slots and uploaded assets share this quota; check before large set_data_slot or upload_asset writes. Pass slug to additionally scan which displays reference that data slot (do this before delete_data_slot to know which displays would break). Narrowly-scoped API keys get suppressed=true with zeroed numbers. Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Optional data-slot slug: also report which displays reference it (slotUsage). | |
| group_id | No | Group/organization ID for the group pool. Omit for the personal pool. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | No | |
| groupId | No | |
| slotUsage | No | |
| usedBytes | No | |
| limitBytes | No | |
| suppressed | No | |
| remainingBytes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Disclosures beyond annotations: quota sharing between data slots and assets, return fields, optional slug behavior for display references, and suppressed=true for narrow API keys. All consistent with readOnlyHint and idempotentHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with main purpose, no redundancy. Each sentence provides distinct, valuable information without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no required params, and an output schema (implied), the description covers returns, use cases, side conditions, and prerequisites (content scope). Complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds meaning: slug also returns which displays reference it (slotUsage) and advises using it before deletions; group_id indicates group vs. personal pool. Adds value beyond schema for key parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a storage pool snapshot (used, limit, remaining bytes) for personal or group scope, and distinguishes from siblings by specifying its role before large writes or deletions. The verb 'Returns' and resource 'storage pool snapshot' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use: 'check before large set_data_slot or upload_asset writes' and 'do this before delete_data_slot to know which displays would break'. It also notes conditions like suppressed results for narrow API keys and required content scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_store_template_contentGet Store Template Content (HTML + Slots)ARead-onlyIdempotentInspect
Returns the raw display HTML of a published store template plus its slot definitions and allowed external origins, for editing or embedding the template yourself. {{asset:NAME}} placeholders resolve to public URLs; {{slot:KEY.prop}} stay intact for your own binding. Large HTML is windowed via max_bytes (default 51200) and offset; the result reports totalBytes and truncated. To push a template to a display directly, use send_store_template_to_display instead. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Template slug from search_store_templates, e.g. 'bistro-warm-door'. | |
| offset | No | Byte offset into the HTML. Default 0. | |
| version | No | Optional published version id (stpv_…) to pin. Omit for current. | |
| max_bytes | No | Maximum HTML bytes to return. Default 51200. |
Output Schema
| Name | Required | Description |
|---|---|---|
| html | No | |
| slug | No | |
| slots | No | |
| offset | No | |
| version | No | |
| truncated | No | |
| totalBytes | No | |
| allowedExternalOrigins | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds details on HTML windowing (max_bytes, offset, totalBytes, truncated) and placeholder resolution, going beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then behavior, then windowing and alternative. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all needed context: template slug source, placeholders, windowing, alternative tool. Output schema exists so return values not needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description adds context: placeholders resolve to public URLs, slots stay intact, windowing relates to totalBytes/truncated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns raw display HTML, slot definitions, and allowed origins. It specifies the resource and distinguishes from send_store_template_to_display.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (editing/embedding) and when not (pushing to display via alternative). Provides context on placeholders and windowing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_store_template_detailsGet Store Template DetailsARead-onlyIdempotentInspect
Returns full details of one store template: localized title and description, long-form markdown, category, suite, tags, features, preview image and agentArtifacts (bot-onboarding files such as system prompts, Agent Skills SKILL.md, MCP config). Use after search_store_templates before recommending or installing; when agentArtifacts is non-empty, fetch bodies via get_agent_artifact. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The template slug (English kebab-case) returned by search_store_templates, e.g. 'bistro-warm-door' or 'agent-ops-cyan-wall'. | |
| language | No | Preferred content language. Defaults to 'en'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| tags | No | |
| suite | No | |
| theme | No | |
| title | No | |
| category | No | |
| featured | No | |
| features | No | |
| fileName | No | |
| placement | No | |
| detailPath | No | |
| sourceKind | No | |
| description | No | |
| designStyle | No | |
| previewPath | No | |
| publishedAt | No | |
| introMarkdown | No | |
| setupMarkdown | No | |
| agentArtifacts | No | Agent-onboarding files shipped with the template (system prompts, Agent Skills standard SKILL.md, MCP config snippets). Empty array when the template ships none. Body lives behind get_agent_artifact (slug = raw, display_id = substituted). |
| previewImageUrl | No | |
| audienceMarkdown | No | |
| suiteDescription | No | |
| useCasesMarkdown | No | |
| categoryDescription | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, destructiveHint, so the bar is lower. The description adds 'No authentication required', which is valuable behavioral context not in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first succinctly lists return fields, second provides usage sequence. No extraneous information, front-loaded with key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity and presence of output schema, the description adequately covers purpose, usage context, behavioral traits, and parameter guidance without gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters have detailed descriptions), so baseline is 3. The description reinforces the slug's origin and language default, adding minimal extra value. However, it doesn't introduce new parameter constraints, so 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Returns full details of one store template' and lists specific fields (localized title, description, markdown, etc.), making the verb and resource clear. It also distinguishes from siblings by referencing search_store_templates and get_agent_artifact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Use after search_store_templates before recommending or installing; when agentArtifacts is non-empty, fetch bodies via get_agent_artifact.' This clearly states when to use and suggests a follow-up action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_store_template_install_optionsGet Store Template Install OptionsARead-onlyIdempotentInspect
Returns the displays the user can install a store template on plus the data slots it needs (key, label, type, required). Call before send_store_template_to_display. An empty displays list means the user must first set up a display (pair_by_code). Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Template slug returned by search_store_templates, e.g. 'bistro-warm-door'. | |
| language | No | Preferred UI language for labels. Defaults to 'en'. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| displays | No | |
| language | No | |
| templateSlug | No | |
| requiredDataSlots | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, destructiveHint. Description adds 'Requires content scope' authorization context. No contradictions; adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all essential: purpose, prerequisite, edge case. No redundant words, front-loaded with key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema for return values, annotations for safety, parameters fully documented, and description covers usage order and edge case. Complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description enhances slug with 'returned by search_store_templates', language as 'preferred UI language', and clarifies access_token vs session_request_id usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns displays and data slots for a store template, with specific fields like key, label, type, required. It distinguishes from sibling tools like send_store_template_to_display and search_store_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Call before send_store_template_to_display', providing clear sequential usage. Also notes the empty displays list implies setup with pair_by_code, but does not exhaustively list when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_api_keysList API KeysARead-onlyIdempotentInspect
Lists all API keys for the current user. Returns key metadata (prefix, name, scope, dates) but never the raw key. Requires admin scope.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| keys | No | |
| count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive. The description adds meaningful behavior beyond those hints: it returns only metadata (prefix, name, scope, dates), never the raw key, and requires admin scope. This is useful context for an agent deciding whether the call satisfies a request.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. It front-loads the core action, then supplies the key behavioral caveat and the admin-scope requirement. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (so return value details are handled elsewhere) and annotations cover safety, the description provides the remaining necessary context: current-user scope, admin requirement, and the fact that raw keys are never exposed. Nothing essential is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (access_token and session_request_id) are already well-documented in the input schema. The description does not add parameter-specific semantics, but with full schema coverage the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Lists all API keys for the current user.' It also clarifies that raw keys are never returned, which distinguishes it from key-creation or key-revocation siblings. The scope (current user) and metadata-only behavior make the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to enumerate API keys, but it does not explicitly name alternatives like create_api_key or revoke_api_key, nor does it state when not to use this tool. The admin-scope requirement and current-user context provide some guidance, but 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.
list_assetsList AssetsARead-onlyIdempotentInspect
Lists the user's uploaded assets (images, videos, fonts, documents) with public URLs for use in display HTML. Filter by type, search term or group. Check before upload_asset to avoid duplicates. response_format 'detailed' adds description, size and timestamps per asset. Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by MIME category. | |
| limit | No | Maximum results (default 50). | |
| search | No | Search in filename and description. | |
| group_id | No | Only this group's assets. Omit for personal. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| response_format | No | concise (default): id, name, url, mimeType; detailed adds description, sizeBytes, createdAt. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| assets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false; description aligns and adds behavior about response_format 'detailed' providing extra fields. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with main purpose. No extraneous words. Each sentence adds distinct value: purpose then usage and features.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description appropriately focuses on list behavior, filtering, and response format options. It mentions public URLs for display HTML, covering typical use cases. No missing essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage. Description adds meaning by explaining response_format behavior and that filtering can be by type, search, group. This adds value over the bare schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists user's uploaded assets, specifies types (images, videos, fonts, documents) and mentions public URLs for display HTML. It distinguishes from sibling tools like upload_asset, delete_asset, update_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to check before upload_asset to avoid duplicates. Mentions filter options. Does not explicitly state when not to use, but the advice on duplicate checking provides clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_data_slotsList Data SlotsARead-onlyIdempotentInspect
Lists data slots with optional filtering. Returns metadata only (no jsonContent). Each item includes readUrl. Use readUrl in display HTML fetch() calls. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default: 50, max: 200). | |
| offset | No | Offset for pagination. | |
| search | No | Search in label (case-insensitive). | |
| group_id | No | Group/organization ID to list shared group slots. Omit for personal slots. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| slots | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing the safety profile. The description adds meaningful behavioral details beyond annotations: it returns metadata only (no jsonContent), each item includes readUrl, and authentication is required. It also explains the intended downstream use of readUrl, giving the agent important context for interpreting results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with zero redundancy: purpose + filtering, return shape, and a directive on using readUrl. The most important scoping constraint (metadata only, no jsonContent) is front-loaded, and every sentence earns its place without repeating schema or annotation information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description does not need to explain return values in depth. It covers the core purpose, filtering capability, a key behavioral caveat (no jsonContent), the readUrl field, and authentication. Since all parameters are optional and fully described in the schema, the description provides enough context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters. The description mentions 'optional filtering' generically but does not add detail about specific parameters like limit, offset, search, or group_id. Per calibration, a baseline of 3 is appropriate when the schema fully covers parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lists') and resource ('data slots') with optional filtering, which clearly defines the operation. It distinguishes itself from sibling tools like get_data_slot (single retrieval) and set_data_slot (write) by explicitly focusing on listing and noting it returns metadata only, not jsonContent. The resource and scope are unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use this tool — for listing data slots with filtering — and provides a practical instruction on using the returned readUrl in display HTML fetch() calls. It does not explicitly name alternatives or exclusion conditions (e.g., use get_data_slot for a single slot), but the context is sufficient for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_display_categoriesList Display CategoriesARead-onlyIdempotentInspect
Lists the authenticated user's personal display categories with stable IDs, paths and assignment counts. Use this to discover existing categories before assigning or replacing categories on a display. Requires authentication with at least content_only scope and display.read capability.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| categories | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds authentication requirements (scope and capability) which is useful context beyond annotations. No contradiction, but behavioral traits are well-covered by annotations, so description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first states the action and output, second provides usage guidance. No redundant words, front-loaded with purpose, and structured for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (list operation, two optional params, output schema present), the description covers purpose, usage context, and auth requirements completely. The presence of output schema obviates need for return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so schema already documents both parameters. The description adds a preference hint ('prefer session_request_id') but does not substantially augment parameter meaning. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'lists' and resource 'personal display categories' with details (stable IDs, paths, assignment counts). It clearly distinguishes from sibling tools like assign_display_categories and manage_display_category by noting it is for discovery before assignment/replacement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'before assigning or replacing categories on a display.' It also lists required authentication scope and capability. While it doesn't mention alternative tools or when not to use it, the usage context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_displaysList DisplaysARead-onlyIdempotentInspect
Lists all displays the user can access, with id, name, online status, lock state and device class — the starting point to discover display IDs before get_display, send_html or send_store_template_to_display. Pass org_id to list an organization's displays instead. response_format 'detailed' adds screen/viewport facts, URLs and language per display. To show what a display looks like right now, use get_display_preview_url. Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| org_id | No | Optional organization ID: list that organization's displays (member access required). | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| response_format | No | concise (default) returns key fields per display; detailed adds screen/viewport, URLs and language. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| displays | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, non-destructive, idempotent. Description adds context on scope (user's displays), output fields, and requirement (content scope), enhancing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences; front-loaded with purpose, then logically flows to options and alternatives. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers output fields, prerequisites, and related tools. For a listing tool with output schema and good annotations, this is complete and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions. Description adds no new parameter details beyond reaffirming org_id use and response_format behavior, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists all accessible displays with specific fields, and positions it as the starting point for display-specific tools, distinguishing it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides when to use (before get_display etc.), how to use org_id and response_format, and points to an alternative (get_display_preview_url). Lacks explicit when-not-to-use, but sufficient for a listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_organizationsList OrganizationsARead-onlyIdempotentInspect
Returns all organizations the authenticated user belongs to with their role, display count, member count and allocated slots. Use this to answer questions about the user's organizations, how many displays an organization has, or team membership. Requires authentication with at least content_only scope.
| Name | Required | Description | Default |
|---|---|---|---|
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| organizations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, non-destructive behavior. The description adds meaningful context beyond annotations by specifying the required authentication scope ('content_only') and the exact shape of the result set. This helps the agent understand prerequisites and output contents without over-explaining.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler: the primary behavior is front-loaded, followed by concrete use cases and the authentication requirement. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with a rich output schema and complete parameter descriptions, the description provides the essential missing context: what the tool returns, when to use it, and what auth is required. Nothing critical is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already well documented in the input schema. The description does not add extra parameter-level detail, but it doesn't need to; the baseline of 3 applies because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Returns all organizations the authenticated user belongs to') and enumerates the returned fields (role, display count, member count, allocated slots). This clearly distinguishes it from singular-fetch tools like get_organization and from other list tools focused on different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names concrete use cases: answering questions about the user's organizations, display counts, and team membership. It does not provide explicit when-not-to-use guidance or name alternative tools, but the intended context is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_store_categoriesList Store CategoriesARead-onlyIdempotentInspect
Lists all published agentView store categories (e.g. Gastronomie, Wartezimmer, Empfang, Smart Home) with localized titles, descriptions and template counts. Use this to narrow a subsequent search_store_templates call when the user asks for 'templates for a waiting room' or similar. No authentication required. Returns count, language and a categories array where each entry has slug, title, description, templateCount, heroIconKey and detailPath.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Preferred content language. Defaults to 'en'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| language | No | |
| categories | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds that no authentication is needed, returns count/language/categories array with specific fields, and implies use for published categories. No contradictions found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a distinct purpose: announcement, usage guidance, return structure. No fluff or repetition. Front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only one simple parameter and an output schema that exists (with described fields), the description is complete. It covers purpose, usage, auth, and return structure effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'language' fully described via enum and default. The description does not add additional meaning beyond the schema, which is acceptable; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Lists all published agentView store categories' with concrete examples (e.g. Gastronomie, Wartezimmer) and details what each entry contains. It clearly distinguishes from siblings like search_store_templates, which is referenced as a follow-up use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states to use this tool to narrow a subsequent search_store_templates call for user queries like 'templates for a waiting room'. Mentions no authentication required. Could be improved by also stating when not to use it, but the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logoutLogoutAIdempotentInspect
Acknowledgement only: agentView keeps no identity cache on the MCP session, so there is nothing to clear. It does NOT end an agentView login, revoke a token, or invalidate a session_request_id, and it will not reset a failing auth state. To stop acting as the user, stop sending the credential.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| loggedOut | No | |
| sessionBound | No | |
| transportAuthRequired | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes into useful detail beyond the annotations: it clarifies there is no identity cache, no token revocation, no state reset, and that a failing auth state won't be affected. This prevents the agent from assuming real logout behavior. No contradiction with idempotentHint or destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, with the core 'acknowledgement only' statement front-loaded. Each sentence earns its place by adding essential context about limitations and the correct alternative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, a present output schema, and supporting annotations, the description fully covers what the tool is, what it lacks in effect, and how to achieve a true logout. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, there is nothing to document. The description properly emphasizes that the operation is an acknowledgement, which is all that is relevant. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this is an acknowledgement-only operation with no identity cache to clear. It explicitly differentiates itself from a real logout by listing what it does NOT do, so an agent can precisely understand the tool's role despite the generic name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-not-to-use guidance: it does not end a login, revoke a token, or invalidate a session_request_id. It also provides the correct alternative — 'stop sending the credential' — making the usage context unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_display_categoryManage Display CategoryADestructiveInspect
Creates or renames a display category (categories group displays for broadcast_content include_category_ids). action 'create' needs name (optional parent_category_id for a subcategory); action 'rename' needs category_id and new_name — assignments and grants stay intact. Discover IDs with list_display_categories; assign displays with assign_display_categories.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Category name for action 'create', e.g. 'Reception'. | |
| action | Yes | Operation to perform. | |
| new_name | No | New category name (rename only). | |
| category_id | No | Category ID to rename (rename only). | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| parent_category_id | No | Optional parent category ID (create only) for a subcategory. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| path | No | |
| oldPath | No | |
| categoryId | No | |
| parentCategoryId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate mutation and destructive potential, so the description adds useful context by stating that assignments and grants stay intact on rename. This explains a behavioral consequence beyond what the schema or annotations alone convey, though it doesn't elaborate on all potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry substantial, well-organized information: action options, parameter requirements, behavioral note, and pointers to sibling tools. There is no filler and the key distinctions are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 100% schema coverage, output schema availability, and annotations, the description is complete enough for an agent to call the tool correctly. It covers the action-dependent requirements and points to the sibling tools for ID discovery and assignment, leaving no significant functional gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented individually. The description adds action-conditional meaning, specifying which parameters apply to create versus rename and that parent_category_id is create-only, which helps the agent assemble the correct call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb phrase, 'Creates or renames a display category,' and defines the domain concept by noting categories group displays for broadcast_content include_category_ids. This clearly differentiates it from sibling tools like list_display_categories and assign_display_categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly maps each action to its required parameters ('create' needs name; 'rename' needs category_id and new_name), and directs the agent to sibling tools for related tasks: list_display_categories for discovering IDs and assign_display_categories for assigning displays. This is strong when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_licensesManage LicensesADestructiveInspect
Manages premium display licenses: action 'allocate' sets how many license slots an organization gets (licenses, 0 deallocates all), 'assign' binds a free license to a display, 'unassign' releases a display's license back to the pool. Check availability first with get_license_info. Requires admin scope.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | License operation. | |
| org_id | No | Organization ID (action 'allocate'). | |
| licenses | No | License slot count for 'allocate'; 0 deallocates all. | |
| display_id | No | Display profile ID (actions 'assign' and 'unassign'). | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| orgId | No | |
| badgeMode | No | |
| freeLicenses | No | |
| allocatedToOrg | No | |
| isPremiumAssigned | No | |
| personalDisplayLimit | No | |
| freeAllocatableLicenses | No | |
| totalAllocatableLicenses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this destructive, but the description adds meaningful behavior: 0 deallocates all slots, unassign returns a license to the pool, and admin scope is required. No contradiction exists between description and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler; the action list is front-loaded and the prerequisite/scope warning is compact. The first sentence is long, but its colon-separated structure keeps it readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-action, destructive license tool, it covers all action semantics, the prerequisite lookup, and permission requirement. It does not discuss edge cases or failure states, but the output schema and full parameter schema cover the remaining invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the bar for adding value is higher. The description does clarify 'free license' and the allocation/deallocation behavior, but most parameter mappings are already present in the schema, and token/session parameters are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('premium display licenses') and enumerates each action with its exact effect: allocate sets slot counts, assign binds a free license, unassign releases it. This goes beyond mere title repetition and clearly differentiates the tool from read-only license info via get_license_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete usage context: check availability first with get_license_info and requires admin scope. It does not explicitly spell out when not to use each action, but the action semantics plus prerequisite make the intended flow clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_org_memberManage Org MemberADestructiveInspect
Manages organization membership: action 'invite' adds a member by email with a role, 'set_role' changes a member's role, 'remove' removes the member. Roles for organizations: 'admin' (manage members and displays), 'manager' (manage displays and content), 'viewer' (read-only); families accept 'child'. Requires admin scope.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Role for 'invite' and 'set_role': 'admin', 'manager', 'viewer' (families: 'child'). | |
| No | Email address to invite (action 'invite'). | ||
| action | Yes | Membership operation. | |
| org_id | Yes | Organization ID. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| target_user_id | No | Member user ID (actions 'set_role' and 'remove'). | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orgId | No | |
| newRole | No | |
| removed | No | |
| previousRole | No | |
| targetUserId | No | |
| displaysTransferred | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's mutation nature is consistent. It adds the admin scope requirement and clarifies role semantics, which is useful beyond annotations. However, it does not disclose potential side effects (e.g., notification emails, irreversible removal) or what happens on invalid input. Given annotation coverage, this is a moderate contribution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences cover the core actions, roles, and admin requirement without redundancy. The front-loaded action list immediately orients the agent, and no filler exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 100% schema coverage and an output schema present, the description covers the necessary invocation logic: actions, roles, and authentication scope. It doesn't explain error handling or edge cases, but for a mutation tool with clear schema documentation, this is adequate. Slightly more on expected outcomes would push it to 5, but it's already strong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are documented. The description adds value by linking parameters to actions (email for invite, target_user_id for set_role/remove) and defining role values, which the schema lists but does not explain in context. This goes beyond simple repetition of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as managing org membership with three specific actions (invite, set_role, remove) and defines the role options. This distinguishes it from other org-related tools like configure_organization or list_organizations, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when each action is appropriate (invite adds a member, set_role changes, remove removes) and lists the valid roles for organizations and families. It also notes the admin scope requirement, giving the agent context for invocation. It could be more explicit about when not to use this tool in favor of siblings, but the action-oriented guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pair_by_codePair Display by CodeAInspect
Pairs a physical screen with the 6-character code shown on https://display.agentview.de — the recommended first-time setup: ask the user to open that URL on the TV and read the code, then call this (creates and pairs in one step). Pass target_display_id to rebind an EXISTING display profile onto new hardware instead (keeps name, settings, content). Requires admin. A connector session normally holds content scope only, which is NOT a dead end and does NOT need the connector re-authorized: run create_auth_session with scope 'admin', show the user the loginUrl, poll get_auth_session until active, then call this again with that session_request_id. The handle authorizes the call even when the connector's own token cannot.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The 6-character pairing code shown on the display (e.g. 'AB3K7F'). | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| profile_name | No | Friendly name for the display (required for new pairing, ignored for rebind). Example: 'Lobby Screen'. | |
| target_display_id | No | To rebind: the existing display profile ID to switch to the new hardware. Omit for new display pairing. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| profileId | No | |
| linkedHardwareId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses that the call both creates and pairs in one step and that rebinding keeps name, settings, and content. It further reveals the admin requirement and the auth-scope failure mode, adding valuable context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded, opening with the core pair action before moving to rebinding and the auth edge case. Each sentence adds distinct procedural or prerequisite value; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the happy path, the rebind variant, admin requirements, an authentication recovery flow, and when to poll get_auth_session. Since output schema exists, return values are already covered; nothing needed to call the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 100% schema coverage, the description adds decision rules: profile_name is required for new pairing but ignored on rebind; target_display_id is the switch for rebinding; session_request_id comes from create_auth_session. This materially enriches parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action — pairing a physical screen with a 6-character code — and immediately distinguishes first-time pairing from rebinding an existing display profile via target_display_id. This makes it distinct from broader siblings like create_display or claim_display.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly presents itself as the recommended first-time setup with step-by-step user instructions, and gives the alternative rebind path with target_display_id. It also details when to use create_auth_session/get_auth_session first and explicitly says re-authorization is not needed, providing strong decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_display_htmlRead Display HTMLARead-onlyIdempotentInspect
Reads the raw HTML source currently shown on a display so you can inspect or edit it and push it back with send_html. content_type 'idle' reads the default/fallback content instead. Responses are windowed for large documents: max_bytes (default 51200) and offset page through the source; the result reports totalBytes and truncated. Not for visual previews (use get_display_preview_url). Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Byte offset to start reading from. Default 0. | |
| max_bytes | No | Maximum bytes of HTML to return. Default 51200. | |
| display_id | Yes | 8-character display profile ID, e.g. 'ABCD1234'. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| content_type | No | 'live' (default) reads active content; 'idle' reads default content. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| html | No | |
| name | No | |
| offset | No | |
| source | No | |
| truncated | No | |
| hasContent | No | |
| htmlLength | No | |
| totalBytes | No | |
| contentType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly, idempotent, not destructive), the description adds key behaviors: windowed reading with max_bytes and offset, reporting totalBytes and truncated. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences front-load purpose, then add paging details, then exclusion. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, 1 required, and an output schema (not shown but acknowledged), the description covers purpose, windowing, alternatives, and prerequisite (content scope). Complete for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds context on paging behavior (max_bytes default, offset) and content_type explanation beyond enum values, but mostly reinforces schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads raw HTML source shown on a display, distinguishes from get_display_preview_url for visual previews, and explains the content_type parameter for idle vs live content. The verb 'reads' and resource 'HTML source' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says not for visual previews and directs to get_display_preview_url. Mentions pushing back with send_html. But does not provide guidance on when to use access_token vs session_request_id or prerequisites like content scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_display_from_orgRemove Display from OrganizationADestructiveInspect
Removes a display from an organization, clearing its group assignment and all display grants. The display becomes unassigned. Requires admin scope and admin or owner role.
| Name | Required | Description | Default |
|---|---|---|---|
| org_id | Yes | The organization ID. | |
| display_id | Yes | The display profile ID to remove. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| removed | No | |
| displayId | No | |
| previousOrgId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive and non-idempotent behavior. The description adds substantial behavioral detail by enumerating the side effects: group assignment is cleared, all display grants are cleared, and the display becomes unassigned. It also discloses the required admin scope and role, which is valuable beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the action and its immediate effects, then states authorization requirements. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the action, the specific side effects, the resulting unassigned state, and the required role/scope. Combined with a full parameter schema and an output schema, this is sufficient for an agent to call the tool correctly. Clearer sibling differentiation would make it fully complete, but the wording already prevents obvious confusion with delete_display.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every parameter, including both required IDs and authentication fields, has a description in the schema. The tool description adds no new parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Removes') and resource ('a display from an organization') and explicitly names the consequences: clearing group assignment and all display grants, with the display becoming unassigned. This clearly differentiates it from destructive siblings like delete_display or clear_display, which have different scopes and effects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys when to use the operation: when a display should be disassociated from an organization rather than deleted or merely reconfigured. It also states access requirements (admin scope and admin/owner role), but it does not explicitly name alternative sibling tools or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_api_keyRevoke API KeyADestructiveInspect
Permanently revokes an API key. This is irreversible — the key will immediately stop working. Requires admin scope.
| Name | Required | Description | Default |
|---|---|---|---|
| key_id | Yes | The ID of the key to revoke (from list_api_keys). | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| keyId | No | |
| revoked | No | |
| alreadyRevoked | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already mark destructiveHint=true, the description adds valuable behavioral specifics: 'irreversible' and 'immediately stop working,' plus the admin scope requirement. This goes beyond the annotation's binary signal and informs the agent about consequences and authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero filler. The action is front-loaded, and the critical irreversible consequence fits naturally into the second clause. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive action with a clear schema and an output schema present, this description covers the necessary operational details: what happens, when it applies, and the access requirement. Nothing essential is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters with descriptions (100% coverage), so the schema already documents key_id and the auth tokens. The description adds no additional parameter information, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('revokes') and resource ('API key'), and emphasizes permanence ('permanently revokes'). This differentiates it from siblings like create_api_key and list_api_keys without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies a key usage condition: 'Requires admin scope.' This gives clear context for when the tool is applicable, though it does not explicitly name alternatives or exclusion cases. The distinction from create/list is implied by the operation itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch ResourcesARead-onlyIdempotentInspect
Searches agentView resources by keyword: documentation, server status, your account, your displays and the API catalog. Returns ranked resource URIs with snippets to read via fetch. Unauthenticated searches cover public docs only. Skip when you already know the URI — call fetch directly.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return. Integer between 1 and 20 inclusive. Defaults to 5. | |
| query | No | Free-text search terms. Examples: a display name, 'account', 'OAuth', 'status'. At least one of query or resource_type should be provided. | |
| resource_type | No | Restricts results to a specific resource category. Must be one of: 'all', 'documentation', 'status', 'account', 'display', 'api'. Defaults to 'all' when omitted. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| query | No | |
| results | No | |
| resourceType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavior: results are ranked URIs with snippets, and unauthenticated searches only cover public documentation. This is useful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The core action is stated first, then return format, auth caveat, and the fetch alternative. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema, fully documented parameters, and annotations, the description provides all necessary context: scope, result format, auth behavior, and an explicit alternative for when the URI is already known. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all four parameters fully. The description does not add parameter-specific details beyond restating the resource categories, which keeps it at the baseline for well-covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('searches agentView resources by keyword') and enumerates the exact categories covered: documentation, server status, account, displays, and API catalog. It clearly distinguishes the tool from the sibling search_public_apis and fetch tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when not to use this tool: 'Skip when you already know the URI — call fetch directly.' It also gives the search context (agentView resources) and the unauth/public-docs limitation, though it does not explicitly contrast with search_public_apis or search_store_templates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_public_apisSearch Public APIsARead-onlyIdempotentInspect
Searches a curated catalog of 600+ free public APIs (no key, HTTPS) for embedding live data in display HTML via fetch(): weather, news, finance, sports, images, food and 40+ more categories. Use when generating HTML that needs live internet data. Set list_categories=true to get the category menu with counts instead of search results. Returns docs links, CORS status and fetch() hints. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results, 1-20. Default 10. | |
| query | No | Free-text search, e.g. 'weather forecast', 'bitcoin price', 'jokes'. | |
| category | No | Category ID filter, e.g. 'weather', 'finance', 'news'. Omit for all. | |
| cors_only | No | true returns only APIs with confirmed browser CORS support. Default false. | |
| list_categories | No | true returns all categories with API counts instead of search results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| query | No | |
| results | No | |
| category | No | |
| corsOnly | No | |
| categories | No | |
| totalCatalogApis | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses no authentication required, returns docs links, CORS status, and fetch() hints. Annotations already declare readOnlyHint and idempotentHint, and the description adds context about the curated catalog size and category count.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, well front-loaded with purpose and usage. Second sentence is slightly long but packs important details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters and output schema present, the description covers key use cases, parameter behavior, and return details. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds value by explaining list_categories behavior beyond schema (returns category menu with counts), and gives query examples like 'weather forecast'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it searches a curated catalog of free public APIs, specifying the use case for embedding live data in HTML via fetch(). It distinguishes from sibling tools like search or search_store_templates by focusing on public APIs with no auth required.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when generating HTML that needs live internet data' and describes the list_categories option for category navigation. Does not mention alternatives, but context signals and sibling list provide differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_store_templatesSearch Store TemplatesARead-onlyIdempotentInspect
Searches the agentView template store for ready-made display designs ('Zahnarzt-Wartezimmer', 'Bistro', 'reception', ...). Use when the user wants a polished pre-built design instead of generated HTML; results render as a gallery widget. Filter by category, suite and language; paginate with limit/offset. Follow up with get_store_template_details. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of templates to return. Defaults to 10. | |
| query | No | Free-text search over template title, description and tags. Examples: 'Zahnarzt', 'italienisches Bistro', 'conference room'. | |
| suite | No | Optional design-family suite slug (e.g. 'bistro-warm', 'sushi-minimal'). | |
| offset | No | Offset into the filtered result set for pagination. Defaults to 0. | |
| category | No | Optional category slug to restrict the search (English kebab-case, e.g. 'gastronomie', 'waiting-room'). | |
| language | No | Preferred content language. Defaults to 'en'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | No | |
| total | No | |
| offset | No | |
| language | No | |
| templates | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is clear. The description adds value by noting 'No authentication required' and 'results render as a gallery widget', which are behavioral details beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loading the core purpose. Each sentence serves a clear function: stating the action and examples (first sentence), usage context (second sentence), and filtering options with follow-up (third sentence). No redundant or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, all schemas are complete, and there is an output schema (mentioned as gallery widget). The description provides enough context for an agent to decide when to use this tool and how to construct the search, including the follow-up step. The absence of return value details is compensated by the output schema reference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters. The description adds practical examples for 'query' (e.g., 'Zahnarzt', 'italienisches Bistro') and clarifies 'suite' and 'category' as optional filters, enhancing the semantic understanding of how to use the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Searches') and resource ('agentView template store for ready-made display designs'), with concrete examples like 'Zahnarzt-Wartezimmer'. It clearly distinguishes from siblings such as list_store_categories and get_store_template_details by noting the follow-up action and the gallery widget rendering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'when the user wants a polished pre-built design instead of generated HTML'. It also explains how to filter and paginate, and recommends following up with get_store_template_details. While it doesn't explicitly exclude alternatives, the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_htmlSend HTMLADestructiveInspect
Shows HTML content on a display: menus, dashboards, welcome pages, schedules or any custom design. slot 'live' (default) replaces the current content; slot 'idle' stores the default/fallback content shown when nothing live is active (idle requires admin scope). Always pass a short description so later content reads stay meaningful. Exactly one of html or base64_html. For external web pages use send_url; to edit current content call read_display_html first. For polished results load prompt render_premium_display_html or resource agentview://public/design-system. Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | Complete HTML document to render. Mutually exclusive with base64_html. | |
| slot | No | Target slot: 'live' (default) replaces current content; 'idle' sets the default shown when idle (admin scope). | |
| token | No | Display-specific demo/preview token for unauthenticated access. NOT the OAuth token. | |
| duration | No | Seconds the content stays; 0 = indefinite (default). Live slot only. | |
| display_id | Yes | 8-character display profile ID, e.g. 'ABCD1234'. | |
| base64_html | No | Base64-encoded HTML (standard base64). Use only when raw HTML cannot survive JSON transport. Mutually exclusive with html. | |
| description | Yes | Short human-readable summary of the content, e.g. 'Weekly KPI dashboard'. | |
| access_token | No | Optional bearer token; prefer session_request_id. Distinct from the display-specific 'token'. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| idleFile | No | |
| idleVersion | No | |
| idleContentCleared | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses exactly what gets affected: the 'live' slot replaces current content, while 'idle' stores fallback content. It also reveals authentication requirements ('idle requires admin scope', 'Requires content scope') and explains why a description parameter matters ('so later content reads stay meaningful'). This adds meaningful behavioral context beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with the core purpose. Every sentence contributes something important—slot semantics, mutual exclusivity, alternatives, scope, and design resources. It is slightly longer than strictly necessary, but the information is well-ordered and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters and an output schema, the description covers the critical operational context: slot behavior, encoding constraint, required description, scope requirements, and alternatives. It doesn't need to explain return values because the output schema exists, and it doesn't omit any information an agent needs to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already well-documented. The description still adds value by emphasizing the mutual exclusivity between html and base64_html, and by instructing the agent to always provide a short description. It does not repeat every schema detail, but the added cross-parameter guidance lifts it above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Shows HTML content on a display') and identifies the resource (a display) with concrete use cases (menus, dashboards, schedules). It further distinguishes itself by naming alternatives: 'For external web pages use send_url; to edit current content call read_display_html first.' This makes the tool's purpose unmistakable and separates it from related siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: it tells the agent to use send_url for external pages and read_display_html before editing current content. It also states hard usage rules like 'Exactly one of html or base64_html', 'Always pass a short description', and the admin-scope requirement for the idle slot. This is clearly actionable guidance for selecting and invoking the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_store_template_to_displaySend Store Template to DisplayADestructiveIdempotentInspect
Installs a published store template onto a display: materializes the HTML, auto-creates required data slots (reusing prior installs) and publishes within seconds. Call get_store_template_install_options first for valid targets and slots; customize per-slot JSON inline via data_slot_overrides (raw JSON string or inline object per key, max 64 KiB each). Requires content scope and control access to the display.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Template slug to install, e.g. 'bistro-warm-door'. Must be a currently published template. | |
| display_id | Yes | Display profile ID (8-char alphanumeric) from list_displays or get_store_template_install_options. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| idempotency_key | No | Optional opaque key (max 128 chars) to make this install retry-safe. If a previous successful install for the same (user, display, idempotency_key) tuple exists within 24 hours, the cached result is returned without re-publishing. Use this when an MCP client may retry the call after a network timeout (e.g. ChatGPT and other LLM hosts retry tool calls automatically) so the user doesn't see the display flicker through two near-identical installs. Recommended format: a UUID generated client-side per user request. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. | |
| data_slot_overrides | No | Optional { key: value } map keyed by data-slot key (see requiredDataSlots). Each value is JSON payload to install into that slot — either a string of raw JSON or an inline object/array. Unknown keys are silently dropped; malformed JSON fails with invalid_slot_override. Per-slot payload capped at 64 KiB, max 64 overrides per call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| fileName | No | |
| displayId | No | |
| versionId | No | |
| templateSlug | No | |
| overrideCount | No | |
| installedSlots | No | |
| contentVersionId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses important behaviors: auto-creates data slots reusing prior installs, publishes within seconds, idempotency key behavior (24-hour cache, retry-safety). Annotations indicate destructive and idempotent, and description aligns without contradiction. Adds substantial context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph, front-loaded with purpose. Every sentence serves a purpose (purpose, prerequisite, parameter details, access). No redundant or missing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers prerequisites, idempotency, overrides, and access requirements. Output schema exists so return values are handled elsewhere. For a complex tool with 6 params and nested objects, the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds meaningful details: for data_slot_overrides (unknown keys dropped, malformed JSON fails, size/quantity limits), for idempotency_key (usage with retry scenarios, format recommendation). Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description starts with a specific verb+resource: 'Installs a published store template onto a display' and further details materializing HTML, auto-creating data slots, and publishing within seconds. Clearly distinguishes from siblings like send_html or get_store_template_install_options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states to call get_store_template_install_options first for valid targets and slots, and mentions required access (content scope and control access). Provides clear context but does not explicitly mention when not to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_urlSend URLADestructiveInspect
Shows an external web page on a display via full-page iframe: dashboards, websites or web apps. slot 'live' (default) replaces current content; slot 'idle' stores it as default/fallback content (admin scope). The URL must be absolute HTTP(S). Check get_display (response_format 'detailed') first when unsure about connectivity or embedding limits. If the page design is not display-ready, prefer send_html with generated content. Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute HTTP or HTTPS URL to load, e.g. 'https://example.com/dashboard'. | |
| slot | No | 'live' (default) or 'idle' for default/fallback content (admin scope). | |
| duration | No | Seconds the content stays; 0 = indefinite (default). Live slot only. | |
| display_id | Yes | 8-character display profile ID, e.g. 'ABCD1234'. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. | |
| content_description | No | Short summary of what the page shows (recommended). |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| idleFile | No | |
| idleVersion | No | |
| idleContentCleared | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description adds meaningful behavioral context: slot 'live' replaces current content, slot 'idle' stores default/fallback content, requires content scope, and URL must be absolute HTTP(S). It stops short of explicitly stating irreversibility or consequences of replacement, but 'replaces' plus the destructive annotation cover the core side effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences with the core action and slot behavior front-loaded. Every sentence earns its place: purpose, operational constraints, and usage guidance. There is no filler or redundant repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema coverage and output schema, the description provides the missing operational context: slot semantics, scope requirement, URL constraints, and when to check get_display or switch to send_html. Nothing essential for an agent to call this tool correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema carries the parameter documentation burden. The description mostly restates slot semantics and the absolute-URL constraint that already appear in the schema, adding little new parameter-level meaning beyond the general guidance to prefer send_html for non-display-ready pages.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Shows'), a specific resource ('external web page on a display'), and the mechanism ('full-page iframe'). It also distinguishes the intent from the sibling send_html by noting it is for display-ready dashboards/websites/web apps, so an agent can tell this tool apart 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit routing guidance: check get_display (response_format 'detailed') when unsure about connectivity or embedding limits, and prefer send_html when the page design is not display-ready. It also states the content scope requirement, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_data_slotSet Data SlotADestructiveIdempotentInspect
Creates or updates a mutable JSON data slot (max 2 MB) that display HTML fetches via its readUrl — the live-data backbone for store templates. The slug is stable; reusing it updates in place. type 'value' stores JSON verbatim; 'aggregate' composes up to 32 sources ({slot:'name'} or one {prefixMatch:'agent-'}) within the same personal/group scope. Requires content scope. Returns slug, readUrl and size.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Stable slug for the data slot. Must match ^[A-Za-z0-9_-]{8,64}$. Same slug on a later call updates the existing slot. Slug stays exactly as supplied; the public URL uses a separate server-generated PublicId so the slug itself is never sensitive. | |
| type | No | Slot kind. 'value' (default) stores 'content' verbatim. 'aggregate' stores 'content' as a composite-slot definition. Immutable after creation. | |
| label | No | Human-readable label (max 200 chars). Required when creating a new slot; optional on update. | |
| content | Yes | JSON content to store. For value slots: any valid JSON value up to 2 MB. For aggregate slots: a definition object { sources: [{slot,as?} | {prefixMatch}], onMissing?, onInvalidJson?, includeMeta?, staleAfterMs?, output? }. | |
| group_id | No | Group/organization ID for shared group slots. Omit for personal slots. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| type | No | |
| label | No | |
| groupId | No | |
| readUrl | No | |
| sizeBytes | No | |
| updatedAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnly=false, idempotent=true, and destructive=true, and the description adds meaningful behavior beyond that: the 2 MB cap, in-place replacement via a stable slug, aggregate composition rules, scope constraint, and returned fields. This significantly enriches the annotation-only picture without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, each carrying distinct information: core behavior, mutation semantics, type semantics, and auth/return information. No filler or redundancy; the most critical facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and full schema coverage for all 7 parameters, the description supplies the remaining operational context: size limit, update semantics, aggregation behavior, scope requirements, and return value highlights. An agent has enough to invoke this tool correctly and interpret its role among related data-slot tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does add high-level meaning by explaining the difference between 'value' and 'aggregate' contents and the 32-source composition rule, but it mostly reinforces what the parameter descriptions already state rather than introducing substantial new parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Creates or updates a mutable JSON data slot' and attaches a concrete purpose ('display HTML fetches via its readUrl'). It also distinguishes the two behavioral modes ('value' vs 'aggregate'), separating this tool from sibling list/get/delete data-slot tools without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use explicit: this is 'the live-data backbone for store templates' and explains when each type is appropriate ('value' stores verbatim, 'aggregate' composes multiple sources). It does not name alternatives explicitly, but the context is clear enough to route an agent to this tool for mutable slot creation/updating rather than read/delete operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_display_grantSet Display GrantADestructiveIdempotentInspect
Grants or revokes a member's access to one display inside an organization. action 'set' (default) creates/updates the grant with access_level 'view' (see status) or 'control' (send content); action 'remove' revokes it. The target user must be an organization member. Requires admin scope.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | 'set' (default) creates/updates the grant; 'remove' revokes it. | |
| org_id | Yes | Organization ID. | |
| display_id | Yes | Display profile ID. | |
| access_level | No | Required for action 'set'. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| target_user_id | Yes | User to grant or revoke. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| granted | No | |
| removed | No | |
| displayId | No | |
| accessLevel | No | |
| targetUserId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the mutation/destructive nature is covered. The description adds meaningful context beyond annotations by explaining what 'set' and 'remove' do, defining access levels, and stating the admin scope requirement. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences cover purpose, actions, access levels, prerequisites, and permissions without any filler. The main purpose is front-loaded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return values do not need to be explained. The description covers the required member condition, admin scope, action semantics, and access-level meanings. It is slightly light on what happens if access_level is provided with action 'remove', but this is a minor edge case given the schema already marks it as only required for 'set'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining the 'view' access level as 'see status' and 'control' as 'send content', and by clarifying the default behavior of 'action'. This adds useful meaning not present in the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Grants or revokes') and names the exact resource ('a member's access to one display inside an organization'). It clearly distinguishes this from sibling tools like manage_org_member or assign_display_categories by focusing on display-level grants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it explains the default action, the two actions, and explicitly states prerequisites ('target user must be an organization member' and 'Requires admin scope'). It does not explicitly name alternatives or say when not to use it, but the provided conditions are sufficient for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feedbackSubmit FeedbackAInspect
Sends the user's feedback, feature request or bug report about agentView itself (not display content) for later review. Confirm the exact wording with the user before sending; optional sentiment. There is no automatic reply. Requires content scope.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The user's verbatim feedback text (max 2000 characters). Pass what the user actually said; do not paraphrase or add your own commentary. | |
| sentiment | No | Optional overall sentiment of the feedback. Set only when the user's tone is clear; omit if unsure. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as non-readOnly and non-destructive. The description adds meaningful behavioral context: the feedback is sent for later review, there is no automatic reply, and content scope is required, which is not visible from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four short sentences with the primary action front-loaded and no filler. Every sentence contributes: what it sends, confirmation behavior, no-reply expectation, and required scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, complete parameter descriptions, and annotations, the description covers the key prerequisites and expectations. The only minor gap is that 'content scope' is not elaborated, but the phrase still signals a required precondition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented, including 'prefer session_request_id'. The description reinforces the verbatim-message requirement and optional sentiment but adds no meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Sends' and identifies the resource as the user's feedback, feature request, or bug report about agentView itself, not display content. This scoping distinguishes it from content-sending sibling tools like broadcast_content or send_html.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: use for feedback about agentView, confirm wording with the user, sentiment is optional, and there is no automatic reply. The explicit 'not display content' exclusion serves as a when-not signal, though it does not name an alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_display_contentTest Display ContentARead-onlyIdempotentInspect
Dry-run validator for generated HTML: runs agentView's size and description checks WITHOUT touching a real display. Use after composing complex HTML and before send_html or broadcast_content. No display_id needed; the response carries simulated=true. Capped at 1 MB. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | Complete HTML document to validate. Mutually exclusive with base64_html — provide exactly one. | |
| base64_html | No | Base64-encoded HTML payload. Mutually exclusive with html. | |
| description | Yes | Short human-readable description of what the HTML represents (1-1000 chars). Same validation rules as send_html. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| success | No | |
| displayId | No | |
| simulated | No | |
| sizeBytes | No | |
| description | No | |
| displayName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses important behavior beyond annotations: 'simulated=true', 'capped at 1 MB', 'requires authentication', and 'without touching a real display'. These complement the readOnly/idempotent hints without contradiction, giving the agent a full safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, followed by usage, response marker, limit, and auth. No wasted words; each clause adds essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not detail return values. It covers purpose, usage context, simulation flag, size cap, and auth. It lacks a few details like how access_token vs session_request_id are handled, but those are fully documented in the schema, so it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds minimal parameter-specific value beyond clarifying that no display_id is needed (which isn't a parameter). It does not elaborate on html/base64_html mutual exclusivity, but the schema already covers that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a 'Dry-run validator for generated HTML' with a specific verb and resource. It explicitly differentiates from siblings by saying 'before send_html or broadcast_content' and mentioning 'no display_id needed', making its scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs 'Use after composing complex HTML and before send_html or broadcast_content', providing a clear temporal context and naming alternative tools. This is direct guidance on when and when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_assetUpdate AssetADestructiveIdempotentInspect
Updates the name and/or description of an existing asset. The URL does not change. At least one of name or description must be provided. Requires authentication with at least content_only scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New filename for the asset. | |
| asset_id | Yes | The asset ID to update. | |
| description | No | New description for the asset. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| name | No | |
| size | No | |
| asset_id | No | |
| mime_type | No | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey mutation (readOnlyHint=false, destructiveHint=true) and idempotency. The description adds value by stating the URL invariant, the required input constraint, and the auth scope. It does not elaborate on the destructive overwrite behavior, but the annotations cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the purpose and key constraint before moving to authentication. Every sentence earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter update tool with full schema coverage, an output schema, and safety annotations, the description supplies the remaining actionable details: required field combination, URL stability, and auth scope. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by clarifying that at least one of name/description is required even though the schema marks only asset_id as required, and by noting the URL remains unchanged. This adds meaningful semantic context for invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Updates') and resource ('existing asset'), and narrows the operation to 'name and/or description' while noting the URL does not change. This clearly distinguishes update_asset from siblings like upload_asset, get_asset, and delete_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage constraints: at least one of name or description must be provided, and authentication requires at least content_only scope. It does not explicitly call out when to prefer upload_asset vs update_asset, but the scope and prerequisites are stated clearly enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_assetUpload AssetAInspect
Upload one or more files (images, fonts, CSS, video, etc.) as assets and receive stable URLs. Use these URLs in your HTML with or @font-face. Assets are cached on displays. Pass files as base64-encoded data. Requires authentication with at least content_only scope.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | Array of file objects, each with 'name' (filename with extension) and 'data' (base64-encoded content). | |
| group_id | No | Optional group ID to associate the assets with. | |
| access_token | No | Optional bearer token; prefer session_request_id. | |
| descriptions | Yes | JSON object mapping each filename to a human-readable description. | |
| session_request_id | No | Session handle from create_auth_session; pass it on every authenticated call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| assets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description adds meaningful behavioral details: files are base64-encoded, assets are cached on displays, and authentication requires at least content_only scope. It does not contradict annotations and provides useful operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly written: purpose, usage context, encoding behavior, and auth requirement each earn their place. It is front-loaded with the core action and avoids redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema and output schema cover structured details, the description is nearly complete: it explains the main use case, encoding requirement, cache behavior, and auth constraints. The required 'descriptions' parameter is not highlighted in prose, but the schema documents it fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces that files are base64-encoded and supports multiple files, but it adds little meaning beyond what the schema already documents for individual parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Upload') and resource ('files... as assets') and clearly states the outcome ('receive stable URLs'). It differentiates from sibling tools by framing uploads against delete/get/list/update assets with no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear use context is provided: upload files to be referenced in HTML via <img src> or @font-face, with stable URLs and display caching. It does not explicitly name alternatives or say when not to use this tool, but the context is strong enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
DOOH advertising via AI agents. 5,000+ screens with edge AI audience intelligence.
Manage digital signage screens, playlists and media from your AI assistant.
Ambient split-flap display board agents push text to; humans watch it on any screen.
Turns any agent into a full agentic application — branded, interactive screens generated at runtime.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to create and manage customizable dashboards with text, list, stats, progress, and chart widgets, accessible via a read-only web viewer and JSON API.
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to create projects, post rich status updates with images and video, claim tasks, read replies, and gate work behind user approvals over a live browser dashboard.3MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create interactive charts, diagrams, and tables displayed on a real-time dashboard, supporting multiple data sources with privacy-focused local execution.1MIT
- AlicenseAqualityFmaintenanceEnables AI agents to build freeform dashboards for e-ink panels by listing widgets and devices, laying out a canvas, rendering a preview, and pushing to the panel.18AGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Most tools map cleanly to distinct resource-action pairs (displays, organizations, assets, data slots, store templates, auth). A few clusters like the get_store_template_* family and the auth/session tools could still confuse an agent, but their descriptions are explicit enough to separate them.
The dominant pattern is consistent verb_noun snake_case (list_*, get_*, create_*, delete_*, send_*, set_*, manage_*). Deviations like fetch, search, authenticate, logout, and pair_by_code are understandable but break the otherwise uniform naming scheme.
With 57 tools this server far exceeds the 50+ threshold, creating an extreme tool-set size for an MCP server. Even though the underlying platform is feature-rich, the sheer number of tools heavily taxes context and selection.
The surface covers display, organization, asset, data slot, store template, auth, API key, and licensing lifecycles in impressive depth. Minor gaps exist, such as no delete operation for display categories and no reboot/power control for displays.