Skip to main content
Glama

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.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 50 of 57 tools scored.

Server CoherenceA
Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count2/5

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.

Completeness4/5

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 tools
assign_display_categoriesAssign Display CategoriesA
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoreplace (default) sets the exact list; add/remove mutates one category across displays.
display_idsYesDisplay profile IDs to update.
access_tokenNoOptional bearer token; prefer session_request_id.
category_idsYesCategory IDs; for mode 'add'/'remove' only the first entry is used.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 SessionA
Idempotent
Inspect

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
jwtNoAlias for token. Use this if your wrapper cannot send the 'token' field reliably.
tokenNoThe 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_tokenNoAlias for token. Use this if your wrapper follows OAuth naming conventions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
emailNo
scopeNo
userIdNo
isAgentNo
expiresAtNo
sessionBoundNo
authenticatedNo
transportAuthRequiredNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 ContentA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNotrue targets all accessible displays.
htmlNoComplete HTML document. Mutually exclusive with base64_html.
dry_runNoPreview: return the matched displays without sending. Works with all targeting modes.
durationNoSeconds the content stays; 0 = indefinite.
base64_htmlNoBase64-encoded HTML. Mutually exclusive with html.
descriptionNoShort summary of the content being sent (required when sending).
display_idsNoDisplay profile IDs to target.
access_tokenNoOptional bearer token; prefer session_request_id.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
include_descendantsNoWith include_category_ids: also include subcategories.
include_category_idsNoCategory IDs: broadcast to displays assigned to these categories.
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
display_idYesThe short ID of the pending, guest or demo display to claim. This is the hardware or temporary ID shown on the device.
access_tokenNoOptional bearer token; prefer session_request_id.
profile_nameYesFriendly name to assign to the newly claimed display. Non-empty string. Example: 'Reception Kiosk'.
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 DisplayA
DestructiveIdempotent
Inspect

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').

ParametersJSON Schema
NameRequiredDescriptionDefault
display_idYesThe 8-character alphanumeric display profile ID to clear, e.g. 'ABCD1234'.
access_tokenNoOptional bearer token; prefer session_request_id.
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 DisplayA
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew display name (rename).
lockedNotrue blocks content changes until unlocked; false unlocks.
originsNoEmbed-origin allowlist for Public displays; [] allows all origins.
whitelistNoDomain whitelist for whitelist-only mode.
display_idYes8-character display profile ID, e.g. 'ABCD1234'.
access_tokenNoOptional bearer token; prefer session_request_id.
allow_cameraNo
privacy_modeNoPrivate caps share-link TTL at 1 hour; Public (signage mode) allows 24 hours.
allow_microphoneNo
strict_whitelistNotrue: the display whitelist replaces the org whitelist instead of extending it.
allow_geolocationNo
connectivity_modeNoPer-display network mode override.
show_mouse_cursorNo
preferred_languageNo
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
show_badge_overlayNo
watermark_positionNo
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 OrganizationA
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew organization name (rename).
org_idYesOrganization ID from list_organizations.
access_tokenNoOptional bearer token; prefer session_request_id.
global_whitelistNoDomain whitelist applied org-wide in whitelist-only mode.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
default_connectivity_modeNoDefault connectivity for all org displays.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable name for the key. Example: 'Home Assistant', 'CI Pipeline'.
scopeNoScope for the key: 'content_only' (send content, list displays) or 'admin' (full management).content_only
org_idNoOptional organization ID. If set, the key acts on behalf of this organization.
permissionsNoGranular 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_tokenNoOptional bearer token; prefer session_request_id.
capabilitiesNoOptional 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_daysNoOptional expiration in days. If not set, the key never expires.
allowed_slot_slugsNoOptional 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_idsNoOptional 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

ParametersJSON Schema
NameRequiredDescription
keyNo
nameNo
keyIdNo
orgIdNo
scopeNo
warningNo
createdAtNo
expiresAtNo
permissionsNo
capabilitiesNo
allowedSlotSlugsNo
allowedDisplayIdsNo
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoRequested 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_identifierNoOptional 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

ParametersJSON Schema
NameRequiredDescription
hintNo
pollUrlNo
loginUrlNo
expiresInNo
requestedScopeNo
sessionRequestIdNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFriendly display name, e.g. 'Lobby Screen'. Required when org_id is set.
org_idNoOptional: create the display inside this organization (needs manager role and a free license slot).
access_tokenNoOptional bearer token; prefer session_request_id.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFriendly name for the organization. Example: 'Marketing Team'.
typeNoOrganization type. Defaults to 'organization' if omitted.
access_tokenNoOptional bearer token; prefer session_request_id.
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 AssetA
Destructive
Inspect

Deletes one or more assets. Displays referencing deleted assets will show broken images. Requires authentication with at least content_only scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_idsYesOne or more asset IDs to delete.
access_tokenNoOptional bearer token; prefer session_request_id.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 SlotA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe slug of the data slot to delete.
group_idNoGroup/organization ID to delete a group slot. Omit for personal slots.
access_tokenNoOptional bearer token; prefer session_request_id.
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 DisplayA
Destructive
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
display_idYesThe 8-character alphanumeric display profile ID to delete, e.g. 'ABCD1234'.
access_tokenNoOptional bearer token; prefer session_request_id.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 OrganizationA
Destructive
Inspect

Permanently deletes an organization, releasing all its displays and removing all members. Only the owner can delete. This cannot be undone. Requires admin scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesThe organization ID to delete.
access_tokenNoOptional bearer token; prefer session_request_id.
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 ResourceA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYesThe resource URI to fetch. Must use the agentview:// scheme. Examples: 'agentview://public/status', 'agentview://account/me', 'agentview://display/ABCD1234'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
uriNo
dataNo
textNo
typeNo
titleNo
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 AccountA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
access_tokenNoOptional bearer token; prefer session_request_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNo
nameNo
planNo
emailNo
pointsNo
userIdNo
maxDisplaysNo
planFeaturesNo
organizationsNo
currentDisplaysNo
authenticatedViaNo
organizationCountNo
remainingDisplaysNo
maxPersonalDisplaysNo
currentPersonalDisplaysNo
totalAccessibleDisplaysNo
remainingPersonalDisplaysNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 ArtifactA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesArtifact key, e.g. 'bot-system-prompt', 'agent-skill', 'mcp-config'.
slugNoTemplate slug for the raw artifact. Provide slug OR display_id.
display_idNoDisplay profile ID for the placeholder-resolved artifact. If both slug and display_id are given, display_id wins (substituted body).
access_tokenNoOptional bearer token; prefer session_request_id.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyNo
kindNo
slugNo
titleNo
contentNo
displayIdNo
unresolvedPlaceholdersNo
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 AssetA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_idYesThe asset ID (e.g. 'ast_01H7KXZ...').
access_tokenNoOptional bearer token; prefer session_request_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNo
nameNo
assetIdNo
mimeTypeNo
createdAtNo
sizeBytesNo
descriptionNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 SessionA
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_request_idYesThe sessionRequestId string returned by create_auth_session. Must be passed exactly as received.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeNo
statusNo
expiresInNo
requestedScopeNo
tokenExpiresAtNo
sessionRequestIdNo
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 SlotA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe slug of the data slot to retrieve.
group_idNoGroup/organization ID to retrieve a group slot. Omit for personal slots.
access_tokenNoOptional bearer token; prefer session_request_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugNo
typeNo
labelNo
contentNo
groupIdNo
readUrlNo
sizeBytesNo
updatedAtNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 DisplayA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
display_idYes8-character display profile ID from list_displays, e.g. 'ABCD1234'.
access_tokenNoOptional bearer token; prefer session_request_id.
response_formatNoconcise (default) returns key fields; detailed adds runtime facts, connectivity/capabilities and full content state.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
nameNo
lockedNo
statusNo
contentNo
runtimeNo
hasTouchNo
isOnlineNo
settingsNo
setupUrlNo
managedUrlNo
pairingUrlNo
resolutionNo
deviceClassNo
capabilitiesNo
connectivityNo
currentContentNo
effectiveLanguageNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 LinkA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
display_idYesThe 8-character alphanumeric display profile ID, e.g. 'ABCD1234'.
ttl_secondsNoLifetime of the share link in seconds. Default 3600 (1 hour). Clamped to [60, 86400].
access_tokenNoOptional bearer token; prefer session_request_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
displayIdNo
expiresAtNo
previewUrlNo
ttlSecondsNo
displayNameNo
privacyModeNo
contentVersionIdNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 InfoA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
access_tokenNoOptional bearer token; prefer session_request_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
canAllocateNo
orgAllocationsNo
personalDisplaysNo
allocatableLicensesNo
totalAllocatedToOrgsNo
totalPremiumLicensesNo
freeAllocatableLicensesNo
personalPremiumDisplaysNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 OrganizationA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization ID from list_organizations or get_account.
access_tokenNoOptional bearer token; prefer session_request_id.
response_formatNoconcise (default) returns counts and core fields; detailed adds members and displays arrays.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
planNo
orgIdNo
membersNo
displaysNo
isActiveNo
yourRoleNo
memberCountNo
displayCountNo
allocatedSlotsNo
remainingSlotsNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 StatusA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 UsageA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoOptional data-slot slug: also report which displays reference it (slotUsage).
group_idNoGroup/organization ID for the group pool. Omit for the personal pool.
access_tokenNoOptional bearer token; prefer session_request_id.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopeNo
groupIdNo
slotUsageNo
usedBytesNo
limitBytesNo
suppressedNo
remainingBytesNo
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)A
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesTemplate slug from search_store_templates, e.g. 'bistro-warm-door'.
offsetNoByte offset into the HTML. Default 0.
versionNoOptional published version id (stpv_…) to pin. Omit for current.
max_bytesNoMaximum HTML bytes to return. Default 51200.

Output Schema

ParametersJSON Schema
NameRequiredDescription
htmlNo
slugNo
slotsNo
offsetNo
versionNo
truncatedNo
totalBytesNo
allowedExternalOriginsNo
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 DetailsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe template slug (English kebab-case) returned by search_store_templates, e.g. 'bistro-warm-door' or 'agent-ops-cyan-wall'.
languageNoPreferred content language. Defaults to 'en'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugNo
tagsNo
suiteNo
themeNo
titleNo
categoryNo
featuredNo
featuresNo
fileNameNo
placementNo
detailPathNo
sourceKindNo
descriptionNo
designStyleNo
previewPathNo
publishedAtNo
introMarkdownNo
setupMarkdownNo
agentArtifactsNoAgent-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).
previewImageUrlNo
audienceMarkdownNo
suiteDescriptionNo
useCasesMarkdownNo
categoryDescriptionNo
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 OptionsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesTemplate slug returned by search_store_templates, e.g. 'bistro-warm-door'.
languageNoPreferred UI language for labels. Defaults to 'en'.
access_tokenNoOptional bearer token; prefer session_request_id.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
displaysNo
languageNo
templateSlugNo
requiredDataSlotsNo
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 KeysA
Read-onlyIdempotent
Inspect

Lists all API keys for the current user. Returns key metadata (prefix, name, scope, dates) but never the raw key. Requires admin scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
access_tokenNoOptional bearer token; prefer session_request_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
keysNo
countNo
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 AssetsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by MIME category.
limitNoMaximum results (default 50).
searchNoSearch in filename and description.
group_idNoOnly this group's assets. Omit for personal.
access_tokenNoOptional bearer token; prefer session_request_id.
response_formatNoconcise (default): id, name, url, mimeType; detailed adds description, sizeBytes, createdAt.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
assetsNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 SlotsA
Read-onlyIdempotent
Inspect

Lists data slots with optional filtering. Returns metadata only (no jsonContent). Each item includes readUrl. Use readUrl in display HTML fetch() calls. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (default: 50, max: 200).
offsetNoOffset for pagination.
searchNoSearch in label (case-insensitive).
group_idNoGroup/organization ID to list shared group slots. Omit for personal slots.
access_tokenNoOptional bearer token; prefer session_request_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
slotsNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 CategoriesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
access_tokenNoOptional bearer token; prefer session_request_id.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
categoriesNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 DisplaysA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idNoOptional organization ID: list that organization's displays (member access required).
access_tokenNoOptional bearer token; prefer session_request_id.
response_formatNoconcise (default) returns key fields per display; detailed adds screen/viewport, URLs and language.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
displaysNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 OrganizationsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
access_tokenNoOptional bearer token; prefer session_request_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
organizationsNo
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 CategoriesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoPreferred content language. Defaults to 'en'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
languageNo
categoriesNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

logoutLogoutA
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 CategoryA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoCategory name for action 'create', e.g. 'Reception'.
actionYesOperation to perform.
new_nameNoNew category name (rename only).
category_idNoCategory ID to rename (rename only).
access_tokenNoOptional bearer token; prefer session_request_id.
parent_category_idNoOptional parent category ID (create only) for a subcategory.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 LicensesA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesLicense operation.
org_idNoOrganization ID (action 'allocate').
licensesNoLicense slot count for 'allocate'; 0 deallocates all.
display_idNoDisplay profile ID (actions 'assign' and 'unassign').
access_tokenNoOptional bearer token; prefer session_request_id.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 MemberA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoRole for 'invite' and 'set_role': 'admin', 'manager', 'viewer' (families: 'child').
emailNoEmail address to invite (action 'invite').
actionYesMembership operation.
org_idYesOrganization ID.
access_tokenNoOptional bearer token; prefer session_request_id.
target_user_idNoMember user ID (actions 'set_role' and 'remove').
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 CodeA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe 6-character pairing code shown on the display (e.g. 'AB3K7F').
access_tokenNoOptional bearer token; prefer session_request_id.
profile_nameNoFriendly name for the display (required for new pairing, ignored for rebind). Example: 'Lobby Screen'.
target_display_idNoTo rebind: the existing display profile ID to switch to the new hardware. Omit for new display pairing.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 HTMLA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNoByte offset to start reading from. Default 0.
max_bytesNoMaximum bytes of HTML to return. Default 51200.
display_idYes8-character display profile ID, e.g. 'ABCD1234'.
access_tokenNoOptional bearer token; prefer session_request_id.
content_typeNo'live' (default) reads active content; 'idle' reads default content.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
htmlNo
nameNo
offsetNo
sourceNo
truncatedNo
hasContentNo
htmlLengthNo
totalBytesNo
contentTypeNo
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 OrganizationA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesThe organization ID.
display_idYesThe display profile ID to remove.
access_tokenNoOptional bearer token; prefer session_request_id.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 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.

Purpose5/5

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.

Usage Guidelines3/5

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 KeyA
Destructive
Inspect

Permanently revokes an API key. This is irreversible — the key will immediately stop working. Requires admin scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
key_idYesThe ID of the key to revoke (from list_api_keys).
access_tokenNoOptional bearer token; prefer session_request_id.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

search_public_apisSearch Public APIsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results, 1-20. Default 10.
queryNoFree-text search, e.g. 'weather forecast', 'bitcoin price', 'jokes'.
categoryNoCategory ID filter, e.g. 'weather', 'finance', 'news'. Omit for all.
cors_onlyNotrue returns only APIs with confirmed browser CORS support. Default false.
list_categoriesNotrue returns all categories with API counts instead of search results.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
queryNo
resultsNo
categoryNo
corsOnlyNo
categoriesNo
totalCatalogApisNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 TemplatesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of templates to return. Defaults to 10.
queryNoFree-text search over template title, description and tags. Examples: 'Zahnarzt', 'italienisches Bistro', 'conference room'.
suiteNoOptional design-family suite slug (e.g. 'bistro-warm', 'sushi-minimal').
offsetNoOffset into the filtered result set for pagination. Defaults to 0.
categoryNoOptional category slug to restrict the search (English kebab-case, e.g. 'gastronomie', 'waiting-room').
languageNoPreferred content language. Defaults to 'en'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNo
totalNo
offsetNo
languageNo
templatesNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 HTMLA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlNoComplete HTML document to render. Mutually exclusive with base64_html.
slotNoTarget slot: 'live' (default) replaces current content; 'idle' sets the default shown when idle (admin scope).
tokenNoDisplay-specific demo/preview token for unauthenticated access. NOT the OAuth token.
durationNoSeconds the content stays; 0 = indefinite (default). Live slot only.
display_idYes8-character display profile ID, e.g. 'ABCD1234'.
base64_htmlNoBase64-encoded HTML (standard base64). Use only when raw HTML cannot survive JSON transport. Mutually exclusive with html.
descriptionYesShort human-readable summary of the content, e.g. 'Weekly KPI dashboard'.
access_tokenNoOptional bearer token; prefer session_request_id. Distinct from the display-specific 'token'.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 DisplayA
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesTemplate slug to install, e.g. 'bistro-warm-door'. Must be a currently published template.
display_idYesDisplay profile ID (8-char alphanumeric) from list_displays or get_store_template_install_options.
access_tokenNoOptional bearer token; prefer session_request_id.
idempotency_keyNoOptional 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_idNoSession handle from create_auth_session; pass it on every authenticated call.
data_slot_overridesNoOptional { 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

ParametersJSON Schema
NameRequiredDescription
fileNameNo
displayIdNo
versionIdNo
templateSlugNo
overrideCountNo
installedSlotsNo
contentVersionIdNo
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 URLA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesAbsolute HTTP or HTTPS URL to load, e.g. 'https://example.com/dashboard'.
slotNo'live' (default) or 'idle' for default/fallback content (admin scope).
durationNoSeconds the content stays; 0 = indefinite (default). Live slot only.
display_idYes8-character display profile ID, e.g. 'ABCD1234'.
access_tokenNoOptional bearer token; prefer session_request_id.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
content_descriptionNoShort summary of what the page shows (recommended).
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 SlotA
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesStable 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.
typeNoSlot kind. 'value' (default) stores 'content' verbatim. 'aggregate' stores 'content' as a composite-slot definition. Immutable after creation.
labelNoHuman-readable label (max 200 chars). Required when creating a new slot; optional on update.
contentYesJSON 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_idNoGroup/organization ID for shared group slots. Omit for personal slots.
access_tokenNoOptional bearer token; prefer session_request_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugNo
typeNo
labelNo
groupIdNo
readUrlNo
sizeBytesNo
updatedAtNo
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 GrantA
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNo'set' (default) creates/updates the grant; 'remove' revokes it.
org_idYesOrganization ID.
display_idYesDisplay profile ID.
access_levelNoRequired for action 'set'.
access_tokenNoOptional bearer token; prefer session_request_id.
target_user_idYesUser to grant or revoke.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe user's verbatim feedback text (max 2000 characters). Pass what the user actually said; do not paraphrase or add your own commentary.
sentimentNoOptional overall sentiment of the feedback. Set only when the user's tone is clear; omit if unsure.
access_tokenNoOptional bearer token; prefer session_request_id.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 ContentA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlNoComplete HTML document to validate. Mutually exclusive with base64_html — provide exactly one.
base64_htmlNoBase64-encoded HTML payload. Mutually exclusive with html.
descriptionYesShort human-readable description of what the HTML represents (1-1000 chars). Same validation rules as send_html.
access_tokenNoOptional bearer token; prefer session_request_id.
session_request_idNoSession handle from create_auth_session; pass it on every authenticated call.
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 AssetA
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew filename for the asset.
asset_idYesThe asset ID to update.
descriptionNoNew description for the asset.
access_tokenNoOptional bearer token; prefer session_request_id.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesArray of file objects, each with 'name' (filename with extension) and 'data' (base64-encoded content).
group_idNoOptional group ID to associate the assets with.
access_tokenNoOptional bearer token; prefer session_request_id.
descriptionsYesJSON object mapping each filename to a human-readable description.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
assetsNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources