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.5/5 across 50 of 57 tools scored.
Each tool targets a distinct action or resource, with detailed descriptions that clearly separate overlapping areas like content delivery (broadcast_content, send_html, send_url, send_store_template_to_display) and authentication (authenticate, create_auth_session, get_auth_session). No two tools appear to do the same thing.
Most tools follow a consistent verb_noun pattern (e.g., assign_display_categories, configure_display, delete_asset), but a few outliers like 'fetch', 'search', and 'logout' use only a verb. Overall, the convention is mostly predictable.
With 57 tools, the count is high for a single MCP server. While each tool has a specific purpose, the large number may overwhelm agents and increase selection difficulty. The scope is broad, but many tools could potentially be consolidated.
The tool set covers CRUD operations for displays, assets, data slots, categories, organizations, members, licenses, and API keys, plus content delivery, search, and store integration. Minor gaps exist (e.g., no explicit tool to delete a specific content item), but overall the surface is comprehensive.
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?
Annotations already indicate destructiveHint=true and idempotentHint=true. Description adds behavioral details: mode 'replace' sets full list, add/remove mutates one category using only first entry. 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 with no waste. Front-loaded with purpose. 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?
With 5 parameters fully documented in schema and additional description, the tool is well-explained. Missing output format details, but acceptable given no 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%. Description adds extra meaning beyond schema, e.g., explaining modes behavior and that add/remove only use first category. Provides discovery references.
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 'Assigns displays to categories' which is a clear verb+resource. It explains three modes and differentiates from sibling tools '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?
Explicitly tells when to use each mode (replace, add, remove) and mentions alternative tools for discovery and creation. Provides clear context on mode selection.
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?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds crucial behavioral details: it caches the identity on the session (side effect) and validates the token. It also clarifies that the token should be passed unchanged. This adds value beyond annotations 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?
Three sentences that are concise and front-loaded. The first sentence states the core function, the second gives usage guidance, and the third provides an exclusion condition. 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 100% schema description coverage, the description completes the picture by explaining the tool's role in the authentication flow, when to use it, and how parameters relate. It covers all necessary context for an agent to decide 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?
The schema has 100% description coverage. The description goes further by explaining the relationship between jwt, token, and access_token as aliases, and gives specific usage guidance for each (e.g., 'Use this if your wrapper cannot send the token field reliably'). It also warns about not adding 'Bearer ' prefix or decoding the JWT. This significantly aids correct parameter 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 validates a JWT agent token and caches identity on the session. It uses specific verbs (validates, caches) and a specific resource (JWT agent token/identity). It also distinguishes from sibling tools like create_auth_session and get_auth_session by mentioning alternatives.
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 ('only when your client cannot send an Authorization header'), when to prefer an alternative ('prefer session_request_id-based auth via create_auth_session'), and when not needed ('Not needed after get_auth_session returned active'). This provides clear guidance for the AI agent.
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?
The annotations already indicate destructiveHint=true and readOnlyHint=false, so the description adds value by explaining behavioral traits such as locked displays being skipped with reasons and the dry_run mode to preview without sending. This context helps the agent understand side effects 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 two sentences long, front-loaded with the core purpose, and contains no redundant or extraneous information. Every sentence earns its place by conveying targeting modes, constraints, and alternatives.
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 11 parameters and no output schema, the description could provide more completeness, such as noting the return format (e.g., count of displays updated, details of failures) or error scenarios beyond locked displays. The current description covers the what but not the full behavioral output expected.
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 minimal semantic value beyond the schema, mostly restating the targeting logic. It does not provide new details on parameter format, constraints, or relationships beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose as broadcasting HTML to many displays at once, using a specific verb ('Sends') and resource ('HTML to many displays'). It also explicitly distinguishes from the sibling tool 'send_html' by stating 'For a single display use send_html.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on when to use this tool (for multiple displays) and when not to (use 'send_html' for a single display). Also mentions targeting options and the 'dry_run' feature. However, it does not discuss other alternatives or when to avoid using this tool, such as in non-broadcast scenarios.
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?
Annotations indicate non-read-only and non-destructive, and the description adds important behavioral details: permanent ownership transfer, quota consumption, and admin scope requirement, 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 that are concise and front-loaded with the key purpose and usage guidelines, with no superfluous 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?
The description provides sufficient context for the tool's action and effects (quota, permissions, alternative). Missing details on return value but acceptable given common patterns.
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% parameter description coverage, and the tool description does not add any additional information about the parameters. 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 'adopts', the resource 'unclaimed guest or pending display', and the outcome 'permanent ownership transfer, counts against quota'. It effectively distinguishes from the sibling '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?
Explicitly specifies when to use ('user explicitly wants to take over hardware that is already running') and when not to ('for first-time setup prefer pair_by_code'), providing a clear 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?
Discloses that viewers see change immediately, requires 'content_only' scope, and returns id and status ('cleared'). Adds context beyond annotations (destructiveHint, idempotentHint) 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?
Three sentences with no fluff. Main action is in the first sentence, followed by usage guidance and caveats. 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?
Given no output schema, the description explains return values (id, status). It covers auth requirements, immediate effect, and non-destructive nature vs delete. Complete for a simple clear 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 coverage is 100%, so description need not add much. The description doesn't elaborate on parameters beyond schema, but schema already provides clear descriptions. 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?
The description clearly states it removes live content and returns display to idle, specifying the verb and resource. It differentiates from delete_display, making its purpose distinct.
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 ('blank or reset a display') and when not to (use delete_display for deletion). Provides alternative tool name, giving clear guidance.
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 already note idempotentHint and destructiveHint. Description adds valuable context: partial updates ('Only the fields you pass are changed') and immediate effect for online displays. Does not discuss offline behavior or detailed reversal, but sufficient.
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 covering purpose, behavior, exclusions, and permissions. Front-loaded with field list. Could be slightly more structured (e.g., bullet list), but efficient and informative.
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, description covers purpose, usage guidelines, behavioral traits, and param semantics reasonably. Lacks explanation of what happens for offline displays or response structure (but output schema absent). Adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 59%; description adds meaning for parameters lacking schema descriptions (e.g., hardware permissions, cursor, language). It paraphrases many schema-described params, adding context. Some uncovered params (e.g., preferred_language enum values) not detailed, but overall 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 clearly states verb+resource ('Updates display settings'), explicitly lists affected fields, and distinguishes from siblings via exclusions (send_html, send_url, delete_display).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use for any display setting change' and 'Not for sending content...or deleting'. Also mentions required admin scope and partial update behavior.
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?
Description aligns with annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=true) and adds context about required role and scope. It could further explain the destructive implications of changing connectivity mode.
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 lists the updatable fields, second gives usage conditions and requirements. Every sentence is essential and well 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?
Fairly complete for a mutation tool with 6 params and no output schema. Covers parameters, role requirement, and authentication hints. Could mention possible side effects of changing connectivity.
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 value by grouping parameters into rename vs. network connectivity, and clarifying 'Only provided fields change' (idempotent partial update).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Updates' and the resource 'organization settings', listing specific fields: name, default_connectivity_mode, global_whitelist. This differentiates it from sibling tools like create_organization, get_organization, and configure_display.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'when an org admin renames the organization or declares network topology.' It does not provide when-not-to-use or alternatives, but 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.
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 key behaviors beyond annotations: raw key returned only once, secure storage, explicit consent required, admin scope requirement, granular scoping. 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?
Four sentences, front-loaded with main purpose, then security and consent, then scoping details. 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 the complexity (9 parameters, granular scoping) and presence of output schema, the description covers purpose, security, consent, and all major options 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 good descriptions. The description summarizes scoping options but doesn't add new semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Creates', the resource 'long-lived API key', and the context 'for server-to-server integration without OAuth'. It differentiates from sibling tools like revoke_api_key and list_api_keys.
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 'Requires admin scope' and mentions user consent. It implies use case versus OAuth, but doesn't explicitly list 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.
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?
Annotations (readOnlyHint=false, destructiveHint=false) are consistent with starting a session. The description adds that it returns loginUrl, sessionRequestId, pollUrl, and expiresIn, and implies a session is created on the server. No behavioral contradictions; adds sufficient context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core function. Every sentence adds value: first sentence states the core action, second sentence gives critical usage instructions. 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?
Covering input (scope, agent_identifier), process (browser login), output (loginUrl, sessionRequestId, pollUrl, expiresIn), and follow-up (polling and passing session_request_id). With output schema present, this is fully complete for an authentication init step.
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%. The description does not provide additional meaning beyond the schema for parameters. It mentions scope implicitly but does not elaborate beyond schema descriptions. Baseline score of 3 is appropriate as schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it starts a browser login and returns loginUrl and sessionRequestId. It identifies itself as the first step (STEP 0) before protected tools, distinguishing it from the sibling 'authenticate' tool and other tools in the conversation.
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.' Provides step-by-step instructions: show loginUrl, poll get_auth_session, and pass session_request_id on later calls. Names the sibling tool to use next (get_auth_session), giving clear context.
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 minimal (destructiveHint false, idempotent false), but the description adds key behaviors: new display starts offline, requires admin scope, returns id plus setup/pairing URLs. 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?
Two sentences that are front-loaded with the core purpose and state, followed by usage guidelines and outcome. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (4 params, no output schema but output described), the description covers purpose, when to use, behavioral context, requirements, and return values 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 detailed parameter descriptions. The description does not add new meaning beyond the schema, so baseline is appropriate at 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 it pre-provisions a display without hardware, using the verb 'create_display' on resource 'display'. It distinguishes from sibling 'pair_by_code' by specifying when to use each.
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 prefer pair_by_code for physical screens and to use create_display only to prepare before a screen exists or for virtual/API-only displays. Also mentions admin scope requirement.
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 show readOnlyHint=false, destructiveHint=false, idempotentHint=false. Description adds that the authenticated user becomes owner, lists return fields (orgId, name, slug, type, yourRole), and states auth requirement, which adds 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 covering purpose, usage, return info, and requirement. No wasted words, front-loaded with 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 full schema coverage and annotations, the description covers purpose, usage context, return fields, and auth requirement. No output schema, but return info is provided. Complete for this 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% with clear parameter descriptions. The description doesn't add additional parameter-level details beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Creates') and resource ('organization'), and distinguishes it from siblings like 'configure_organization' by noting the creation of a new org and making the user owner, plus the specific use case 'to set up a shared display fleet'.
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: 'Use this when the user wants to set up a shared display fleet.' Also mentions requirement 'Requires admin scope.' It doesn't explicitly contrast with siblings, but the use case is clear enough.
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?
Beyond annotations (destructiveHint=true), the description discloses that displays referencing deleted assets will show broken images, and requires authentication with content_only scope. This adds behavioral context that annotations alone do not 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 only two sentences, front-loading the key action and adding only essential context (side effects and auth). No redundant or 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 simple destructive nature and no output schema, the description covers the core action, side effects, and authentication. It does not mention return behavior or error cases, but for a delete operation with annotations, this is adequate.
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 descriptions for both parameters (asset_ids and access_token). The description does not add additional parameter semantics beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (deletes) and resource (assets), and adds side effects (broken images) and authentication scope. However, it does not distinguish from sibling delete tools like delete_display or delete_organization, but those are different resource types.
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 does not provide guidance on when to use this tool versus alternatives. It mentions authentication requirements but no when-to-use or when-not-to-use context. Sibling tools include other deletion tools, but no differentiation is offered.
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?
Annotations mark destructiveHint=true, and the description adds concrete behavioral details: permanent deletion, 404 on readUrl, irreversibility, and authentication requirement. 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?
Three concise sentences; each adds important information without redundancy. 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?
Covers the destructive action, side effect, irreversibility, parameter distinction, and authentication. Complete for a deletion tool with no 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 the schema describes all parameters. The description restates the group_id logic but adds little beyond the schema description. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it permanently deletes a data slot, distinguishes between personal and group slots via group_id, and notes the side effect of 404 on readUrl after deletion. It is specific and differentiates from sibling deletion 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 explains when to use (delete a data slot) and how to differentiate between personal and group slots. It does not explicitly state when not to use or provide alternatives, but for a deletion tool the context 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?
Adds value beyond annotations: states the action is irreversible and deletes associated content. Annotations already mark destructiveHint=true, so the description reinforces and specifies scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with front-loaded purpose. Every sentence adds necessary information: action, irreversibility, usage conditions, required scope, return 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 key aspects: action, consequences, authorization, return shape. Could mention error behavior (e.g., if display_id invalid) but complete enough given schema covers parameters.
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. Description does not add parameter-specific guidance beyond what's in schema; mentions return fields but that's not parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('permanently deletes') and the resource ('a display and all its associated content'). It distinguishes this destructive tool from other tools like remove_display_from_org by emphasizing irreversibility.
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 only when user explicitly confirms, and requires admin scope. Lacks comparison to alternative tools like delete_asset but still gives clear context for when to invoke.
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?
Discloses permanence, cascading effects (releases displays, removes members), and irreversibility beyond the annotation's destructiveHint. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each serving a purpose: overall action, ownership requirement, and irreversibility. Front-loaded with key 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?
For a destructive action, description covers what happens, who can perform it, and that it's irreversible. No output schema needed; complexity is low and fully addressed.
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 already covers both parameters with descriptions (org_id, access_token). Description adds no additional details beyond what the schema provides, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'deletes' with specific resource 'organization', and elaborates on consequences (releases displays, removes members). Distinguishes from sibling tools like delete_display or configure_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?
States 'Only the owner can delete' and 'Requires admin scope', providing clear use conditions. Does not explicitly list when not to use, but context makes it evident for non-owners or non-admins.
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 safe, idempotent, non-destructive behavior. The description adds valuable context about auth requirements per URI and the return structure, 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 concise sentences: purpose with examples, usage condition, and return fields. No fluff, 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?
For a simple 1-parameter tool with output schema, the description covers URI scheme, auth, and return types, making it fully self-contained.
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 applies. The description reinforces URI examples but does not add entirely new information 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 one agentView resource by URI, provides specific examples (e.g., agentview://public/status), and implies distinction from search (use after search) and other getters.
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 after search or with a known URI, and notes auth requirements for different URI types, but does not list alternative tools or 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_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 declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that it returns the user's account profile and requires content scope, which augments the behavioral context 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?
Two sentences, front-loaded with the main purpose. Each sentence provides essential information 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 that there is an output schema (context signal), the description does not need to detail return format. It lists key fields and mentions a prerequisite. Completely adequate for a simple read 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 has 100% description coverage for the single parameter (access_token). Description does not add any additional meaning beyond the schema. 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?
Description clearly states it returns account profile with specific fields (plan, features, limits, quota, memberships, points). Explicitly distinguishes from sibling 'list_displays' by stating 'Not for listing displays (use list_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?
Explicitly states when to use: 'Use for subscription, quota and membership questions.' Also provides a clear exclusion: 'Not for listing displays (use list_displays).' Additionally mentions a requirement: 'Requires content scope.'
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 and idempotent. The description adds behavioral context: what the artifact contains, the two resolution modes, auth differences, and that display_id takes precedence over slug when both are provided. 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 well-structured and front-loaded with the main purpose. It conveys necessary details in a few sentences without excessive verbosity. Slightly more detail than minimal, but each 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 complexity (two modes, auth, cross-reference to sibling), the description covers all relevant aspects: what it returns, how to get it, key discovery, auth requirements, and parameter precedence. An output schema exists, so return values are not needed in 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% (baseline 3). The description adds meaning by explaining that slug returns raw artifacts with placeholders and display_id returns resolved artifacts, plus the precedence rule. This goes beyond the schema's property 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, MCP-config) with two modes (raw template or resolved display). It distinguishes itself from the sibling get_store_template_details by directing users to that tool for key discovery.
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 using get_store_template_details to discover keys and explains when each mode is appropriate (template vs display). It also differentiates auth requirements per mode, though it does not provide explicit when-not-to-use scenarios.
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 readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context about requiring 'content_only scope' authentication, which goes beyond the annotations and helps the agent understand preconditions.
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. Every word adds value: first sentence states function, second sentence gives usage context and authentication requirement. No unnecessary 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?
The tool is simple with 2 parameters and an output schema. The description covers purpose, usage, and authentication. For a read-only operation, this is complete and sufficient 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% and both parameters are well-documented in the schema. The description does not add any additional meaning beyond what the schema already provides, 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 'Returns metadata for a single asset including its URL.' The verb 'returns' and resource 'metadata for a single asset' are specific, contrasting with sibling tools like list_assets that return multiple 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?
Explicitly advises using the tool to 'verify an asset still exists before referencing it in HTML.' While it does not mention when not to use or provide alternatives, the guidance is clear and contextual.
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?
Adds important behavior beyond annotations: polling mechanism, that raw token is not returned, and that protected tools work immediately after 'active'. Annotations only provide idempotentHint=true and destructiveHint=false, so description enriches transparency.
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 clear structure: first states purpose, second gives step-by-step usage. No redundant words, 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?
Given low complexity, full schema coverage, and presence of output schema, the description covers all needed context: statuses, polling, authentication effect, and token handling. Complete 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%, baseline 3. Description adds that session_request_id must be passed exactly as received from create_auth_session, which is helpful nuance beyond schema description.
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 polls a login session until user completes browser login. It specifies the verb 'polls' and resource 'login session', distinguishing it from siblings like create_auth_session.
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 provides polling interval (every 2-3 seconds while 'pending'), actions for 'active' (auto-authenticates, keep passing session_request_id), and guidance for '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 already declare readOnly, idempotent, non-destructive. Description adds that it returns JSON and metadata, includes readUrl, and requires authentication. No contradictions, but adds only moderate 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?
Three concise sentences each adding value: output type, group_id usage, readUrl and auth. 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 output schema exists and complexity is moderate, description covers key aspects: what is returned, how to use parameters, and auth. Minor omission of metadata details is acceptable with 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 description adds limited parameter semantics. It reiterates that group_id distinguishes group vs personal slots, similar to schema description. Baseline 3 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 tool returns JSON content and metadata of a data slot by slug. Distinguishes between personal and group slots via group_id parameter. Mentions readUrl, making purpose 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 clear usage context: use by slug, with optional group_id for group slots. States authentication requirement. Implicitly distinguishes from siblings like list_data_slots and set_data_slot, but no explicit alternatives.
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?
The description adds behavioral context beyond the annotations: it explains the difference between concise and detailed response formats, adds the prerequisite of content scope, and clarifies when detailed should be used. The annotations already indicate idempotent read-only behavior (readOnlyHint=true, idempotentHint=true), and the 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?
The description is two sentences, front-loaded with the main purpose, then details on the response format variants, followed by a prerequisite note. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters (all described in schema), annotations present, and an output schema existing, the description is complete. It covers the core purpose, usage context (when to use detailed), and a dependency (list_displays). The output schema handles return values, so no further explanation is 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 description coverage is 100%, but the description adds value by explaining the purpose of the detailed response_format ('adds browser/runtime facts, resolved connectivity mode with allowed domains, and full content state') and advising to use detailed before generating complex HTML. It also reinforces the dependency on list_displays for the display_id 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 what the tool does: 'Returns one display's state: status, lock, URLs, settings, language and current content summary.' It distinguishes between concise and detailed response formats and references the sibling tool list_displays for ID discovery. The verb 'returns' is specific and the resource is clearly 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 provides clear usage guidance: 'Use list_displays first to discover IDs' and 'use detailed before generating complex HTML for the display.' It also notes a prerequisite scope requirement ('Requires content scope'). While it lacks an explicit when-not-to-use, the context is sufficient for correct invocation.
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?
Description adds behavioral context beyond annotations: link lifetime depends on privacy mode, and requires content scope. This is useful supplementary information for the agent.
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 bold directive, each sentence adds unique value: one for purpose, one for behavior, and a usage hint. 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 tool purpose, usage triggers, lifetime behavior, and prerequisites. With an output schema present, the description is sufficiently complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add significant parameter-level details beyond what the schema provides, but the schema itself is complete.
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 short-lived signed link for previewing current display content, with specific use cases like 'preview' and 'zeig mir das Display'. It distinguishes from siblings by emphasizing the live preview aspect.
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 'ALWAYS call this when the user wants to SEE their display or screen content', providing a clear usage directive. Mentions requirement of content scope, but does not discuss exclusions or alternatives.
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 readOnly, idempotent, non-destructive. The description adds value by requiring 'content_only scope' and summarizing the return data, providing 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 efficiently convey purpose and usage with no wasted words. Front-loaded with the key action and resource.
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 optional parameter and an output schema, the description provides sufficient context: purpose, usage guidance, and scope requirement.
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% for the single optional parameter, so the description adds no additional meaning. Baseline of 3 is appropriate as schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('returns') and resource ('complete license allocation overview'), listing specific components. It distinguishes from the sibling 'manage_licenses' by implying a read-only capacity check.
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 use this tool to understand available capacity before allocating licenses, giving clear usage context. Lacks explicit when-not guidance but sufficient for sibling differentiation.
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?
Annotations already indicate idempotent, read-only, non-destructive behavior. The description adds detail on what each response format returns, which aligns with annotations and provides useful context 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?
The description is two sentences, front-loaded with key output details, and includes usage guidance and requirements. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description sufficiently covers inputs, output behavior, and prerequisites. For a read-only tool with moderate complexity, it is complete and leaves no 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 coverage is 100%, but the description adds value by explaining the response_format parameter's effect (concise vs detailed) and the source of org_id, enhancing understanding 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 verb 'returns' and the resource 'organization details', listing specific fields returned and distinguishing between response formats. It effectively differentiates from sibling tools like list_organizations.
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 to use after list_organizations and notes the requirement for content scope and membership, providing clear usage context and prerequisites.
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 declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds specific return fields (status, server name, version, statusUrl, instructionsUrl) and emphasizes no authentication needed, enriching behavioral context beyond annotations 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, both essential: first states what it does, second explains when to use and what it returns. No redundant words, perfectly 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?
Despite lacking an output schema, the description fully enumerates return values (status, server name, version, statusUrl, instructionsUrl). For a simple read-only endpoint with no parameters, this is complete and informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100% trivially. The description compensates by explaining what the tool returns, which is adequate for a parameterless tool.
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 tool returns 'server's public readiness status, version string and discovery URLs,' clearly stating the verb and resource. It distinguishes from siblings like authenticate by noting 'No authentication required,' making its unique purpose obvious.
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 this before authenticating to verify the server is reachable and to obtain entry-point URLs,' providing clear context for when to use. It lacks explicit when-not guidance, but the context implies it's only for pre-authentication public checks.
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?
Annotations already indicate readOnly, idempotent, and non-destructive. The description adds behavioral context: quota is shared between data slots and uploaded assets, suppressed=true for narrow-scoped keys, and the 'requires content scope' prerequisite. 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 well-structured at about 80 words, with specific advice and contextual notes. Each sentence adds value; 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?
Given the tool has an output schema (so return values not needed in description), the description covers return data, scope, usage before writes, and access token handling. It is mostly complete, though it does not address potential limits on the slug scan results.
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?
All 4 parameters have schema descriptions (100% coverage), so baseline is 3. The description adds minimal extra context for the 'slug' parameter (checking display references), but does not enhance understanding of access_token or session_request_id 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?
The description clearly states the tool returns storage pool snapshot (used, limit, remaining bytes) for personal scope or a group. It distinguishes the tool by explaining its use before certain writes, setting it apart from sibling 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 recommends using the tool before large set_data_slot or upload_asset writes and before delete_data_slot to check display references. It also mentions behavior with narrow-scoped API keys, providing good usage guidance though no explicit alternative to other tools.
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, and destructiveHint, but the description adds valuable behavioral traits beyond annotations: 'No authentication required', explains how placeholders resolve ({{asset:NAME}} to public URLs, {{slot:KEY.prop}} stay intact), and describes windowing behavior with max_bytes and offset, including that the result reports totalBytes and truncated. 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: first covers purpose and core behavior, second covers windowing and gives an alternative tool. Every sentence adds value; 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 4 parameters (1 required), 100% schema coverage, and an output schema (mentioned as reporting totalBytes and truncated), the description fully covers the necessary context. It explains the tool's output behavior, windowing mechanism, and alternative usage, leaving no critical gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, baseline is 3. The description adds meaning beyond the schema by linking slug to search_store_templates, explaining that version pins a published version, and that offset and max_bytes window the HTML. This extra context justifies a 4.
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 'Returns', the resource 'raw display HTML of a published store template plus its slot definitions and allowed external origins', and the purpose 'for editing or embedding the template yourself'. It also distinguishes itself from the sibling 'send_store_template_to_display' by explicitly naming the alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (for editing/embedding) and when not to ('To push a template to a display directly, use send_store_template_to_display instead'), providing a clear alternative. It also explains the context for using parameters like max_bytes and offset for 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 declare readOnlyHint, idempotentHint, and destructiveHint, so the safe read nature is already obvious. The description adds valuable context: no authentication required, and the specific behavior regarding agentArtifacts (non-empty triggers further action). This adds 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 a single well-structured sentence that front-loads the main purpose, then lists details. It is efficient but slightly dense; could be split for readability. Still, 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 output schema exists, return values are covered. The description covers the tool's inputs, behavior, and follow-up actions (get_agent_artifact). It provides a complete picture 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 the description adds meaning: slug is from search_store_templates, provides example values, and notes language defaults to 'en'. This helps correct selection 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 returns 'full details of one store template' with specific fields (title, description, markdown, etc.). It differentiates from siblings like search_store_templates and get_agent_artifact, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: after search_store_templates and before recommending or installing. It also directs the agent to fetch bodies via get_agent_artifact when agentArtifacts is non-empty, providing clear alternatives and context.
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 indicate readOnly, idempotent, non-destructive. Description adds that it requires content scope. 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?
Three efficient sentences, front-loaded with purpose, 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 output schema exists, description covers inputs, prerequisites (scope), and edge case (empty list). Complete for intended use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 4 parameters with descriptions. Description adds context for slug (source) and language (UI labels), but the schema already explains these adequately.
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 displays where a template can be installed along with required data slots. It distinguishes from siblings like search_store_templates and 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 states to call before send_store_template_to_display, explains empty displays list means need to set up display via pair_by_code, and notes 'Requires content scope'.
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 significant behavioral context beyond annotations: it notes that only metadata (prefix, name, scope, dates) is returned and raw keys are never exposed. It also confirms the admin scope requirement. There is no contradiction with annotations, which already mark the tool as read-only and non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, front-loaded with the main action, and no wasted words. Every sentence adds necessary 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 the tool's simplicity, an output schema exists, and the description already covers the return value (key metadata). The prerequisite (admin scope) is stated. No further information is needed for a complete understanding.
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 one optional parameter (access_token) with full description coverage (100%). The description does not add any additional semantics beyond the schema, so it meets the baseline with no extra value.
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 'Lists' and the resource 'API keys for the current user'. It distinguishes from siblings like create_api_key and revoke_api_key by specifying the action and scope. Additionally, it clarifies that raw keys are never returned, which is a key distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (listing keys for the current user) and includes a prerequisite ('Requires admin scope'). However, it does not explicitly state when not to use or compare to alternative tools like create or revoke. The context is clear enough for most agents.
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 already declare readOnlyHint and idempotentHint. Description adds value by explaining the output includes public URLs for display HTML, filtering options, and response_format variants. 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?
Five sentences covering purpose, filtering, usage tip, response format, and requirement. No redundant words; each sentence adds value. Front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description doesn't need to detail return values. It covers purpose, filters, duplicate check, response format variations, and authentication requirement. Could mention pagination or default ordering, but the schema's limit parameter covers pagination. Adequate for the 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%, so baseline 3. Description adds meaningful context: explains that filtering can be done by type, search, or group; describes the difference between concise and detailed responses; and implies the session_request_id parameter for authentication. This goes beyond the schema's bare 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?
Description clearly states the verb (Lists) and resource (user's uploaded assets) and specifies that it provides public URLs for display HTML. It distinguishes from sibling tools like upload_asset and delete_asset by focusing on listing existing 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?
Provides explicit guidance to 'Check before upload_asset to avoid duplicates' and notes that it 'Requires content scope.' While it doesn't explicitly list when to avoid or compare to alternatives, the context is sufficient for typical use cases.
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?
Beyond annotations (readOnlyHint, etc.), description adds that only metadata is returned, authentication is required, and group_id filters shared vs personal slots. 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?
Three targeted sentences: purpose, return type, and usage hint. No wasted words, front-loaded with the main 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 annotations and output schema exist, the description covers purpose, authentication, return type, and key usage (readUrl). Pagination details are in schema. Complete for a list 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?
All 5 parameters have schema descriptions (100% coverage). The description adds no additional parameter-specific meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists data slots with optional filtering, returns metadata only (no jsonContent), and distinguishes from sibling list tools by specifying the resource and the metadata-only return type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use (list with filters) and notes authentication requirement. Includes practical guidance on using readUrl. No explicit when-not-to-use or alternatives, but sibling list tools are distinct.
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 indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds authentication requirements and output details (stable IDs, paths, assignment counts), 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 sentences, no filler. Purpose is front-loaded, usage guidance follows. 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?
Output schema exists, so return values are covered. Description provides purpose, usage context, authentication requirements, and a hint of output structure. Complete for a read-only list 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 parameters are fully documented in the schema. Description adds no additional parameter insight, but baseline 3 is appropriate as it doesn't contradict or omit.
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 'Lists the authenticated user's personal display categories with stable IDs, paths and assignment counts.' Verb and resource are specific, and it distinguishes from sibling tools like assign_display_categories or list_store_categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this to discover existing categories before assigning or replacing categories on a display,' providing clear context. Does not specify when not to use, but sibling differentiation is implied.
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 already declare readOnlyHint=true, so safety is clear. Description adds behavioral context: requires content scope and lists returned fields (id, name, online status, lock state, device class). 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?
Every sentence adds value. Front-loaded with main purpose, then progressively details usage, parameter options, and alternatives. No redundancy or 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 purpose, usage, parameters, required scope, output fields, and alternatives. Output schema exists, so return format is documented. No gaps given tool's simplicity and 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%, but description adds meaningful context: org_id notes member access required, response_format explains concise vs detailed, session_request_id ties to create_auth_session. Enriches parameter 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?
States it lists displays with specific fields, distinguishes itself as the starting point to discover display IDs before using get_display, send_html, or send_store_template_to_display, and contrasts with get_display_preview_url.
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 (as starting point for ID discovery), mentions optional org_id for organization-specific listing, and directs to alternative get_display_preview_url for current display view. Provides clear context and exclusions.
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 read-only and non-destructive. Description adds important behavioral details: requires authentication with 'content_only' scope and specifies returned fields. 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?
Two sentences, front-loaded with purpose, no redundant or filler content. 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 (one optional parameter, output schema exists), the description fully covers purpose, usage context, and authentication requirement. Nothing missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter (access_token) already described in schema. Description does not add additional parameter meaning beyond what schema provides, 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?
Description clearly states verb 'Returns' and specific resource 'all organizations the authenticated user belongs to with their role, display count, member count and allocated slots'. It effectively distinguishes from sibling tools like create_organization or get_organization by focusing on listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this to answer questions about the user's organizations, how many displays an organization has, or team membership', providing direct guidance on when to invoke. Could be improved by noting when not to use (e.g., for a specific organization detail use get_organization), but overall clear.
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 and idempotentHint, so the bar is lower. The description adds value by specifying that the tool returns published categories only, and details the return structure (count, language, categories array with fields). It also states 'No authentication required,' which is extra 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?
Four sentences, each adding essential information: what it lists, example categories, usage guidance with sibling tool, and return structure. 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 a simple one-parameter tool with an output schema and sibling tools list, the description fully covers purpose, usage, return format, and security requirements. It leaves no gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one optional parameter. The description adds the default value 'en' for language, which is not in the schema, and clarifies its purpose as 'Preferred content language.' This goes beyond the schema's enum description.
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 lists published agentView store categories with localized details, and explicitly names example categories like Gastronomie, Wartezimmer. It distinguishes itself from siblings like search_store_templates by explaining how it narrows subsequent calls.
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 this to narrow a subsequent search_store_templates call when the user asks for templates for a waiting room or similar.' Also notes no authentication required, which helps the agent decide on prerequisites.
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?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds critical context: the tool does not revoke the underlying token but only clears the session cache. This goes beyond annotations and helps the agent understand the actual effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded with the core action. Every sentence adds value—no redundant or unnecessary 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 no parameters, no output schema, and clear annotations, the description fully explains the tool's purpose, effect, and usage context. It is complete for the agent to decide when and how to use it.
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?
There are no parameters, so the schema documentation coverage is 100% by default. The description does not need to add parameter info. According to rules, 0 params baseline is 4.
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 clears cached login and explicitly distinguishes it from token revocation. It specifies the verb 'clears' and the resource 'cached login', making it distinct from any sibling that might handle authentication more broadly.
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 when the user wants to sign out or switch accounts', providing clear guidance on when to invoke it. However, it does not explicitly mention when not to use it or suggest alternatives, though 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.
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 already indicate destructiveHint=true. Description adds that assignments and grants stay intact during rename, providing 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?
Description is concise, front-loaded with main purpose, then action details, then sibling references. 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?
Covers all required aspects: actions, parameters, IDs discovery via sibling, and assignment. Lacks information about error cases or return format, but 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?
Despite 100% schema coverage, description adds action-specific grouping, explaining which parameters apply to which action (create vs rename) and the purpose of optional parent_category_id for subcategories.
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 it creates or renames display categories, distinguishing from sibling tools like list_display_categories and assign_display_categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states when to use each action, the required parameters per action, and references sibling tools for related operations (discovering IDs, assigning).
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?
The description adds behavioral context beyond annotations: 'allocate' with 0 deallocates all, 'assign' binds a free license, 'unassign' releases back to pool, and requires admin scope. No contradiction with annotations (destructiveHint=true).
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-load the core actions and immediately provide actionable details. 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?
For a tool with three actions and six parameters, the description together with the comprehensive schema covers usage, permissions, and parameter- action relationships. No output schema exists, but return behavior is implicit.
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 value by associating parameters with specific actions (org_id for allocate, display_id for assign/unassign) and reinforcing the 'deallocates all' behavior for 0 licenses.
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 and enumerates three distinct actions (allocate, assign, unassign). It differentiates from sibling tools by mentioning get_license_info for availability checks.
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 checking availability first with get_license_info and notes the requirement for admin scope. While it doesn't explicitly exclude use cases or mention alternatives beyond get_license_info, the guidance 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.
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?
The description details the actions and roles, and mentions the requirement for admin scope. It aligns with annotations (destructiveHint=true) by indicating removal is destructive. No contradiction, and it adds 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?
The description is concise with two sentences. The first sentence covers the core actions and roles, and the second adds the authentication requirement. No fluff; every sentence provides 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?
Despite no output schema, the description sufficiently covers the tool's purpose, actions, roles, and auth requirements. It lacks return value details, but for a mutation tool, the focus on inputs is adequate. Could mention success/failure signals.
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 meaning by explaining each action's purpose, role values, and parameter context (e.g., email for invite, target_user_id for set_role/remove). This enhances understanding 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 that the tool manages organization membership with three specific actions (invite, set_role, remove). It distinguishes from sibling tools like configure_organization or create_organization by focusing on membership 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 admin scope is required, providing clear usage context. It implicitly guides when to use each action via the action enumeration, but lacks explicit when-not-to-use or alternatives compared to 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 adds behavioral context beyond the destructiveHint annotation: it states that the tool creates and pairs in one step, and that rebinding keeps name, settings, and content. This provides useful transparency about the tool's effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences long, front-loads the main action, then covers the rebind use case, and ends with a requirement. Every sentence is essential and 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?
Given the tool has four parameters and no output schema, the description adequately covers both primary and secondary use cases, the code source, and the required scope. Minor gap: no mention of error handling or failure scenarios.
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 description still adds value by explaining when to include target_display_id (rebind) and that profile_name is required for new pairing. This guidance goes beyond 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 pairs a physical screen using a 6-character code, and distinguishes between new pairing and rebinding an existing display profile. It uses specific verbs and resources, effectively differentiating from siblings like claim_display or create_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?
The description explicitly recommends this as the first-time setup and explains the rebind scenario with target_display_id. It mentions the required admin scope, but does not explicitly state when not to use this tool versus alternatives like claim_display.
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?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds significant behavioral detail beyond this, including windowing/pagination via max_bytes and offset, reporting of totalBytes and truncated in the response, and the distinction between live and idle content. 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?
The description is three sentences, each fulfilling a purpose: main action, content_type distinction, windowing explanation, and exclusion of visual previews. It is front-loaded with the primary action. Minor redundancy in mentioning windowing twice, but overall efficient and clear.
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 (windowing, content types, 6 parameters) and the presence of an output schema (per context signals), the description covers all necessary aspects: what the tool does, how to handle large documents, when to use alternatives, and required content scope. It provides complete guidance for an AI agent to select and invoke 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?
Input schema coverage is 100%, so baseline is 3. The description adds value by explaining the effect of content_type ('idle' reads default content) and the pagination mechanism ('max_bytes and offset page through the source; the result reports totalBytes and truncated'). It also emphasizes the 8-character display_id format. This goes 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 starts with a specific verb-resource pair ('Reads the raw HTML source currently shown on a display') and clearly distinguishes from sibling tool get_display_preview_url by stating it is not for visual previews. It also differentiates between content types (live vs idle) and ties the tool to send_html for editing.
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 versus alternatives: 'Not for visual previews (use get_display_preview_url)'. It also explains the purpose of the 'idle' content type for reading default/fallback content and notes that it 'Requires content scope', giving clear context for invocation.
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?
The description adds behavioral details beyond the destructiveHint annotation, such as clearing group assignments and grants, and leaving the display unassigned. It also specifies required scope and role. 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?
The description is two sentences, front-loaded with the primary action and effects, followed by the requirement. 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 the tool's simplicity, the description covers the main effects and requirements. However, it does not mention return value or idempotency (annotations indicate non-idempotent). Still sufficient for a removal 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 schema already documents the parameters. The description does not add parameter-level semantics beyond the schema but provides context on the consequences of providing the IDs. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (removes display from organization) and the specific effects (clearing group assignment and all display grants, making display unassigned). It distinguishes from sibling tools like delete_display, which would permanently delete the 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?
The description provides a prerequisite (admin scope and admin/owner role) but does not explicitly state when to use this tool versus alternatives like delete_display or set_display_grant. The context is clear but lacks exclusions or explicit guidance.
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?
Annotations already mark destructiveHint=true, but the description adds important context: irreversibility, immediate cessation of key, and required admin 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?
The description is extremely concise with two sentences, all essential information front-loaded. No extraneous content.
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 adequately covers purpose, behavior, and authorization. Could be improved by noting that revocation does not affect active sessions using the token, 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 description coverage is 100% and already provides clear parameter descriptions (key_id from list_api_keys, access_token optional). The tool description does not add further semantic value beyond what the schema offers.
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 'revoke' and the resource 'API key', and explicitly notes irreversibility and immediate effect. This distinguishes it from sibling tools like 'create_api_key' and 'list_api_keys'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for revoking keys but does not explicitly state when to use this tool versus alternatives, nor does it provide when-not-to-use guidance or mention alternative tools like 'disable_api_key' if it existed.
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?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds behavioral context beyond annotations by stating the return format (ranked URIs with snippets) and the unauthenticated access limitation, which is valuable for agent decision-making.
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 two sentences that front-load the action and scope. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to detail return values. It sufficiently covers usage contexts, limitations (unauthenticated), and provides completeness for a search 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?
The input schema has 100% description coverage, so the description does not add new meaning to parameters. It provides a baseline score of 3, as the schema already documents the parameters well.
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 searches agentView resources by keyword and lists the specific categories (documentation, server status, account, displays, API catalog). It distinguishes from sibling tools like 'fetch' by explicitly advising to call fetch directly when the URI is already known.
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 usage guidelines: 'Unauthenticated searches cover public docs only.' and 'Skip when you already know the URI — call fetch directly.' This helps the agent decide when 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.
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?
Annotations indicate read-only, idempotent, non-destructive. Description adds key details: no authentication required, returns docs links, CORS status, fetch() hints, and special behavior with list_categories. 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?
Three concise sentences, each serving a distinct purpose: scope/use-case, usage guideline, return info. No fluff, front-loaded with key 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 output schema exists, description covers return content and special parameter behavior. All parameters documented in schema and description, making it fully adequate.
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 5 parameters with descriptions. Description adds value with examples (e.g., 'weather forecast') and explains the list_categories toggle. Enriches semantics 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 the tool searches a curated catalog of 600+ free public APIs for embedding live data in HTML. It distinguishes from siblings like 'search_store_templates' and generic 'search' by specifying the scope (free, no-key, HTTPS APIs) and use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use when generating HTML that needs live internet data.' Provides clear context. Could mention alternatives (e.g., 'fetch' for direct data retrieval) but is sufficient.
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 mark it as read-only and idempotent. Description adds that results render as a gallery widget and that no authentication is needed, which are useful behavioral details 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 purpose: definition, usage guidance, follow-up. No redundant or vague phrasing. Front-loaded with action and context.
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 6 optional parameters, an output schema, and annotations, the description provides all needed context: when to use, what the result is, how to paginate, what to do next, and auth status. No 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 covers all 6 parameters with descriptions. The tool description only summarizes filtering and pagination, adding no new info. Since schema coverage is 100%, baseline is 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?
Description clearly states it searches a template store for pre-built designs, with examples. It distinguishes from siblings like 'search' and 'search_public_apis' by specifying the use case (polished designs vs generated HTML) and mentions a follow-up tool.
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 (want pre-built design), what the result looks like (gallery widget), how to filter/paginate, and what to do next (get_store_template_details). Also notes no authentication required.
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?
Annotations indicate destructiveHint=true, and the description confirms that slot 'live' replaces current content and slot 'idle' stores fallback content, disclosing the destructive nature. It also mentions the requirement of content scope, adding 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?
The description is concise yet comprehensive, with every sentence serving a purpose. It is front-loaded with the general purpose and then provides specific details (slot behavior, mutual exclusivity, alternatives). No fluff or 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, usage, parameters, and behavioral traits well. However, it does not explain the return value or confirmation of success, which could be helpful given the absence of an output schema. Still, the tool's action is straightforward (send HTML), so the gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant value: explains the difference between 'live' and 'idle' slots, emphasizes the mutual exclusivity of html and base64_html, clarifies that token is display-specific (not OAuth), and stresses always providing a description. This goes beyond the schema to guide correct parameter 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 specifies the tool shows HTML content on a display, listing concrete examples like menus, dashboards, welcome pages, and schedules. It differentiates from siblings by mentioning send_url for external web pages and read_display_html for editing, making the purpose distinct.
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 is provided on when to use each slot ('live' vs 'idle'), including admin scope for idle. It advises always passing a description, notes mutual exclusivity of html and base64_html, and directs users to send_url for external content and read_display_html for editing. References to a prompt and resource for polished results further aid appropriate use.
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?
The description fully discloses the tool's behavior: it installs, materializes HTML, reuses prior installs, publishes within seconds, and requires specific access. It also explains idempotency and error handling for data slots, aligning with annotations (destructiveHint=true, idempotentHint=true). 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 a single, well-structured paragraph that front-loads the core action, then efficiently covers prerequisites, customization, and idempotency. Every sentence serves a purpose with no redundancy or 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's complexity (6 params, nested objects, output schema exists), the description covers all essential aspects: what it does, prerequisites, parameter semantics, idempotency, limits, and error handling. The presence of an output schema obviates the need to explain return values, and the description remains fully self-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?
Despite 100% schema coverage, the description significantly enriches each parameter with examples, constraints, and usage context—e.g., slug must be published, display_id format, idempotency_key retry logic and recommended UUID, data_slot_overrides limits and error behavior. This goes well beyond 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 that the tool installs a published store template onto a display, materializing HTML and auto-creating data slots. It distinguishes itself from sibling tools by referencing get_store_template_install_options for preparation, making its purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to call get_store_template_install_options first for valid targets and slots, and notes required permissions (content scope and control access). It provides clear context for when and how to use the tool, with no ambiguity.
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?
Discloses that the tool replaces current content ('live' slot) and mentions the absolute HTTPS requirement and content scope. Annotations already indicate destructiveHint=true, so description adds value with slot behavior and URL constraints.
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 four sentences, front-loaded with the primary action. Each sentence adds worthwhile information, though it could be slightly more compact. 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?
Covers the main behavior and slot distinctions. Does not discuss error handling, rate limits, or return values, but with no output schema and full parameter descriptions, it is adequate 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 covers all parameters with descriptions (100% coverage). Description does not add meaningful details beyond what the schema already provides; it only summarizes the slot and URL constraints briefly.
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 an external web page on a display via full-page iframe. It distinguishes itself from send_html by noting it is for display-ready pages, and from other sibling tools implicitly.
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 recommends using send_html when the page is not display-ready, and suggests checking get_display first for connectivity/embedding limits. Also distinguishes between 'live' and 'idle' slots with scope implications.
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?
Adds beyond annotations by noting type immutability, 2 MB limit, and scope requirement. Annotations already mark idempotentHint and destructiveHint, but description enriches with behavioral traits like 'updates in place' and 'requires content scope'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences effectively pack key information. Could benefit from slight restructuring (e.g., bullet points), but content is efficient and no superfluous 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?
Covers creation vs update, types, scope, and return values. Output schema exists, so return values are documented. Missing error handling details, but tool complexity is well addressed.
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 adds some context (e.g., slug stability, aggregate definition details) but does not significantly exceed schema explanations.
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 or updates a mutable JSON data slot for store templates, using specific verbs and identifying the resource. It distinguishes from siblings like get_data_slot and delete_data_slot by focusing on write operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context for when to use (live-data backbone for store templates) and mentions stable slug for idempotent updates. Requires content scope, but does not explicitly state when not to use or list alternatives, though sibling differentiation is clear.
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 and idempotentHint=true. The description adds context: action 'set' creates/updates, action 'remove' revokes, and access_level options. It also notes the admin scope requirement, which is useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey the tool's purpose, actions, access levels, and prerequisites. No unnecessary words. Front-loaded with the main 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?
With 7 parameters and no output schema, the description covers the core behavior and prerequisites. It doesn't detail error cases or return values, but that's acceptable given the tool's simplicity. The description is complete enough 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 descriptions cover all 7 parameters (100% coverage). The description adds value by clarifying the default action ('set'), that access_level is only needed when action is 'set', and that target_user must be an org member. This supplements the schema's enum 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 grants or revokes a member's access to one display. It distinguishes from siblings like manage_org_member by focusing on display-specific access. Specific verb+resource: 'grants or revokes a member's access to one display inside an 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 explains when to use the tool (for granting or revoking display access) and provides context: target user must be an organization member and requires admin scope. It does not explicitly mention when not to use it, but the purpose is well-defined.
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?
Discloses that feedback is sent for later review, no automatic reply, and requires content scope. Annotations already indicate non-read-only, so description adds 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?
Three sentences, front-loaded with main action, every sentence essential. 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 purpose, usage steps, requirement (content scope), and outcome (no automatic reply). Adequate for a single-action feedback tool with no 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%, but description adds critical guidance: 'Pass what the user actually said; do not paraphrase'. This adds semantic value 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 sends user feedback, feature requests, or bug reports about agentView itself, using specific verbs and distinguishing from display content. It also instructs to confirm wording with the user, adding 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?
Explicitly states to confirm wording before sending, notes optional sentiment, mentions no automatic reply, and requires content scope. This provides clear when-to-use and context.
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?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds important behavioral details: capped at 1 MB, requires authentication, response carries simulated=true. This adds 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?
Three sentences, no fluff, front-loaded with purpose. Every sentence adds value: purpose, usage, constraints. Highly 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 5 parameters with 100% schema coverage, no output schema, and annotations present, the description covers purpose, usage context, size limit, auth requirements, and response behavior. Complete for 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?
The input schema has 100% coverage with descriptions for all 5 parameters. The description does not add significant new meaning to the parameters beyond what's in the schema, but it does mention 'no display_id needed' (though display_id is not a parameter). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a dry-run validator for HTML, specifying it runs size and description checks without touching a real display. It distinguishes itself from sibling tools send_html and broadcast_content by stating 'use before send_html or broadcast_content' and 'no display_id needed'.
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 composing complex HTML and before send_html or broadcast_content.' Also notes no display_id is needed. While it doesn't explicitly state when not to use, the context from sibling tools makes it clear. Could be 5 with a 'when not to use' clause.
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?
Annotations indicate destructiveHint=true and readOnlyHint=false, so the description's statement that 'The URL does not change' adds valuable behavioral context beyond annotations. It also mentions authentication requirements. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a purpose: stating the action, clarifying an important side effect (URL unchanged), and providing usage constraints (at least one field required, authentication scope). No redundant or extraneous 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?
The description covers input constraints, side effects, and authentication needs. There is no output schema, but the return value is not critical for this mutation tool. Could be slightly more complete by mentioning confirmation behavior, but it is adequate.
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 each parameter. The description mentions that name and description are the updatable fields but does not add new semantics or constraints 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 it updates the name and/or description of an existing asset, distinguishing it from sibling tools like delete_asset (delete), upload_asset (create), and get_asset (read). The verb 'Updates' combined with the specific resource 'asset' and fields 'name and/or description' provides a specific and unambiguous purpose.
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 at least one of name or description to be provided, which is a key usage constraint. It also specifies authentication scope (content_only). While it doesn't explicitly state when not to use this tool or list alternatives, the context from sibling tools makes the usage clear.
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?
The description adds behavioral context beyond annotations: files must be base64-encoded, assets are cached, and authentication scope is required. However, it does not disclose details like whether uploads overwrite existing assets, error handling, or the output structure (though an output schema exists but is not described). Annotations indicate readOnlyHint=false (write operation) and destructiveHint=false, but the description does not elaborate on these traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three short sentences, each serving a distinct purpose (what it does, how to use results, requirement). No filler words or irrelevant 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?
For a complex tool that uploads files with optional grouping and authentication, the description covers the core use case and constraints. It mentions caches and auth scope. However, it omits details about the optional group_id parameter and does not mention file size limits or number of items. The existence of an output schema reduces the need to describe return values, so completeness is fairly high.
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% description coverage, so each parameter is already documented. The description repeats the base64 encoding requirement but adds no new meaning beyond the schema. Given high schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: uploading files as assets to receive stable URLs. It specifies supported file types (images, fonts, CSS, video) and how to use the URLs in HTML, fully distinguishing it from siblings like update_asset or delete_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: upload assets for use in HTML/email with specific examples. It mentions caching behavior and required authentication scope. However, it does not explicitly state when not to use this tool (e.g., when to use update_asset instead) or mention alternative sibling tools.
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!