Skip to main content
Glama

App HTML (internal)

get_app_html
Idempotent

Returns raw app HTML plus its trust tier and capability grants for the universal loader widget. Internal only; not for direct calls.

Instructions

Internal: returns raw app HTML plus its trust tier and capability grants for the universal loader widget. Not useful to call directly — use get_app to read source.

Input Schema

NameRequiredDescriptionDefault
nameYes
mountNothe caller is mounting this app on screen now (records the live pointer); refetches and framing bricks leave it unset

Output Schema

NameRequiredDescriptionDefault
cspNo
capsYes
hostNolabel for the client this widget is running under; usually empty
htmlYes
nameYes
tierYes
authorYes
lockedYesa fixed system app (settings renders these read-only)
versionYes
collectionYesthe collection this app opens on
declarationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.10.1
    • addedOutput schema / properties / caps / properties / collections
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / tier / enum
      Previous value: -[
      -  "local",
      -  "unreviewed"
      -]New value: +[
      +  "local",
      +  "unreviewed",
      +  "shared"
      +]
  2. Addedv0.7.2

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already carry the safety profile (idempotentHint, destructiveHint, readOnlyHint), so the bar is lower; the description still adds useful context by flagging the tool as internal and not for direct use. It does not explain the state-recording side effect implied by readOnlyHint=false and the 'mount' parameter, which would have earned a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero waste; the purpose is front-loaded and the routing guidance follows immediately.

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?

An output schema exists, so return values need no explanation, and the description covers purpose and the correct alternative. The only gap is the undocumented 'name' parameter and the unexplained non-read-only behavior tied to 'mount'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 50%: 'mount' is well documented in the schema, but 'name' has no description anywhere, and the description text adds no parameter meaning at all — it only describes return content. With a coverage gap, the description should have compensated and does not.

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 gives a specific verb and resource ('returns raw app HTML plus its trust tier and capability grants') and explicitly distinguishes itself from the sibling get_app by declaring the tool internal and not meant for direct 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?

It states an explicit when-not condition ('Not useful to call directly') and names the alternative to use instead ('use get_app to read source'), leaving nothing to inference.

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