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
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 57 of 57 tools scored.
Every tool targets a distinct resource and action, with clear descriptions that differentiate similar operations (e.g., claim_display vs pair_by_code vs create_display; send_html vs send_store_template_to_display). No two tools have overlapping purposes that would cause confusion.
Tool names follow a consistent snake_case verb_noun pattern (e.g., list_displays, create_api_key, get_asset), with only minor deviations like single-word verbs (fetch, search) and long but clear names (send_store_template_to_display). The overall pattern is predictable.
With 57 tools, the server is significantly oversized relative to typical MCP servers (3-15 tools). While the scope of display management justifies many operations, the tool count far exceeds reasonable expectations for an agent, risking bloated context windows.
The tool surface covers most workflows: CRUD for displays, assets, data slots, organizations, API keys, licenses, and store templates, plus authentication and search. Minor gaps exist (e.g., no delete operation for display categories, no bulk grant management), but agents can work around them.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it details that replace sets the exact full category list, while add/remove mutate only one category. It also notes that for add/remove only the first category_id is used. This aligns with the annotations (destructiveHint=true, idempotentHint=true) and does not contradict 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 long, front-loading the purpose and then elaborating on modes. Every sentence adds value, with no redundancy or 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 the complexity (5 parameters, 3 modes, no output schema), the description covers main behaviors and references sibling tools for ID discovery. It does not explain return values, which is acceptable without an output schema. Slight gap: no mention of potential errors or prerequisites (e.g., authentication, permissions).
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 describes all parameters. The description adds some value by explaining how mode affects usage of category_ids, but this is also hinted in the schema's enum descriptions. No additional meaning is provided for display_ids, access_token, or session_request_id.
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 assigns displays to categories, explains three modes (replace, add, remove), and distinguishes itself from sibling tools like list_display_categories and manage_display_category.
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 to use each mode: replace for full category list, add/remove for mutating one category across displays. It also directs to discover IDs via list_display_categories and create categories via manage_display_category. However, it doesn't explicitly state when not to use the tool or provide exclusions.
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 caches the identity on this MCP session so later calls work without resending it. 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 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool caches identity on the session, making later calls work without resending the token. This adds context beyond the idempotentHint=true annotation, explaining the idempotent behavior and session-level 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?
Three sentences, each informative and front-loaded with the core action. No extraneous text. Perfectly concise.
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 presence of an output schema, the description does not need to explain return values. It covers purpose, usage guidelines, behavioral transparency, and parameter nuances adequately for a tool of this 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 covers all three parameters with descriptions. The description adds value by clarifying that the token is a JWT, should not have a 'Bearer ' prefix, and should be passed exactly as received. However, it does not individually explain each parameter 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 clearly states the tool validates a JWT agent token and caches identity, distinguishing it from sibling tools like create_auth_session and get_auth_session. The verb 'validates' and resource 'JWT agent token' 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?
Provides explicit when to use (client cannot send Authorization header) and when not to use (prefer session_request_id-based auth via create_auth_session, not needed after get_auth_session returns active). Clearly names alternatives.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true; the description adds that locked displays are skipped with reasons and mentions required content scope, exceeding what annotations provide.
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 moderately concise and front-loads the core action, though it could be slightly shortened without losing essential 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 complexity (multiple targeting modes, dry_run, locked display handling, authorization requirement), the description covers key behavioral aspects adequately.
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%, but the description adds context about mutual exclusivity of html and base64_html, and groups parameters by targeting mode, adding value 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 clearly states it sends HTML to many displays at once, using verbs like 'broadcast' and explicitly distinguishes from send_html for single displays.
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 mentions that for a single display use send_html, and describes various targeting modes. However, it does not contrast with other broadcast-like tools such as send_url.
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'. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds key behavioral details beyond annotations: permanent ownership transfer, quota impact, and admin scope requirement. Annotations only indicate readOnlyHint=false, which is consistent. The description provides context not captured in structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, then usage condition. No filler, every sentence serves a 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?
The description covers the main effect, prerequisites, and usage context. No output schema exists, but the description compensates well. Could mention what happens to the previous owner or if the operation is reversible, but overall 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 coverage is 100% and the description adds minimal extra context (e.g., display_id is 'the hardware or temporary ID shown on the device'). Baseline is 3 since schema fully documents parameters; description provides marginal improvement.
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 action ('Adopts an unclaimed guest or pending display'), the resource type (display), and distinguishes from the sibling tool pair_by_code by noting when to use each ('for first-time setup prefer pair_by_code').
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 guidance on when to use ('only when the user explicitly wants to take over hardware that is already running') and when not to ('for first-time setup prefer pair_by_code'), with a named alternative.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral details beyond annotations: changes are immediate, requires content_only scope, returns id and status. Annotations already indicate destructive and idempotent, so description complements well.
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?
Five concise sentences, each adding unique value: action, immediacy, usage, sibling differentiation, auth+return. 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 no output schema, description covers return structure. Parameters are well-documented in schema. Provides sufficient context for a clear, simple operation.
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. Description does not add parameter-specific details 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?
Describes the action precisely: 'Removes current live content' and 'returns to idle/default state'. Clearly distinguishes from delete_display by stating '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?
Explicitly states when to use: 'when user wants to blank or reset a display'. Names alternative delete_display for deletion. Provides clear context and exclude condition.
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 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and idempotentHint=true. The description adds that 'Only the fields you pass are changed; online displays apply changes immediately,' which explains partial update behavior and real-time effect. This complements 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 a single paragraph that front-loads the purpose and then lists settings with schema property names in parentheses. It is efficient with no redundant words and covers key points. Minor improvement could be bullet formatting, but it is already clear and concise.
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 17 parameters and no output schema, the description covers core behavior (partial updates, immediate effect for online), usage exclusions, and authorization. It is mostly complete given the complexity, though it does not explain all parameters or the return value.
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 moderate (59%). The description lists many parameters with brief mappings (e.g., 'lock or unlock content changes (locked)'), adding some context beyond the schema. However, it does not cover all 17 parameters (e.g., whitelist, strict_whitelist, connectivity_mode are omitted), leaving gaps. The added value is marginal.
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 'Updates display settings' and lists specific settings, establishing a clear verb+resource pair. It explicitly distinguishes from siblings by stating 'Not for sending content (send_html, send_url) or deleting (delete_display).' This provides high purpose clarity.
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 'Use for any display setting change,' which is a clear condition for use. It also excludes related tasks (sending content, deleting) and notes that online displays apply changes immediately. The requirement 'Requires admin scope' at the end provides important authorization context.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true. The description adds context by stating 'Only provided fields change', which supports idempotency, and mentions role requirements. It doesn't contradict annotations and provides useful behavioral insight 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, each serving a distinct purpose: what it does, when to use, and prerequisites. No redundant information. The description is front-loaded with the core 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?
Given the tool has 6 parameters and no output schema, the description effectively covers purpose, usage, key parameters, and prerequisites. It doesn't explain return values or error behavior, but for a mutation tool this is acceptable. The idempotency and destructive hints are supported by description text.
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%, but the description adds semantic grouping: 'rename (name)' and 'network connectivity defaults' for the other three fields. It also explains that org_id comes from list_organizations. This adds value beyond the 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 uses a specific verb ('updates') and resource ('organization settings'), and lists the specific fields being updated. This clearly distinguishes it from sibling tools like configure_display which update display settings, and create_organization which creates a new organization.
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 an org admin renames the organization or declares network topology.' It also mentions required role (org-admin) and scope. While it doesn't describe when not to use or list alternatives, the context is clear enough for an AI to decide.
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']. | |
| 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 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds critical behavioral information beyond annotations: the raw key is returned only once and must be stored securely. It also flags required user consent and admin scope. No contradiction with annotations (readOnlyHint=false, destructiveHint=false).
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 sentences long, front-loading the core purpose in the first sentence. It is dense but not verbose, efficiently covering purpose, warning, prerequisites, and granular scoping. Minor improvement possible by condensing the fourth sentence, but overall effective.
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 presence of an output schema (assumed), high schema coverage, and clear annotations, the description is remarkably complete. It explains the tool's role, critical constraints (one-time key return), prerequisite (admin scope, user consent), and how multiple scoping parameters interact. No notable gaps remain.
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, the baseline is 3. The description adds explanatory context for parameters, such as how 'scope' and 'permissions' interact (e.g., a content_only read-only key cannot PUT data slots), and clarifies the role of 'capabilities', 'allowed_slot_slugs', and 'allowed_display_ids'. This exceeds the schema's 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 it creates a long-lived API key for server-to-server integration without OAuth, distinguishing it from authentication tools like 'authenticate' and management tools like 'list_api_keys' and 'revoke_api_key'. The verb 'creates' is specific and the resource is uniquely identified.
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 when to use ('server-to-server integration without OAuth') and prerequisites ('Requires admin scope', 'user must explicitly consent'). It does not explicitly mention when not to use or list alternatives, but the context implies it's for long-lived key creation, contrasting with OAuth flows or short-lived sessions.
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 |
Tool Definition Quality
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are mostly false (readOnlyHint, destructiveHint, etc.), so the description carries the burden. It adds valuable context: the display starts offline, requires admin scope, returns id and URLs. 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?
Extremely concise: two sentences plus an important usage note. Every sentence adds value, no 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 no output schema, the description sufficiently describes the tool's action, inputs, behavior, and output. It covers what an agent needs to know to use 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 baseline is 3. The description adds extra nuance: name is required when org_id is set, which is not in the schema. That improves 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 clearly states it pre-provisions a display, distinguishing it from pairing. It explicitly contrasts with the sibling tool pair_by_code, which is used for physical screens, making the purpose very 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?
Provides explicit guidance: prefer pair_by_code for physical screens, use create_display only for pre-provisioning or virtual/API-only displays. Also notes the requirement for admin scope and that the display starts offline.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate creation (readOnlyHint=false, destructiveHint=false). The description adds that the user becomes owner, lists return fields, and requires admin scope. This goes beyond annotations by specifying side effects and permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states action and effect, second gives usage guidance, return fields, and requirement. No filler, front-loaded with 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?
With 3 parameters, no nested objects, and no output schema, the description covers usage context, permissions, and return values. It is sufficient for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description doesn't need to add parameter details. It does not provide extra meaning beyond the schema, meeting the baseline of 3.
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 'Creates a new organization and makes the authenticated user the owner', which is specific to creation and distinguishes it from siblings like configure_organization or delete_organization. It also mentions return fields, clarifying the resource.
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 says 'Use this when the user wants to set up a shared display fleet', providing clear context. It also states 'Requires admin scope', indicating prerequisites. While it doesn't explicitly mention when not to use or alternatives, the context signals list siblings that are for modification or deletion, so the guidance is effective.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description adds context about broken images on displays, which is a helpful behavioral trait beyond the annotation.
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 wasted words: first sentence states core action, second adds context on side effect and auth requirement.
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 delete operation with complete schema descriptions and annotations, the description covers purpose, prerequisites, and consequences adequately.
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 the description adds no extra meaning beyond what the input schema already provides for asset_ids and access_token.
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 'Deletes one or more assets' with specific verb and resource, and distinguishes from sibling tools like update_asset, upload_asset, list_assets.
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?
Mentions prerequisite ('Requires authentication with at least content_only scope') and side effect ('Displays referencing deleted assets will show broken images'), but no explicit when-not-to-use or alternatives.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that deletion is permanent and that fetching the readUrl will result in 404. This adds significant context beyond the destructiveHint annotation, informing the agent of post-deletion behavior.
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 covering action, consequence, and usage variant. No redundant information; 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?
For a destructive tool with no output schema, the description covers permanence, side effect (404), parameter differentiation, and authentication. Fully adequate for agent decision-making.
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%, but description adds context for group_id (personal vs group) and clarifies that slug is the identifier. Slight improvement over schema descriptions, though access_token is minimally described.
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 action (permanently deletes) and the resource (data slot). It distinguishes from sibling tools like set_data_slot by emphasizing permanence and irreversible deletion.
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 on when to use group_id vs omit for personal slots. States authentication requirement and irreversibility. Lacks explicit when-not-to-use suggestions but overall is clear.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true; description adds permanence, irreversibility, admin scope requirement, and return fields.
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, each adding distinct 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?
Despite lacking output schema, description specifies return fields and provides comprehensive context for a destructive action.
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 both parameters with descriptions (100% coverage). Description does not add significant parameter info 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?
Clear verb 'deletes' and resource 'display' with specification of scope (all associated content). Distinguishes from sibling tools like delete_asset or 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?
Explicit guidance: 'Use this only when the user explicitly confirms they want to remove the display' and 'Requires admin scope'.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides behavioral traits beyond annotations: 'Permanently deletes', 'releasing all its displays and removing all members', and 'This cannot be undone'. These details add significant context about consequences, complementing the destructiveHint=true annotation.
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 very concise, with only two sentences (or three fragments) that front-load the main action and include essential 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 the tool has only 2 parameters with full schema coverage and no output schema, the description sufficiently covers permissions, consequences, and irreversibility, making it 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 100%, with both org_id and access_token described in the schema. The description does not add extra meaning to the parameters, so 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 clearly states the verb 'deletes' and resource 'organization', and details the specific effects: 'releasing all its displays and removing all members'. This distinguishes it from sibling tools like create_organization, configure_organization, and get_organization.
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 conditions for use: 'Only the owner can delete' and 'Requires admin scope', and warns of irreversibility. While it doesn't list alternatives, the constraints are clear enough for an agent to determine when to invoke this tool.
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'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| uri | No | |
| data | No | |
| text | No | |
| type | No | |
| title | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent. Description adds specifics about URI scheme, auth conditions per URI type, and return fields, providing valuable behavioral 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?
Two concise sentences with no extraneous information. Front-loaded with purpose, then usage guidance and return summary.
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 tool with one parameter and output schema, the description covers URI format, auth requirements, and return fields. 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% with detailed description of the URI parameter and examples. The description reinforces this but adds minimal new semantic meaning 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 clearly states the tool fetches an agentView resource by URI, provides multiple examples, and distinguishes it from sibling getter tools by emphasizing the generic URI-based access.
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 after search or with a known URI', and explains auth requirements for different URI types. Lacks explicit mention of alternative tools for when not to use, but provides sufficient context.
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. |
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 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint=false, so the tool is clearly a safe read operation. The description adds that it 'Requires content scope', which is an important behavioral requirement not captured by annotations. 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 (two sentences) and front-loaded with the core purpose and return fields. Every sentence adds value, with no unnecessary words 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?
The description provides a comprehensive overview of the tool's return fields and usage context. Although an output schema exists (not shown), the description sufficiently covers the key data returned. It could be improved by explaining 'content scope' further, but overall it is complete for an agent to understand the tool's purpose and usage.
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 for its single optional parameter, fully describing it as 'Optional bearer token; prefer session_request_id.' The description does not add any parameter-level information, but the schema already provides sufficient semantics, 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 clearly states the tool returns the user's account profile with specific fields (plan, features, quota, memberships, etc.). It distinguishes from sibling tools by explicitly stating it is not for listing displays, directing to list_displays instead.
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 advises using this tool for subscription, quota, and membership questions, and explicitly warns against using it for listing displays. It also mentions the requirement for 'content scope', providing some usage context. However, it does not elaborate on when not to use it beyond the display listing case.
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 |
Tool Definition Quality
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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| name | No | |
| assetId | No | |
| mimeType | No | |
| createdAt | No | |
| sizeBytes | No | |
| description | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive. Description adds that it returns the URL and requires 'content_only' scope, providing useful behavioral 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?
Two sentences, no extraneous words, front-loaded with the core action. 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 the tool's simplicity, with annotations, full schema, and output schema present, the description covers purpose, use case, authentication, and existence verification completely.
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 is 3. The description does not add parameter-specific details beyond what the schema already provides (asset_id format, access_token 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 metadata for a single asset including its URL, using the specific verb 'get' and resource 'asset'. This distinguishes it from sibling tools like 'list_assets' (multiple) and 'update_asset' (modification).
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 a use case: 'Use this to verify an asset still exists before referencing it in HTML.' Also specifies authentication scope requirement. Does not explicitly exclude other scenarios, but the purpose is clear enough.
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' auto-authenticates this MCP session — protected tools work immediately; keep passing session_request_id on later calls (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 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false) are complemented by the description which adds polling frequency, status transitions, that the raw token is not returned, and that protected tools work immediately after 'active'.
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, with each sentence adding value. It is well-structured, using semicolons to separate key instructions 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 polling complexity and state machine, the description covers the entire flow: how to start, poll, interpret statuses, and proceed. The output schema exists, but the description explains the return values and state transitions comprehensively.
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 a clear description of session_request_id. The description adds the crucial note 'Must be passed exactly as received,' which goes 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 clearly states it polls a login session created by create_auth_session. It specifies the verb 'polls' and the resource 'login session', and distinguishes from sibling tools like create_auth_session and authenticate by describing the workflow.
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 polling instructions (every 2-3 seconds while pending), and explains what to do for each status: 'active' (auto-authenticates, keep passing session_request_id) and 'expired' (restart with create_auth_session).
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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| type | No | |
| label | No | |
| content | No | |
| groupId | No | |
| readUrl | No | |
| sizeBytes | No | |
| updatedAt | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds useful behavioral context by mentioning the readUrl field in the response and that authentication is required, without contradicting 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 concise (three sentences) with the most important information first: purpose, usage guidance, and a notable response field. 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 presence of an output schema and comprehensive annotations, the description covers the essential aspects: purpose, parameter usage, key response field, and authentication. It omits error scenarios but is sufficient for correct usage.
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 already provides full descriptions for all parameters (100% coverage). The tool description does not add additional parameter-specific meaning beyond what the schema 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 tool returns JSON content and metadata of a data slot by slug, and distinguishes between group and personal slots, differentiating it from sibling tools like set_data_slot or 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?
The description provides clear guidance on when to supply group_id versus omit it for personal slots, and notes the authentication requirement. It does not explicitly list alternatives but the context is sufficient.
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 |
Tool Definition Quality
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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| displayId | No | |
| expiresAt | No | |
| previewUrl | No | |
| ttlSeconds | No | |
| displayName | No | |
| privacyMode | No | |
| contentVersionId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so this is a safe read operation. The description adds useful behavioral context: the link is short-lived, shows current content, and lifetime depends on privacy mode. 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?
Two sentences, front-loaded with purpose and usage directive. Every word adds value, 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?
With an output schema present and annotations providing safety profile, the description covers purpose, usage, and behavioral traits (short-lived, live, privacy mode). It omits error handling or output format details, but the output schema fills that 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 coverage is 100%, so the schema already documents all parameters. The description does not add new parameter meaning beyond implying display_id is required, but that is acceptable given full 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 clearly states the tool creates a signed link showing live display content. It uses a specific verb ('creates') and resource ('signed link... preview widget'). However, it does not explicitly distinguish this tool from siblings like 'read_display_html' that might also show display content.
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 'ALWAYS call this when the user wants to SEE their display', providing clear context for when to use. It mentions link lifetime follows privacy mode and requires content scope, but does not exclude alternatives or state 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.
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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| canAllocate | No | |
| orgAllocations | No | |
| personalDisplays | No | |
| allocatableLicenses | No | |
| totalAllocatedToOrgs | No | |
| totalPremiumLicenses | No | |
| freeAllocatableLicenses | No | |
| personalPremiumDisplays | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds return scope and scope requirement but no behavioral surprises. Does not contradict 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, front-loaded: first sentence defines function, second gives usage guidance. No redundant 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?
Given a single optional parameter, clear annotations, and an existing output schema, the description covers purpose, usage context, and prerequisites completely.
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?
Only one parameter, fully described in schema (100% coverage). Description adds no additional parameter info beyond what schema 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?
Clearly states it returns a complete license allocation overview, listing specific components. Distinguishes itself from siblings like 'manage_licenses' by implying it is read-only and for understanding capacity before allocation.
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 using it to understand available capacity before allocating licenses, and mentions required 'content_only' scope. Could improve by explicitly stating when not to use, but the sibling 'manage_licenses' implies the alternative.
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 |
Tool Definition Quality
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 | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description adds value by stating it is a public endpoint with no authentication required, and by listing specific return fields (status, version, URLs). This goes beyond annotation 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?
Two sentences, no fluff. The first sentence immediately states the core purpose and return data, the second sentence adds usage context. Perfectly front-loaded and 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?
For a tool with no parameters and no output schema, the description effectively explains the return data and the use case (pre-auth verification). It is complete for its simplicity, though an explicit list of return fields would raise to 5.
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 zero parameters and 100% coverage, so no param info is needed. The description appropriately does not add param details, as there are none to describe. Baseline 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 clearly states the tool returns 'the server's public readiness status, version string and discovery URLs' with specific verb 'Returns'. It distinguishes from sibling tools by emphasizing it works before authentication, unlike most siblings that require auth or focus on other 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?
Explicitly says 'Use this before authenticating to verify the server is reachable and to obtain entry-point URLs' and 'No authentication required', providing clear guidance on when and how to use. Lacks explicit when-not-to-use or alternatives, but the context is sufficient.
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 |
Tool Definition Quality
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 |
Tool Definition Quality
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 |
Tool Definition Quality
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 |
Tool Definition Quality
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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| keys | No | |
| count | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavioral details beyond annotations: it never returns the raw key and requires admin scope. This helps the agent understand side effects and constraints, though it could mention pagination or rate limits.
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 (two sentences), front-loaded with the main action, and every sentence provides distinct, useful information 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?
For a simple list tool with an output schema, the description covers essential aspects: action, return behavior, and prerequisites. It does not mention pagination or limits, but overall it 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?
The schema covers the single parameter fully (100% coverage). The description does not add additional guidance on how to use the access_token, so it remains at 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 clearly states the action (list) and resource (API keys for the current user), specifying what is returned (metadata) and what is not (raw key). It distinguishes itself from sibling tools like create_api_key and revoke_api_key.
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 mentions the requirement of admin scope, guiding appropriate usage. It does not explicitly list alternatives or when-not scenarios, but the context of siblings and the clear distinction make it adequately clear.
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 |
Tool Definition Quality
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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| slots | No |
Tool Definition Quality
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 important context: returns only metadata (no content), each item includes readUrl, and requires authentication. This enhances transparency 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?
The description is concise with three sentences: first states purpose, second specifies return content, third gives usage hint and auth requirement. No unnecessary words, well-structured.
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?
Considering the existence of an output schema and full parameter descriptions in the schema, the description adds key details (no content, readUrl usage, auth) and is complete enough for a list tool. Could have mentioned pagination behavior beyond schema, but not necessary given 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 all parameters are described in the schema. The description adds only generic 'optional filtering' but no additional meaning beyond what the schema already provides. 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 clearly states the tool lists data slots with optional filtering, distinguishes from siblings by specifying 'Returns metadata only (no jsonContent)' and mentions readUrl for fetching content, which differentiates it from get_data_slot (single slot) and set_data_slot (write 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 gives usage hints like using readUrl in fetch calls and noting authentication requirement, but does not explicitly state when to use this tool over alternatives (e.g., get_data_slot) or when not to use it. However, the context from sibling tools and the name make it reasonably clear.
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 |
Tool Definition Quality
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 |
Tool Definition Quality
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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| organizations | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent. Description adds auth requirement ('content_only scope'), which goes beyond annotations. Also lists returned fields, adding 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?
Two sentences, front-loaded with core purpose, no unnecessary 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?
Tool is simple with 1 param, annotations cover safety, description covers usage and auth. No output schema details needed as it exists. Minor omission: no mention of pagination, but likely not needed for list of user's orgs.
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 only parameter (access_token) is well-described in schema. Description adds no extra parameter info, 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?
Description clearly states the verb 'returns', the resource 'organizations', and specific fields (role, display count, etc.). It distinguishes from siblings like 'get_organization' which returns a single organization.
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 when to use: 'answer questions about the user's organizations, how many displays an organization has, or team membership'. Does not explicitly mention alternatives, but context implies 'get_organization' for a single org.
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 |
Tool Definition Quality
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
Clears the cached login from this MCP session (does not revoke the underlying token). Use when the user wants to sign out or switch accounts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it does not revoke the underlying token, which is critical behavioral info. Annotations already indicate idempotentHint=true and destructiveHint=false, so the description adds context about session vs. token.
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, no wasted words. The key action and limitation are front-loaded. Every sentence serves a 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 no parameters and no output schema, the description is complete. It explains what the tool does, what it does not do, and the intended use case.
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?
No parameters exist; schema coverage is 100%. The description adds no parameter info, but none is needed. Baseline 4 is appropriate for zero-parameter tools.
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 action: clears the cached login from this MCP session. It distinguishes from token revocation, which is a related concept. The verb 'clears' and resource 'cached login' 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 when to use: when the user wants to sign out or switch accounts. Implicitly contrasts with token revocation. Could be improved by explicitly naming an alternative like revoke_api_key for token revocation.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, and the description adds useful behavioral context: for rename, it states 'assignments and grants stay intact'. It also mentions the optional parent_category_id for creating subcategories. 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?
The description is two sentences long, efficiently covering the tool's purpose, actions, key parameters, and references to sibling tools. No unnecessary words, 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 tool has 7 parameters (including optional auth tokens) and no output schema, the description adequately covers the core logic and refers to siblings for related tasks. However, it does not mention what the tool returns (e.g., success/failure or the created/renamed category ID), which would enhance completeness.
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 parameter descriptions. The description adds value by mapping parameters to specific actions (name for create, category_id and new_name for rename) and clarifying that assignments/grants are preserved. This goes beyond the schema by grouping parameters under actions.
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 the tool creates or renames display categories, provides context for what display categories are used for (grouping displays for broadcast_content), and distinguishes from sibling tools like list_display_categories and assign_display_categories. The verb 'Creates or renames' is specific to the resource.
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 on when to use each action (create requires name, rename requires category_id and new_name) and references sibling tools for discovering IDs and assigning displays. However, it does not explicitly state when not to use this tool or mention alternative approaches, leaving some room for improvement.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, and the description confirms the mutating nature. It adds behavioral details such as '0 deallocates all' for allocate action and the requirement for admin scope, going beyond annotations which only provide generic 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: the first covers all three actions and their parameter roles, the second provides a prerequisite and scope requirement. No redundant information, front-loaded with key operations.
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 no output schema, the description covers the essential actions, parameter links, and usage prerequisites. It could mention return behavior (e.g., success/error indications) but the lack of output schema reduces the burden slightly.
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 parameter descriptions. The tool description adds value by explaining how parameters relate to each action (e.g., 'licenses, 0 deallocates all') and grouping parameters by action, which clarifies usage beyond the schema alone.
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 the tool manages premium display licenses with three specific actions (allocate, assign, unassign), each with a one-line explanation. This distinguishes it from siblings like get_license_info (read-only) and other mutation 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 advises to 'Check availability first with get_license_info' and notes 'Requires admin scope'. This provides clear usage context and a precondition, though it does not explicitly mention when not to use the tool or list alternative tools for similar tasks.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint=true; description adds that admin scope is required and explains role hierarchy. It does not detail side effects or reversibility, but adds useful 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?
Two dense sentences, front-loaded with key actions and roles, no unnecessary 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?
Covers actions, roles, scope, and parameter applicability. Lacks explanation of optional authentication parameters (access_token vs session_request_id) but sufficient given no output schema and good annotations.
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%, yet description enriches meaning: explains which actions use which parameters (email for invite, target_user_id for set_role/remove) and clarifies roles for organizations vs families.
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 manages organization membership with three distinct actions (invite, set_role, remove), each explained. It distinguishes from siblings like configure_organization or remove_display_from_org.
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?
Each action's usage is described (invite adds member by email with role, etc.) and required scope (admin) is mentioned. However, no explicit guidance on when not to use this tool 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.
pair_by_codePair Display by CodeADestructiveInspect
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 scope.
| 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description details that it creates and pairs in one step, and preserves existing settings during rebind. This adds context beyond the annotations which only mark destructiveHint=true, providing full behavioral disclosure.
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 redundant information. Front-loaded with primary purpose, then alternative use case, then scope requirement. Every sentence contributes meaning.
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 main usage, parameters, and two distinct flows. However, no output schema exists and description does not hint at return value (e.g., paired display object). Slight gap but overall sufficient for a moderate-complexity tool.
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%, but the description adds practical context: explains code is 6-character, profile_name required for new pairing, target_display_id for rebind. Adds value beyond schema descriptions, though not transformative.
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 pairs a physical screen using a 6-character code, distinguishes between new pairing and rebinding an existing display, and references the specific URL for obtaining the code. This differentiates it from sibling tools 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?
Explicitly describes when to use (recommended first-time setup) and provides an alternative use case via the target_display_id parameter for rebinding. Also notes required admin scope, giving clear context for appropriate invocation.
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 |
Tool Definition Quality
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint=true), the description reveals that the tool clears group assignment and all display grants, and requires specific authorization. This adds meaningful behavioral context about what gets destroyed and access needs. Could mention reversibility but still strong.
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, front-loading the action and effects, then the authorization requirement. No unnecessary 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?
The tool is simple with 2 required params and no output schema. The description covers purpose, effects, and auth requirements. It is nearly complete, but could mention whether the action is reversible or the outcome (e.g., display available for reassignment) which is partly implied.
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 parameters are fully documented. The description does not add any extra parameter details beyond what the schema provides. 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 clearly states that the tool removes a display from an organization, clearing its group assignment and grants, leaving it unassigned. This distinguishes it from siblings like delete_display (full deletion) and clear_display (likely different action).
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 required admin scope and role, providing usage prerequisites. However, it does not explicitly state when to use this tool versus alternatives (e.g., when to remove vs delete vs clear). Context is implied but not formalized with 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations (e.g., irreversible, immediate stop, admin scope requirement) while being consistent with the destructiveHint annotation.
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 key action, no wasted words. Perfectly concise for the tool's simplicity.
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 simple destructive action with one required parameter and no output schema, the description covers all necessary aspects: action, irreversibility, scope requirement, and parameter hints.
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%, but description adds useful guidance: key_id references list_api_keys, and access_token advises preferring session_request_id, improving usability.
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 action 'Permanently revokes an API key', specifies the resource, and notes irreversibility and immediate effect, distinguishing it from other API key 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 requires 'admin scope', providing clear context for when to use. It does not explicitly mention when not to use or provide alternatives, but the context is adequate.
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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| query | No | |
| results | No | |
| resourceType | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already declare readOnlyHint and destructiveHint, the description adds valuable behavioral context: 'Unauthenticated searches cover public docs only.' It also describes the output format and recommended follow-up action (read via fetch), which goes 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 three sentences, each serving a distinct purpose: scope, output/action, and usage boundary. No unnecessary words; the 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?
Given the presence of an output schema and high parameter coverage, the description covers all necessary context: what the tool does, what it returns, when to use an alternative, and authentication implications. It is complete for an information retrieval tool.
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 adds little to parameter semantics beyond what the schema provides, but it does contextualize the output (ranked URIs with snippets) which indirectly relates to the query 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 clearly states the verb ('searches'), the resource ('agentView resources'), and enumerates the specific resource categories (documentation, server status, account, displays, API catalog). It distinguishes from sibling tools by specifying the breadth of search coverage.
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: 'Skip when you already know the URI — call fetch directly.' It also implies usage context through the listed resource types, though it does not explicitly compare with siblings like search_public_apis.
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 |
Tool Definition Quality
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 |
Tool Definition Quality
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint=true), description adds that slot 'live' replaces current content, slot 'idle' stores fallback content, and mentions requiring content scope. 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?
Description is concise (5-6 sentences), front-loaded with purpose, and every sentence adds value. No redundant or unclear phrasing.
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 9 parameters and no output schema, the description covers mutual exclusivity, slot behavior, scope requirement, duration semantics, and references to sibling tools. Sufficient for an agent to use 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%, but description adds important context: when to use base64_html (when raw HTML cannot survive JSON transport), differentiation between token and access_token, slot behavior, and purpose of description 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 clearly states 'Shows HTML content on a display' and provides specific examples (menus, dashboards, etc.). It distinguishes from siblings by mentioning send_url for external pages and read_display_html for editing current content.
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 when to use alternatives: 'For external web pages use send_url; to edit current content call read_display_html first.' Also notes slot 'idle' requires admin scope and that exactly one of html or base64_html must be provided.
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 |
Tool Definition Quality
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). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes slot behavior (live replaces content, idle stores as default/fallback) and required content scope. Annotations indicate destructiveHint=true, and description adds specifics, enriching 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 with no filler. First sentence states core function, second provides slot details, prerequisites, alternative, and scope. Front-loaded and 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?
Given no output schema, description covers purpose, slot variations, prerequisites, alternatives, and required scope. It is thorough for a 7-parameter tool with clear annotations.
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, so baseline is 3. Description reiterates URL must be absolute HTTP(S) and slot behavior, but adds no significant new parameter meaning 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 clearly states it shows external web pages via full-page iframe, with examples (dashboards, websites, web apps). It distinguishes from sibling send_html by specifying when to prefer alternative.
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 (dashboards, websites, web apps), when not (use send_html if not display-ready), and recommends checking get_display first for connectivity/embedding limits.
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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| type | No | |
| label | No | |
| groupId | No | |
| readUrl | No | |
| sizeBytes | No | |
| updatedAt | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: mutable (updates in place), max 2 MB, type immutability after creation, scope requirement. Aligns with annotations (destructiveHint=true, idempotentHint=true) and adds value beyond 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?
Two sentences front-loaded with main purpose, followed by essential details. No extraneous words; each sentence serves a 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 the complexity (6 params, output schema exists), the description covers all necessary aspects: purpose, usage, key behaviors, and return values. No gaps 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?
With 100% schema description coverage, the description still adds value: e.g., explains slug stability, aggregate content structure, and return fields. Parameter semantics are fully enriched.
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 'Creates or updates a mutable JSON data slot' with a specific purpose 'the live-data backbone for store templates', distinguishing it from siblings like get_data_slot, delete_data_slot, etc. The verb-resource pair is 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?
Provides guidance on using stable slug for updates, explains type 'value' vs 'aggregate', and mentions scope requirement. However, does not explicitly state when to avoid this tool or compare to alternatives like manage_display_category.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds that admin scope is required, and describes the side effects (creating/updating or revoking a grant). 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, front-loaded with the main purpose. Every sentence adds value without redundancy. Highly 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?
For a tool with 7 parameters and no output schema, the description covers the core functionality well. It explains the main parameters and prerequisites. Return behavior is not described, but that's acceptable without 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 coverage is 100%, so baseline is 3. The description adds meaningful context for 'action' and 'access_level' parameters (e.g., 'view' means see status, 'control' means send content), which goes beyond the schema definitions.
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 grants or revokes a member's access to one display inside an organization, distinguishing between 'set' and 'remove' actions. It is specific and differentiates from sibling tools like manage_org_member or remove_display_from_org.
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 notes that the target user must be an organization member and requires admin scope. It explains when to use 'set' vs 'remove', but does not discuss alternatives or when not to use the tool. Overall clear context.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations: no automatic reply, confirmation requirement, and optional sentiment. Annotations already indicate mutation (readOnlyHint=false, destructiveHint=false), so the description enriches understanding without 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?
Two sentences, 45 words, front-loaded with the core purpose. No unnecessary words or repetition. 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?
The description covers purpose, usage, behavioral traits, and basic after-effect (no reply). No output schema is needed for this simple feedback tool. It lacks error or conflict behavior, but that is acceptable given the low 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% with detailed parameter descriptions. The description does not add new semantic information about parameters beyond 'optional sentiment' and 'confirm exact wording', which are usage guidelines rather than parameter meaning.
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 specifies the verb 'sends', the resource 'feedback, feature request or bug report', and clarifies scope 'about agentView itself (not display content)'. It clearly distinguishes from sibling tools, none of which are feedback-related.
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 guidelines: 'Confirm the exact wording with the user before sending' and 'optional sentiment'. It also notes 'no automatic reply' and 'requires content scope', but does not explicitly outline when not to use or compare with alternatives.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description reveals that the tool is a safe validator that returns simulated=true, has a 1 MB cap, and requires authentication. 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?
The description is 4 sentences, front-loaded with the core purpose. Every sentence provides essential information 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?
The description covers purpose, behavior, prerequisites, and usage context. While no output schema exists, the description implies validation results via 'simulated=true'. It is largely complete given the tool's simplicity and rich annotations.
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 the schema, though it mentions the 1 MB cap. No further elaboration on parameters is needed given the schema descriptions are sufficient.
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 defines the tool as a 'dry-run validator for generated HTML' that performs size and description checks without touching a real display. It specifically distinguishes it from siblings like send_html and broadcast_content by indicating it should be used before them.
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: 'after composing complex HTML and before send_html or broadcast_content.' It also notes that no display_id is needed and authentication is required, providing clear context for usage.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds that the URL does not change, which is behavioral context beyond annotations. Annotations already indicate destructive operation and idempotency; description does not contradict 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?
Two concise sentences, front-loaded with purpose, 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?
Given annotations and full schema coverage, the description covers purpose, constraints, and auth. No output schema, so return values are not explained, but that is acceptable.
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% coverage, so description adds little. It reiterates the constraint that at least one of name or description is required, which is not in the schema's required list. Otherwise, no new semantic information.
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 that the tool updates the name and/or description of an existing asset, clearly distinguishing it from create (upload_asset), delete (delete_asset), and read (get_asset) 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?
The description specifies that at least one of name or description must be provided, and requires authentication with content_only scope. It implicitly indicates that only these two fields can be updated, but does not explicitly contrast with sibling tools for other update scenarios.
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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| assets | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral context beyond annotations: assets are cached, base64 format required, stable URLs returned. No contradiction with annotations (readOnlyHint=false consistent with upload). Could mention overwrite behavior but not critical.
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?
Five sentences, all essential. Front-loaded with the core action and resource. No wasted words. Efficiently structured.
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 4-param tool with output schema (not shown), description covers input format, output (URLs), caching, auth scope, and usage. Lacks mention of how to retrieve or manage assets later, but that is covered by sibling 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 coverage is 100%, so baseline 3. Description adds minimal extra meaning: reiterates base64 for file data and mentions descriptions as JSON mapping. Does not significantly enhance understanding 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 clearly states 'Upload one or more files... as assets and receive stable URLs.' It specifies supported file types and use cases (HTML img src, @font-face). Differentiates from siblings like update_asset by the verb 'upload' and context.
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 usage guidance: use URLs in HTML, assets cached on displays, pass files as base64, and require authentication with content_only scope. Does not list alternatives or when not to use, but clear from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
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
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 Servers
- Alicense-qualityDmaintenanceEnables 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
- AlicenseAqualityCmaintenancePublish live web pages from AI coding agents. Instant shareable URLs for dashboards, landing pages, and reports with password protection.41MIT
- AlicenseAqualityAmaintenanceSimple and free publishing of content on the web for AI Agents27,772MIT